> how I work
Inspired by Den Delimarsky and Isaac Hepworth. This is a living document that describes how I operate—it's context for teammates, not a prescription for how you should work.
> Principles
The ideas that guide how I approach building software and working with others.
Ship in phases: work, pretty, fast.
First, get the infrastructure and data flowing correctly. Then layer in the UI and polish the experience. Finally, profile and optimize. Don't chase perfection up front—deliver value incrementally.
Bias for action.
I'd rather build a quick prototype and learn from it than debate in the abstract. When there's disagreement, I build a proof-of-concept and put it in front of people. The best product wins, not my ego.
UX and DX are the same thing.
A feature isn't done until both the end user and the next developer can use it. I care about clean APIs, clear error messages, and readable code as much as pixel-perfect interfaces.
Feedback is how we get better.
I welcome direct feedback and give it in return. If something bothers me or has room for improvement, I'll have that conversation. Radical candor matters—be kind, but be clear.
No blame, just prevent recurrence.
When things break, I run blameless postmortems. The goal isn't finding who broke what. It's understanding the chain of events, writing a test that catches it next time, and moving on. Systems fail, not people.
Have fun solving problems.
Every project has something fun about it—a puzzle, a constraint, a chance to learn. I find that thing and lean into it. If I'm not learning, I'm stagnating.
> Notes
The practical stuff—how I communicate, structure my time, and prefer to collaborate.
Communication
- Documentation takes precedence over meetings. If something isn't written down, it might as well not exist.
- I set up meetings to hash out ideas and build partnerships—not for status updates. That can be async.
- Before scheduling a meeting, ask: “Can I write this down and will it be useful for others?”
- For business decisions, I prefer email or a shared doc—paper trails matter. For day-to-day coordination, whatever the team prefers.
- Most email is not urgent. If something is truly urgent, reach out through faster channels.
- I don't answer emails or attend meetings during vacation. I encourage the same.
Focus and time
- Mornings are for deep work—creative tasks, complex problems. Afternoons are for reviews, emails, and coordination.
- I work on a single monitor to reduce visual noise and stay in flow.
- I work within a typical day. Evenings and weekends are for family, side projects, and recharging.
- If you get an email from me late at night, I'm triaging my inbox—not expecting an immediate response.
- I book regular time for self-development and encourage others to do the same.
Shipping
- Before writing code, I clarify acceptance criteria. If it's not clear, I go ask. 5 minutes now saves a day of waste.
- I prefer milestone-based work with defined scope. Smaller, shippable increments build trust and momentum.
- Every incident gets a postmortem with concrete follow-ups that turn into actual tickets.
Tooling
- I live in the terminal. My editor is Zed—native, fast, no Electron. My AI coding tool is OpenCode, running locally with whatever model I want via OpenRouter.
- I use AI heavily for boilerplate, exploration, and parallel agents. But I write critical code by hand. If it touches billing, auth, or data integrity, I know every line.
- I use git worktrees to juggle multiple features simultaneously. Each branch gets its own directory and mental space.
- Compiled languages are a forcing function for quality. If it compiles, there's a lower chance of runtime surprises.
Collaboration
- I thrive in small teams where I wear multiple hats. I'd rather own a feature end-to-end than be siloed.
- I don't micromanage. Once we've agreed on scope, I trust you to execute and will be here if you're blocked.
- My door is always open. Blocked? Need clarification? Have a question? Ask me.
- I value honesty, inclusiveness, and directness. If I'm missing the mark, call me out on it.
- I have zero tolerance for toxicity. Rude or dismissive behavior doesn't fly.
- Health and family always come first. Go take care of what matters. Work will be here when you're back.
> Inspiration
Some of my favorite reads that shaped how I think about building software.
Simplicity, Please
A manifesto for reducing complexity in software development.
No Hello Club
Skip the pleasantries and get to the point in chat.
37signals
Opinionated takes on business, design, and staying small.
Software Craftsmanship
Raising the bar for professional software development. (Signed in 2021)
Agile Manifesto
The foundational document for agile software development.