Fifteen years building and scaling distributed systems, across the industry's move from bare-metal servers and monoliths to cloud-native, Kubernetes and GitOps. I take on the work teams postpone: technical debt, CI/CD built from nothing, and keeping things up.
API / Backend — Node.js, TypeScript, OpenAPI, gRPC, NGINX
Reference architecture. Client code is under NDA, so this page describes the design and the reasoning behind it rather than a specific deployment.
A public REST surface backed by gRPC between services, with both generated from one contract. Handwritten clients drift from the server the week after they are written; generated ones fail the build instead, which is the only feedback that arrives early enough to be useful.
Versioning is explicit and additive: new fields are optional, removals require a deprecation window, and the gateway can serve two versions at once. This is unglamorous and it is what lets a backend team ship without scheduling around every consumer.