Languages
TypeScript everywhere it fits. Python for ML / data. Go for high-concurrency backends. Rust when it earns the complexity.
Our default stack is the one that gets out of the way. We pick newer tools when they earn it — never just because they're new.
TypeScript everywhere it fits. Python for ML / data. Go for high-concurrency backends. Rust when it earns the complexity.
React, Next.js, Remix, Tailwind. We don't ship class-based components in 2026.
NestJS, Express, FastAPI, Go (chi/echo). Picked per workload, not per fashion.
Postgres for OLTP, ClickHouse for analytical, Redis for cache + queues. We avoid Mongo unless the schema really is document-shaped.
AWS first, GCP when client-mandated. Terraform, GitHub Actions, Vercel for fronts. Kubernetes only when the team can run it.
Claude for reasoning, OpenAI for cheap-and-fast, fine-tuned open models when latency / privacy matter. We pick the boring tool.
Tools we use day-to-day