On API Design: Making the Right Thing Easy
The best APIs don't require documentation to use correctly. They make the obvious path the correct path.
Full Stack Senior Software Engineer
Building infrastructure that gets out of your way
I'm a software engineer at Stripe, where I work on developer infrastructure. I care about building tools that are reliable, well-documented, and a genuine pleasure to use.
Before Stripe, I worked on platform engineering at Shopify, where I learned that the best developer tools are the ones nobody notices until they break.
I believe good engineering is the act of anticipating what the next person to read your code, use your API, or debug your system will need.
Outside of work, I like hiking, cooking overly ambitious meals, and maintaining a household where at least one person sleeps before midnight.
Full Stack Senior Engineer
Building developer infrastructure for the payments platform. Focused on API reliability, SDK tooling, and the internal deployment pipeline that ships code to production thousands of times per day.
Software Engineer
Worked on platform engineering, building internal tools and CI/CD infrastructure used by hundreds of development teams. Designed the service scaffolding system that became the default for new projects.
Software Engineer
Built and maintained payment processing services handling millions of transactions daily. Contributed to the migration from a monolithic architecture to event-driven microservices.
Junior Software Engineer
Developed open banking APIs connecting to Nordic financial institutions. First engineering role, where I learned that the most important code is the code someone else has to maintain.
A CLI tool for managing database migrations with confidence. Designed around the principle that migrations should be reversible, testable, and boring.
A distributed rate limiter for Node.js services. Token bucket algorithm with Redis backing, built for systems that can't afford to drop requests.
An observability SDK that instruments your services without drowning you in data. Structured logging, distributed tracing, and sensible defaults.
The best APIs don't require documentation to use correctly. They make the obvious path the correct path.
Your error messages are the part of your product people see when they're already frustrated. Make them helpful.
PostgreSQL is fine. Redis is fine. You probably don't need that new distributed database you read about on Hacker News.
Late-night productivity is a myth we tell ourselves. The best engineering happens when you're rested.
I'm always happy to hear from engineers who care about the craft. Reach out.