How I work
process.
No black boxes. No surprises. Here's exactly what working with me looks like from first message to final delivery.
After 8 years and 50+ projects, I've worked out a process that's predictable, collaborative, and actually enjoyable — for both of us. Every step is designed to reduce stress and increase the chance of shipping something genuinely good.
The six steps
Every project — big or small — follows this same sequence.
Discovery call
We start with a free 30-minute video call. No forms to fill in, no questionnaires to complete before we talk. I want to hear you describe the project in your own words — what you're trying to achieve, who it's for, and what's been holding you back.
Scope & quote
After the call I write up a clear, plain-language proposal. It covers exactly what I'll build, what's explicitly not included, the price, the payment schedule, and a realistic timeline. You'll never be guessing what you agreed to.
Design & plan
Before writing a single line of production code, I create wireframes or prototypes in Figma and share a project plan in Notion. You get visibility into every major decision before it gets built — which makes feedback much cheaper to act on.
Build & check in
This is where most of the work happens. I build in focused sprints — usually one to two weeks long — and check in at the end of each sprint with a Loom walkthrough of what's been built. You're never waiting until the end to see progress.
Review & refine
Once the build is complete, you get a dedicated review period to test everything thoroughly on the staging environment. Feedback is gathered in one round, actioned quickly, and then we sign off together before anything goes live.
Launch & hand off
Go-live is a planned event, not a scramble. I deploy everything, monitor it for 24 hours, and then hand over full ownership — every credential, every file, every piece of documentation. You walk away with something that's yours completely.
How I think about work
The principles that shape every project I take on.
Clarity over cleverness
Clever code is hard to maintain. Clear code is easy to extend. I always write for the next developer who touches the codebase — including future me at 2am.
Over-communicate by default
Most project failures come from silence. I'd rather send one update too many than leave a client wondering what's happening for a week. You'll always know where things stand.
Say no when it matters
I'll push back if I think an approach won't work or will cause problems later. You're not paying me to agree with everything — you're paying me to help you make good decisions.
Performance is a feature
A slow site is a broken site. Performance is baked into everything I build from day one — not bolted on as an afterthought when something feels slow.
No lock-in, ever
Everything I build is yours. Full source code, all credentials, complete documentation. You can take it anywhere and hand it to anyone. I have no interest in making myself hard to replace.
Finish what I start
I don't take on more projects than I can do well. Every client gets my full attention during their build — not a fraction of it stretched thin across five other things.
Common questions
Things clients usually ask before we start.
Ready to start?
Step one is a free 30-minute call. No pitch, no pressure — just a conversation about your project.