Careers
A small team that finishes things.
We hire slowly and rarely. When we do, it is for people who want to own a piece of work end to end rather than be handed the output of someone else's decision.
3
Open roles
1 wk
Time to hear back
Open roles
Three seats, described honestly.
Including the parts that are harder here than they would be at a larger company.
Product Engineer
Build client products end to end — interface, API and the parts in between. You will own features, not tickets.
2–5 years
Experience
Full-time
Engagement
You will work on two or three client builds at a time alongside the founder, from the first architecture conversation through to the handover week. This is a small studio: there is nobody to escalate an unclear requirement to, which means you decide a lot and are expected to say when something is wrong.
What we are looking for
- Strong TypeScript and React, and opinions about both
- Comfortable shipping a feature that touches the database and the interface
- Have taken something to production and kept it running afterwards
- Write clearly — commit messages, notes to clients, the lot
Product Designer
Design interfaces in components with real content and real edge cases, then see them built the way you drew them.
2–5 years
Experience
Full-time
Engagement
You will design client products and our own tools, working in a shared system rather than in isolated screens. Because the team is small you sit in on the engineering conversation, which means fewer things get lost between the file and the build.
What we are looking for
- A portfolio of shipped product work, not concepts
- You design the empty, loading and error states without being asked
- Comfortable in a design system — tokens, components, constraints
- Can defend a decision, and change your mind when the argument is better
Delivery Lead
Keep scope honest and clients informed. Own the fortnightly rhythm across two or three concurrent builds.
4+ years
Experience
Contract
Engagement
Fixed price only works if scope is defended, and that is the job. You will run the fortnightly cycle, write the client updates, price change requests before they get built, and make sure nothing reaches handover with a loose end.
What we are looking for
- Have run fixed-price client work and protected the margin
- Write updates a client actually reads
- Comfortable saying no to a change request, in writing, the same day
- Detail-obsessed about handover
What it is like
Four things that are true here.
Two of them are advantages and two of them are trade-offs. We would rather you know which is which before you apply.
You own the thing
Features, not tickets. You are in the conversation where the decision gets made, not handed its output.
Small on purpose
No layers, no status theatre. The trade-off is that there is nowhere to hide an unfinished thing.
We write things down
If it happens twice it gets a runbook. If a runbook step is mechanical, it gets automated.
Fixed hours, real ones
Fixed price is a scoping discipline, not a licence to work weekends. If a date is at risk we change the scope, not the hours.
How hiring runs
Four steps, and the exercise is paid.
We ask for about four hours of real work and we pay our contractor rate for it. Asking candidates to work for free is a way of selecting for people who can afford to.
- 01
You send something
A CV, a portfolio, a GitHub profile, or just an email explaining what you have built. No cover letter template required.
- 02
A conversation
Forty-five minutes about work you have done and how you made the decisions. Not a quiz.
- 03
A paid exercise
A small, real piece of work — scoped to about four hours, paid at our contractor rate. We do not ask for free labour.
- 04
An offer, or a reason
Either way you hear back within a week with something specific. We do not go quiet on people.
Apply
Send us something.
No CV required and no cover letter template. A link to something you built and two honest sentences about a decision you made on it tells us far more.
Nothing open that fits? Apply speculatively — we keep good applications on file and come back to them when a seat opens.