Work
Building systems one justified step at a time.
Selected work that shows how I approach systems: start small, add complexity only when it earns its place, and keep each step understandable.
Featured project
Living project
Household Inventory Tracker
Household Inventory Tracker is an evolving inventory system with console and REST API interfaces over shared PostgreSQL-backed layers. It began as a console application with JSON persistence and has grown incrementally through persistence, API, containerisation, validation, testing and automated verification. Azure deployment remains the planned next stage.
Read the HIT case studyBuilt in stages
Each stage introduces a new system concern.
HIT remains a living project. Azure is the planned next deployment stage, not completed production experience.
- Console
Begin with inventory behaviour in a console application, using JSON persistence and initial tests.
- PostgreSQL
Make PostgreSQL the runtime source of truth for structured, persistent inventory data.
- FastAPI
Add a REST interface while preserving the console application and shared data layers.
- Docker
Run the API and PostgreSQL together in a repeatable local development environment.
- Testing and CI
Expand automated verification and run Python, PostgreSQL integration and Docker build checks in GitHub Actions.
- AzurePlanned — next deployment stage
Next: deploy the system into a cloud environment.
What the work demonstrates
Technical growth anchored in system thinking.
Incremental system design
The system has grown in stages, adding new concerns to an understandable foundation.
Data modelling
PostgreSQL introduced structured persistence for the inventory information.
Backend and API development
FastAPI added a REST interface while preserving the PostgreSQL-backed console application.
Testing and maintainability
Testing began with the console application and expanded across the database, service and API layers, with CI automating the checks.
Containerisation and deployment learning
Docker supports repeatable local API and PostgreSQL development; Azure remains the planned next deployment stage.
Start a conversation
Tell me what isn’t working.
You do not need to know what the technical solution should be. Start with the process, information or system that feels harder to work with than it should.
Discuss a problem