Backend and API Development
I build backend services primarily in object-oriented languages, with an emphasis on clear domain models and maintainable APIs. I use domain-driven design (DDD) where the problem warrants it, keeping business invariants close to the domain and abstractions proportional to the complexity they solve. I generally favor composition and explicit interfaces over deep inheritance hierarchies.
DevOps and Platform Engineering
I work on the systems between source code and production: build and deployment pipelines, infrastructure, runtime environments, observability, and developer tooling. I care about reproducibility, safe delivery, useful operational feedback, and reducing toil through automation and self-service. I try to keep the platform proportional to the problem—adding orchestration and abstraction where they provide clear operational value.
CI/CD and Observability
I build delivery pipelines around repeatable builds, explicit deployment stages, and clear boundaries between application and infrastructure changes. In production, I instrument applications with OpenTelemetry and use metrics, traces, logs, and dashboards to make system behavior and failures easier to understand.