Oh sh*t, I have an "iOS coding" interview and don't know what to practice
Oh sh*t, I have an "iOS coding" interview and don't know what to practiceA handy survival guide: drill, baby, drill!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. This post comes packed with a fully-fledged sample project with drills to help you practice each class of interview problem.
Categories of “iOS Coding” exerciseIf 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:
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 buildingThis 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 designYou’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. FundamentalsThis 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 designAPI 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.
Continue reading this post for free in the Substack app |


