Tools & workflow
What I reach for to build, ship, and maintain software.
Development
Codex
My first choice since June 2026 for day-to-day development, from exploring a codebase to implementing features and reviewing changes.
Claude Code
A very close second, used in parallel with Codex. Still a regular part of my workflow for features and debugging. I also led its rollout across 200 engineers at LegalZoom.
Parallel worktrees
A first-class part of every project. Isolated Git worktrees let AI agents tackle separate tasks at the same time, each with its own branch and development environment.
Cloud maintenance agents
Cloud-based AI agents investigate issues and handle routine software maintenance, triggered by Logfire alerts or scheduled runs.
AI & agents
OpenRouter
My API inference layer for frontier and open-source models. It makes it easy to choose the right model for each job and balance quality with cost, with governance and guardrails for agent spending, model access, and data privacy.
PydanticAI
My usual starting point for Python agents: structured outputs, dependency injection, tool calling, and graphs for workflows that need multiple agents.
FastMCP
For exposing tools, resources, and prompts through the Model Context Protocol. I use it for MCP servers at LegalZoom and in my own projects.
Frameworks
FastAPI
Python APIs with async support, Pydantic validation, and generated documentation. A straightforward fit for the backends I build.
React Router v8
Loaders, actions, and nested routes keep data fetching close to the UI. Vite keeps the local development loop fast.
Infrastructure
Railway
Hosting for my apps and services, with monorepo support and PR preview environments. The CLI and MCP tools fit into my development workflow.
Logfire
Traces and logs for Python and AI workloads, including PydanticAI. I use its MCP server to investigate production issues and its alerts to trigger maintenance agents.
Neon Postgres
Postgres with database branching. Each PR preview gets an isolated database, with setup and cleanup automated.