I build web services, then spend my time making sure they don't fall over.
- Web engineering across a real product surface — Node.js/TypeScript backends, GraphQL APIs, and Angular/React frontends, spread over several services rather than one tidy repo.
- Production reliability — chasing down connection-pool exhaustion, query-runner leaks, streaming timeouts, and type mismatches that only show up under load. Fixes usually ship with a load shedder or a health check attached.
- Observability — APM tracing, error-tracking monitors, feature-flag tags, and frontend RUM. A good chunk of my debugging starts in traces and logs rather than in the code.
- Distributed data plumbing — PostgreSQL, Redis, Elasticsearch/OpenSearch, Kafka, and the occasional AWS Step Functions or Fargate workload.
- Agentic developer tooling — internal Claude-powered workflows and MCP-backed skills that automate the boring parts of the dev loop: sprint reviews, PR reviews, incident triage.
- Micro-frontend architecture — Nx monorepos, Native Federation, and contract-based decoupling between hosts and remotes.
- Building 4bid, a real-time auction platform: CQRS, Kafka partitioned by auction ID, Postgres as source of truth, Redis as the read cache, and a Node.js WebSocket gateway. Mostly an excuse to go deep on Kafka.
- Sketching out PulseGuard, an API monitoring platform, as the companion project.
- Learning Java and Spring Boot properly after years in Node — IoC, dependency injection, Spring Data JPA.
- Working through system design and DSA on a steady, slightly obsessive schedule.
- Happy to talk about Kafka, Postgres internals, observability, or why your pool is at 100%.
Languages
Backend & APIs
Data & Messaging
Frontend
Observability & Infra
Day to day


