Notes from Q1 — what we shipped, what we learned
The quarter, in brief
Q1 wrapped with a mix of project builds, shorter sprints, a couple of audits, and our first long-term retainer extension. One engagement we started in January, we decided to hand back in February — the scope had shifted into territory where we weren't going to do a great job. Refunding the unearned portion cost us revenue and was the right call.
A rough breakdown, without naming clients who haven't agreed to be named:
- Project engagements — scoped, end-to-end builds (MVPs, rewrites, features)
- Sprints — focused one- to two-week pieces of work
- Audits — written assessments, no implementation
- Retainers — ongoing embedded work for longer-term clients
What shipped (shapes, not numbers)
The following are the kinds of problems we worked on, described generically. We don't publish client logos or metrics without written permission, and most clients prefer quiet.
- A checkout rewrite for a consumer retail product.
- An internal analytics tool for a fintech team.
- An on-call / paging tool replacing a spreadsheet at a platform team.
- A mobile app MVP shipped ahead of a fundraising pitch.
- A Rails stabilization engagement — deploys are boring again.
- A developer outsourcing retainer that's been extended twice.
What we got wrong
Two things worth calling out.
We under-scoped one project. A mobile project came in as "three weeks" and shipped in five. We ate the overrun on our side, and the client was generous about the timeline, but we should have caught the scope risk at the SOW stage. The failure was in the scoping call — we let "this feels doable" substitute for "we've traced every dependency." We've added an explicit checklist to the scoping template to prevent this next quarter.
We took one engagement that wasn't a fit. A ML-heavy project where none of the four of us had current shipping experience. We thought we could cover it with research time. We couldn't do it to our bar. We handed the work back to the client at month two, refunded the portion we hadn't done, and referred them to a friend who specializes in this area. Net result: client happy, us less rich, everyone's reputation intact. We'd do it again — earlier.
What we're changing in Q2
- Tighter scoping: the new SOW template asks us to name the three riskiest things about the project out loud, on the call. If we can't, the project isn't scoped.
- More audits: we're piloting a two-week paid audit as the first step for larger projects. It gives us (and the client) a chance to see how we work together before committing to months.
- Capped retainers: we've turned down two retainer extensions this quarter because we don't want to become a pure outsourcing shop. The retainer cap is two concurrent retainers, firm.
Hiring?
We're still not hiring engineers. See the last post for the long version. We are open to introductions if you know senior, shipping engineers who want occasional overflow work — we refer out more than we take on, and we'd rather refer to people we know than people we don't.
Q2 availability
We have room for three to four new project engagements in Q2. If you've been sitting on a "we should probably talk to Weblier" email, this is a good moment to send it.

