Writing

Notes from the last 10%.

The details that separate working from great. Field notes from actually shipping iOS apps: debugging, UIKit internals, subscriptions, and the craft that turns a functional app into one people love.

Where does this code live? Clean Architecture, interactively

An interactive engineering notebook, not a post. Build a ride-sharing app one file at a time, guess which layer each piece belongs in, watch a request flow through every layer, and finally understand why each layer exists.

Open the notebook →

UIKit and SwiftUI interview questions that actually come up

The questions iOS interviews actually ask, answered in a sentence or two, with the trap hidden in each one. No 400-question dump.

Read the guide →

Top 5 iOS animation libraries

Lottie, Rive, Pow, native SwiftUI, and ConfettiSwiftUI, in the order you'd actually reach for them, plus the one Facebook library still copy-pasted into "best of" lists that's been dead since 2020.

Read the guide →

Top 5 iOS logging & diagnostics libraries

Pulse, AvdLee/Diagnostics, CocoaLumberjack, SwiftyBeaver, and NSLogger: what each is actually for, install snippets, and where Apple's own OSLog is already enough on its own.

Read the guide →

17 ways to debug UIKit

Ordered by how often you'll actually reach for them. Logging, breakpoints, LLDB, the untappable-button fix, memory leaks, and production crash forensics, each with the exact code or command right there.

Read the guide →
More coming: iCloud sync failure modes · paywall A/B testing with BigQuery · cutting app size in half