Software I use, technologies I build with, and tools I rely on.
The stack behind my day-to-day work: a TypeScript backend on AWS, LLM features on the Anthropic and OpenAI APIs, and an AI-assisted development loop. Most of it is what I run in production at Runn right now.
Workstation
MacBook Pro
My main machine for everything from backend development to running eight services locally with Docker and Temporal.
Claude Code and Cursor
I build daily with AI-assisted development tools. Claude Code handles multi-file changes, migrations, and test writing from the terminal; Cursor is my editor for the rest.
Terminal and SSH
A large part of my workflow lives in the terminal: logs, containers, Git, AWS CLI, and the scripts that keep a production platform honest.
Docker Desktop
Every service I ship runs in a container, so local development mirrors what AWS App Runner runs in production.
Three-node Kubernetes homelab
Repurposed hardware running Ubuntu Server. It is where I try distributed-systems and observability ideas before they touch production.
Backend
TypeScript, Node.js, and Fastify
The core of the platform I maintain: a Fastify API with 200+ routes, a background worker, and an MCP server in a pnpm monorepo.
Python, FastAPI, and Flask
My other production language. I used it for backend services at Oracle, ML endpoints, and data pipelines, and still reach for it for tooling and analysis.
Temporal
Durable workflows for anything that must survive retries and restarts: campaign launches, metrics syncs, and scheduled jobs.
PostgreSQL with Drizzle and Prisma
Schema design, versioned migrations, and zero-downtime changes. I have applied every production migration on a 79-table schema with zero data loss.
Spring Boot and JPA
From my time at Compass Group, where I designed REST APIs handling millions of daily transactions with Ignite and Hibernate caching.
AI and LLMs
Anthropic API and Model Context Protocol
I build agents and custom MCP servers, and use prompt caching and structured outputs to keep production LLM features fast and affordable.
OpenAI API
Used for LLM-powered automation at Compass Group and as the second provider behind the ad-copy pipeline at Runn.
TensorFlow and scikit-learn
My applied ML background: computer-vision and geospatial pipelines for crop classification from satellite imagery.
Frontend and payments
React and Next.js App Router
Customer, admin, and marketing apps all run on Next.js, deployed as containers to AWS App Runner.
Tailwind CSS
My default for shipping clean, responsive UI quickly, including this site.
Stripe
Subscriptions, metered usage reporting, webhooks, coupons, and partner pricing, built end-to-end.
Cloud and operations
AWS App Runner, ECS, ECR, and S3
The production footprint for the platform I run. An infrastructure audit and rightsizing cut monthly spend by 52%.
GitHub Actions with OIDC
Every service deploys through GitHub Actions and GitHub OIDC with no long-lived AWS credentials.
Docker, Kubernetes, and Terraform
Containers everywhere, Kubernetes for the homelab and earlier work at Oracle, and Terraform for infrastructure as code.
Prometheus, Grafana, and incident response
Metrics, dashboards, and log-based debugging. I have kept 99.9% uptime on production services and owned on-call for critical incidents.
Vitest, pytest, JMeter, and Locust
1,300+ automated tests on the current platform, and load testing whenever a change touches throughput.