Work

A decade of backend engineering across distributed systems, event-driven architecture, and the kind of scale where process matters as much as code.*

I've been trying to automate myself away for years. Before AI, I'd have spent hours scripting away a 5-minute task in hopes of never having to risk doing something manually twice. Since AI this approach has sped up and grown more professionally viable.

I'm an individual contributor working at the intersection of distributed systems and high-throughput data. Day to day that means Kotlin services processing millions of events, Kafka pipelines, and the careful operational work that keeps all of it running cleanly at scale.

I made a deliberate choice to step away from Spring and go vanilla Kotlin. Less magic, more clarity. The same instinct shows up elsewhere: Postgres with JSONB instead of a separate document store, simple concurrency primitives over complex frameworks, bash scripts replaced by Kotlin scripts I can actually read six months later.

At the scale I work at, the biggest wins rarely come from clever code. They come from automation, careful process design, and understanding why a system behaves the way it does. I care a lot about the second-order effects of technical decisions — the ones that only show up after the system has been running for a year.

I've embraced agentic AI workflows as a genuine multiplier for rapid prototyping and exploration, and I think about how to bring that leverage to my team. The language I write in matters less to me than it used to. The architecture and the tradeoffs still matter a lot.

Primary

  • Kotlin
  • PostgreSQL
  • Kafka
  • RocksDB

Infrastructure

  • Container orchestration
  • Event-driven architecture
  • Distributed systems
  • JVM tuning

Background

  • Java + Spring
  • C#
  • MongoDB
  • SQL Server

Boring technology is usually the right technology. The interesting problem is the one your system is solving, not the infrastructure underneath it.

Reading Designing Data-Intensive Applications reframed how I think about systems more than anything else I've done in my career. I still return to it.

A small amount of operational discipline prevents a large amount of production pain. Automation isn't laziness — it's respect for your future self and your team.

Deep domain knowledge is a compounding asset. I'd rather understand one domain deeply and learn a new language than understand many languages and no domains.