Imogen Holloway: Nathan, you are one engineer for an eight-app portfolio. How is that possible?

Nathan Beaumont: Discipline of scope, mostly. We do not build features that do not earn their place. The codebases are small. The patterns are consistent. I am not heroically productive. The work is just contained.

IH: What do you automate?

NB: Anything that runs more than once. Builds, screenshot generation, App Store submission, beta uploads, version bumping, changelog scaffolding. If I do something twice, the third time I write a script.

IH: What do you refuse to automate?

NB: Code review. Even when there is only one of me. The act of writing the PR description, of reading my own diff, catches things that no test will. I PR everything I ship, even into my own branch.

Also copy. Eleanor and I will rewrite a paywall headline together, by hand, until it sounds right. No tooling for that.

IH: What is the codebase decision you are most proud of?

NB: Not adopting TCA. We tried it on one app in 2023. It is a beautifully designed library. For a small team running multiple apps, it cost more to maintain than it saved. We removed it and went back to small @Observable view models with initializer-injected dependencies. Boring. Easy. Survives every iOS update.

IH: What would you tell a young iOS engineer who wants to start a studio?

NB: Two things. First, do not optimise prematurely. Pick the smallest pattern set you can defend, write it down, and protect it from drift. Architecture astronauts ship slowly.

Second, master the boring stuff: CI, code signing, App Review submission, crash reporting. The work that is not glamorous is the work that lets you ship every two weeks instead of every two months.

IH: What are you working on this week?

NB: Migrating the last RevenueCat call in DrawBuddy to native StoreKit 2. It is not a glamorous diff. It will save us a small monthly bill and reduce one external dependency. I am happy.

Nathan Beaumont is Senior iOS Engineer at Tappa. Before joining, he wrote code at a Toronto fintech.