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.

Built 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.

  1. Console

    Begin with inventory behaviour in a console application, using JSON persistence and initial tests.

  2. PostgreSQL

    Make PostgreSQL the runtime source of truth for structured, persistent inventory data.

  3. FastAPI

    Add a REST interface while preserving the console application and shared data layers.

  4. Docker

    Run the API and PostgreSQL together in a repeatable local development environment.

  5. Testing and CI

    Expand automated verification and run Python, PostgreSQL integration and Docker build checks in GitHub Actions.

  6. 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