I build services in Go — domain first, Clean Architecture, dependencies pointing inward — and spend the rest of my time on the infrastructure they run on.
Most of what I publish here is one of two kinds: a system built the way I think systems should be built, or notes from learning something properly rather than quickly.
| Domain first | The domain layer is written before the database and the framework, and does not import either. |
| Behaviour, not bags of data | order.Cancel() rather than order.SetStatus(CANCELLED). Objects expose what they do. |
| Always valid | Fields are private, constructors validate. An object that exists is an object in a legal state. |
| Errors are values | Wrapped with context, matched with errors.Is/errors.As, never a panic as flow control. |
| Explicit over clever | The boring solution that the next reader understands beats the elegant one they have to decode. |
| ekko Go |
Todo list built to grow into a Jira-like issue tracker — workflows, collaboration, reporting. | |
| golang-101 Go |
Working through Go properly: concurrency, generics, tooling, the standard library's sharp edges. | |
| petlog Go · TypeScript |
Full-stack health management for multi-pet households — Go API, TypeScript web, Terraform deploy. | |
| godine Go |
Online food ordering system, written as a deliberate exercise in Domain-Driven Design. | |
| sion Go |
Data analysis and integration platform for car rental firms. | |
| go-ddd Go |
Reference layout for the architecture above — so I stop re-deriving it per project. |
More — Kubernetes operators, blockchain, market data
| ryze Go |
Blockchain explorer for TON — querying blocks, transactions, and accounts. |
| memcached-operator Go |
Kubernetes operator — learning the controller-runtime model by building a real one. |
| webscraper-operator Go |
Second operator, non-trivial reconcile loop. |
| fugle-marketdata-go Go |
Market data client — intake layer for building trading systems end to end. |
| Languages | |
| Platform | |
| Data & observability | |
| Practice | Clean Architecture · DDD · trunk-based development · Conventional Commits |





