Writing
Notes on building
Practical notes from sixteen years of shipping Apple products — architecture, computer vision, and the occasional retrospective.
Building Products as an Engineer
Founding Momena taught me things about product thinking that sixteen years of writing Swift never did. Here's what changed once there was no one else to hand the decision to.
Lessons from 16 Years of Apple Development
What actually changed my mind about building software, from Interface Builder to SwiftData — and what stayed constant the whole way through.
LLMs Inside Native Apps
Bringing language models into a privacy-first Swift app without turning it into a chatbot wrapper — scoped prompts, honest UI, and knowing what to keep on-device.
Integrating CoreML Into Production Apps
What changes between a working .mlmodel file and a model your users can actually rely on — versioning, thermal budgets, and translating a data scientist's assumptions into Swift.
Computer Vision on iOS: From OpenCV to Core Image
When to reach for OpenCV, when Core Image and Vision already do the job, and how I structure a preprocessing pipeline that a CoreML model can actually trust.
Building Privacy-First Apps
Privacy-first isn't a policy page — it's a set of architecture decisions made before a single screen is designed. Here's how I actually apply it.
Building Modular Apple Applications
How I use local Swift packages to turn a slow, tangled app target into something a growing team can actually move fast inside.
Clean Architecture for iOS Teams
Clean Architecture is easy to over-engineer on a small iOS app. Here's the pragmatic version I actually use, and when I skip it entirely.
Swift Concurrency in Practice
Moving a production codebase to async/await and actors — where it genuinely simplified things, and where the migration bit back.
Modern SwiftUI Architecture Patterns
SwiftUI's opinions about state and data flow are stronger than UIKit's ever were. Fighting them is the most common architecture mistake I still see.