Our mobile team has two people. Not two squads, not two pods. Two humans, one codebase, hundreds of thousands of users between us.
When I tell engineers from bigger companies, the reaction is always the same mix of horror and envy. Both are correct.
There are no bystanders
On a big team, a bug can be somewhere between everyone’s responsibility and no one’s. On a team of two, every single defect belongs to one of us, and the other one reviewed it. That is the entire org chart. There is nowhere to stand where a problem is not partially yours.
This sounds heavy, and it is, but it does something valuable to your relationship with the codebase. You stop thinking in terms of “my module”. All of it is yours. The build system is yours. The crash reports are yours. The ancient screen nobody has touched in two years is yours the moment it misbehaves.
One reviewer, forever
Every line I ship was reviewed by the same person, and I review every line of theirs. We know each other’s blind spots by now, which is both the strength and the weakness of the arrangement. My teammate knows I will catch a sloppy state flow. I know they will catch a missed edge case in anything involving dates. And we both know the categories of mistake we share, which no review between us will ever catch, because we are blind in the same places.
That last part is why I lean so hard on outside signals: static analysis, crash reporting, and lately AI reviewers that do not share our habits. When your reviewer pool is one person, you go looking for disagreement wherever you can buy it.
What it forces you to build
Writing as infrastructure. If it lives only in my head and I am on leave, the team has lost half its knowledge. Decisions get written down not because process demands it but because arithmetic does.
Automation as a third teammate. Every check that runs by itself is review capacity we do not have to spend. The pipeline is not bureaucracy for us. It is headcount.
Runbooks for everything. Release steps, rollback steps, the weird cert renewal. The bus factor of a two-person team is not a thought experiment. It is Tuesday.
The honest cost
Vacations are real but never clean. There is always a corner of your brain listening for the phone. Growth is slower in some ways too: nobody senior to you is walking over to show you a better pattern, so you have to import your mentors through books, code you admire, and communities you lurk in.
And some days the smallness just costs speed. Two people can only be in two places. The backlog knows this and does not care.
Would I trade it for a big team? Some weeks, absolutely. But a team of two taught me a definition of ownership that I do not think can be taught any other way: the system is healthy because you, personally, kept it healthy. No diffusion, no ambiguity, no crowd to disappear into.
Horror and envy. Like I said, both are correct.
