Jacob’s Tech Tavern

Jacob’s Tech Tavern

Oh sh*t, I have an "iOS coding" interview and don't know what to practice

A handy survival guide: drill, baby, drill!

Jacob Bartlett's avatar
Jacob Bartlett
Mar 31, 2026
∙ Paid

Landing a job is never easy.

There are a lot of themes you’ll encounter across many interview loops: take-home projects, system design, iOS knowledge, and LeetCode puzzles. These are pretty universal, and straightforward to prepare for.

In my interview grind over December, I worked through ~30 individual technical interviews. Along the way, I encountered several rounds simply labelled “iOS coding round” or “app building exercise” or “programming in iOS”. I’d email the internal recruiter, and get zero details. Flying blind.

Companies are being deliberately vague: They want to see you handle an unknown problem using your raw skills.

But, as a candidate, accepting the unknown is a crappy way to prepare for an interview. There is a way to train yourself to handle any curveball an iOS interview might throw at you: Drills.

Drilling a wide variety of problems helps train your engineering muscle memory and load up your cranial CPU caches, honing your ability to tackle any problem thrown your way. With practice, you can demonstrate your skills in the best light.

Today, I’ll detail the 5 broad archetypes of “iOS coding” interviews you’ll encounter. I’ll be sharing real practice problems (and solutions) that I used to land a tech job last month.

  • Screen building

  • Component design

  • LeetCode-“lite”

  • Fundamentals

  • API design

This post comes packed with a fully-fledged sample project with drills to help you practice each class of interview problem.


Today is the last day of the Spring Sale for my Swift Concurrency eBook bundle. Get 55% off my paid-only concurrency masterclasses and own them forever.

Master Concurrency for $29


Categories of “iOS Coding” exercise

If you’ve been out of the job market a while, you might be unfamiliar with the format.

Some companies, the stars, give you a highly detailed PDF explaining what they’ll interview you about, and what you can expect.

The vast majority are pretty taciturn when telling you what to expect.

If you know, you know. The email invite will look something like this:

  • “An interview focused on programming and debugging in iOS.”

  • “An interview involving an app building exercise”

  • “An interview focusing on your experience with the iOS ecosystem, including core programming, architecture, and problem-solving.”

  • “An interview testing understanding of algorithms, data structures, and clean code”

  • “An interview on software engineering & API-oriented programming.”

Deciphering these is more art than science.

Some are mercifully transparent: perhaps, for an app-building exercise, I should practice building an app. Others are painfully opaque: I guess it’s an interview about programming?

Across the 30 technical rounds I completed, I can map the generic “iOS-programming” style rounds to a few core categories, which dramatically focuses the scope of what you can do to prepare:

Screen building

This is the most straightforward challenge: you will be asked to build a screen from scratch with UIKit or SwiftUI. Practicing these is almost trivial: time yourself building various designs within 30 minutes or so.

Component design

You’ll be asked to build some kind of reusable UI component, demonstrating you can code, think about requirements, and recognise edge cases. Drilling is straightforward: practice building these components from scratch.

LeetCode-“lite”

Many companies say they’ll test you on algorithms and data structures, but insist that “it’s not LeetCode”. What they mean is that it’s not a specific LeetCode problem. But the only way to practice for these kinds of exercises is, you guessed it, practicing LeetCode.

Fundamentals

This is a broad category of problem where you’re asked to demonstrate something like concurrency skills, debugging skills, or testing skills. This is where AI tooling really shines in creating practice questions, with a little guiding hand.

API design

API design is a pretty uncommon format. It’s closer to a system design exercise, except you’re expected to show some code. You’ll be asked to design protocols to effectively implement a feature or system.


Modern tooling makes it easier than ever to drill problems.

Agentic CLI tools like Claude Code and Codex will trivially generate sample projects for you and enable you to work through dozens of problems to practice your fundamentals, or develop your skills with a framework such as GCD.

Alternatively, it is helpful to poke holes in your own code, highlighting flaws, sloppy code, or missed edge cases.

Drilling random challenges train you to tackle unknown problems and allows you to shine in the interview.

Now I’ll give a worked example of each category of problem, sharing the sample code so you can drill for yourself. When you’re ready, you’ll have the power to generate and grade your own drills.

Upgrade to unlock this article, plus much more:

🌟 Access Elite Hacks, my exclusive advanced content
🚀 Read my free articles a month before anyone else
🧵 Master concurrency with my full course and advanced training

User's avatar

Continue reading this post for free, courtesy of Jacob Bartlett.

Or purchase a paid subscription.
© 2026 Jacob Bartlett · Privacy ∙ Terms ∙ Collection notice
Start your SubstackGet the app
Substack is the home for great culture