Work
Backend systems, mostly Go and PostgreSQL. Each of these solved a problem that was more interesting than it first looked.
2024
Venue Management System
Concurrent slot booking that cannot double-book.
A Go service built on hexagonal architecture, with domain models at the core and Postgres adapters at the edge. Concurrent slot booking runs through PostgreSQL advisory locks, so two requests for the last slot resolve deterministically instead of racing. Queries are composed with Squirrel and dependencies wired with Wire; migrations run through goose.
- Go
- Gin
- PostgreSQL
- pgx
- Hexagonal
- Wire
2024
Inventory Management System
Every stock movement is an immutable audit record.
A clean-architecture Go service where stock is never updated in place — every mutation is an insert, so the ledger reconstructs any point in history and no correction destroys the record it corrects. Aggregation runs as raw SQL rather than through a query builder, and alerting lives in a separate goroutine pool with backoff so a slow notification path cannot stall the API.
- Go
- PostgreSQL
- Clean Architecture
- goose
- SQL
2024
TutoredX
A learning platform with enrollment enforced at every query.
A Go backend with a React frontend, modelling courses as course → module → lesson with enrollment verified at every query rather than at the route boundary. Authentication, tenant resolution, and rate limiting compose as a custom middleware chain. Lesson progress is a state machine whose legal transitions are enforced by CHECK constraints, so an invalid state cannot be written even by a buggy caller.
- Go
- React
- PostgreSQL
- REST API
- TypeScript