The Studio
A document about how I work — the tools, the philosophy, and the physical setup. Because the environment shapes the output.
Philosophy
Correctness over cleverness
A brilliant trick that three engineers can't read next quarter is a liability, not an asset. I optimize for the next engineer on the codebase — which is often me six months from now.
Measure before you optimize
Intuition about performance is usually wrong. Profilers, distributed traces, and real production telemetry should drive optimization decisions, not hunches or benchmarks from 2019.
Small PRs, fast feedback
A 50-line PR that ships today beats a 500-line PR that lives in review for two weeks. I keep diffs reviewable and gates automated so feedback loops stay tight.
The RFC is the work
Writing a clear design doc forces you to discover the edge cases. If you can't explain a system to a peer in writing, you don't understand it well enough to build it.
Open source is infrastructure
The tools I publish are maintained with the same rigor as production code: semantic versioning, changelogs, security advisories, and reproducible builds. Abandoning a popular library is an externality.
Boring technology wins
PostgreSQL, Redis, and HTTP have solved most of the problems startups think require a distributed graph database. Choose the boring option, then make it fast.
The Setup
- MacBook Pro 16" M3 Max96GB RAM · 4TB SSD
- LG 5K UltraFine 27"Primary display, DCI-P3
- Dell U2723D 27"Secondary, reference color
- Keychron Q3 MaxGateron Phantom Red switches
- Logitech MX Master 3SElectromagnetic scroll
- GhosttyGPU-accelerated terminal
- Neovim (LazyVim)Primary editor since 2021
- tmux + zoxideSession management + nav
- Fish shellWith pure prompt
- WezTerm (backup)For pair programming
- Hetzner CloudPrimary compute (CAX41)
- Cloudflare R2 + WorkersEdge CDN and storage
- Neon (PostgreSQL)Serverless Postgres
- Upstash RedisServerless caching
- Fly.ioHobby deployments
- LinearIssue tracking
- RaycastApp launcher + snippets
- CursorAI pair programming
- TablePlusDatabase GUI
- WarpTerminal for onboarding clients
Skills & Systems
- TypeScript
- Rust
- Go
- Python
- SQL
- React 19
- Next.js 15
- Framer Motion
- Radix UI
- Tailwind
- Node.js
- Axum
- Gin
- tRPC
- GraphQL
- PostgreSQL
- Redis
- Docker
- Kubernetes
- Cloudflare
Work Environment
Engagement Types
Staff Engineering
Performance Audits
Open Source Advisory
Technical Due Diligence
How an Engagement Works
git clone — Discovery
30-minute async brief via Loom or written document. I read your tech stack, understand the constraint space, and flag anything that changes scope.
npm install — Alignment
Shared document with goals, success criteria, and weekly cadence. No surprise pivots. If the problem shifts mid-engagement, we re-scope in writing.
cargo build — Execution
I work in short cycles with visible output. Each week ends with a Loom walkthrough of what shipped, what didn't, and why.
✓ Released — Handoff
Clean handoff: documented architecture decisions, runbooks, and a post-engagement Q&A window (2 weeks). No orphaned code.
Want to know more?
I keep a short FAQ and current availability on the contact page. Takes 2 minutes to read.