Work on hard problems with people who care
We're a small, senior team. We don't hire in bulk — we hire carefully, because every person changes the culture and the quality of the work.
If you're the kind of engineer who reads commit messages, asks uncomfortable questions in architecture reviews, and cares about what happens after the PR is merged — we'd like to meet you.
Open Application
No open roles listed? Send us your profile anyway — we hire ahead of need for strong fits.
No open roles currently
We don't always have open roles listed. When we do, they appear here. When we don't, we still welcome open applications — we hire ahead of need for people who are a strong fit.
Send us an open application using the form above. We review every application and reach out when there's a relevant conversation to have.
How We Work
Before you apply, it's worth knowing what the day-to-day actually looks like. We've tried to be specific rather than aspirational.
Remote-first, not remote-optional
The team is fully distributed. There are no offices. Remote is not a perk granted on certain days — it is the default and permanent mode of operation. Occasional in-person collaboration happens for onboarding and annual team gatherings.
Async by default
Decisions are made in writing. Meetings have a written agenda and produce written notes. The information a new person needs to understand a decision is in a document, not in someone's head.
Senior engineers on real problems
We don't have a junior-heavy staffing model where senior engineers write tickets and juniors execute them. Seniors write code. They make architectural decisions. They talk directly to clients.
Honest feedback culture
Code reviews are substantive. Architectural disagreements happen and are worked through in writing. We expect people to have opinions and to express them clearly. Diplomatic silence is not a virtue here.
What We Look For
We don't require a specific set of years of experience or a degree from a specific institution. We look for things that are harder to measure — and, we think, harder to develop.
Ownership orientation
You treat problems as yours to solve, not someone else's to fix. You notice things that aren't your responsibility and flag them anyway. You don't wait to be told what to do when the path forward is obvious.
Engineering judgment
You know when a simple solution is better than a clever one. You can distinguish between a problem that needs to be solved now and one that should be designed for the future.
Clear communication
You write clearly. You summarise complex situations without losing important detail. You can explain a technical problem to a non-technical stakeholder without being condescending or vague.
Production-minded thinking
You think about what happens after deployment. You consider failure modes, edge cases, and operational concerns as part of design — not as an afterthought.
Want to understand the kind of team you'd be joining?
Read about how we work and what we care about.