I build things,
and write about them.
Deep-dives and hard-won notes on iOS, the web, AI, and whatever I'm building next. Tested first, then written plainly — no fluff, no AI slop.
How Much SwiftUI Navigation Architecture Do You Actually Need? Build It Three Ways and Find Out
One app, three navigation architectures, one UI test suite. Fifteen out of fifteen requirements pass without a router, so what does architecture actually buy you?
Read articleLatest articles
24 of 141 postsYour CPU Has More Cores Than Your Job Can Use
Some work splits cleanly across hundreds of cores. Other work is a chain of steps where every new step has to wait for the last one to finish.
ReadYour Password Isn’t as Random as You Think
Crack-time calculators measure the size of a theoretical password space—not how people actually choose passwords or how attackers search them.
ReadGoogle Maps Doesn't Store Your Route. It Stores Something Smarter.
Instead of calculating every journey in advance, routing systems restructure the map so that a search can ignore almost everything and still find the right road.
ReadAn AI Can Score Higher Without Knowing More
Most benchmarks give a wrong guess the same score as “I don’t know,” so a model can climb the leaderboard without learning anything new.
ReadWhat Happens to Your Internet When an Undersea Cable Is Cut?
Three cables were cut in the Red Sea in 2024 and the traffic graphs did not move. Here is why that happened, and the two places where it stops being true.
ReadWhy Doesn't More RAM Make My Computer Faster?
Your memory bar has room to spare and the machine is still slow. The processor is not working hard, it is waiting for numbers to arrive, and buying more memory does not shorten that wait.
ReadWhy Is ChatGPT Losing Money If Everyone Pays?
Every software business ever built rested on one property: the second copy is free. AI is the first product sold at scale where that stopped being true, and it is why the price per token keeps falling while the bills keep climbing.
ReadWhy Is AI So Expensive to Run?
Google's index is more than a hundred thousand times bigger than a large AI model, and the small one is the expensive one. Here is where the money actually goes, and why your answer costs more than your question.
ReadWhy Does AI Write One Word at a Time Even on a Fast GPU?
It is not the model thinking. To write a single word the machine reads every number in the file, and the pipe carrying those numbers is narrower than the cores are fast. The arithmetic fits on an envelope.
ReadWhy Does AI Ignore an Instruction That Is Still Sitting Right There?
It is resent on every single turn and read straight past. Instruction-following falls from 88% to 71% by your third message. The mechanism, the measurements, and the one line that fixes it.
ReadEvery Way Apple's On-Device Model Can Fail, and How to Handle Each One
Nine errors, measured. The safety filter blocks ordinary Unix documentation, one failure costs ten seconds and hands back nothing, and chunking loses three quarters of the details.
ReadApple's On-Device Model Keeps Handing Back Your Own Text
A typed return value nearly eliminates it. Measuring what that costs turned up two more things, including a latency number I had been publishing wrong.
ReadBuild an On-Device Summariser in SwiftUI, and Measure What It Costs
A complete SwiftUI app that summarises text entirely on-device, and the first-token numbers behind it: 27x slower on the simulator than on a real phone.
ReadAn Empty String Costs 8 Tokens: What Apple's tokenCount(for:) Actually Measures
Apple's tokenCount(for:) reported 9 tokens for the word test. An empty string costs 8. And a real session charges 22, not 8, so the overhead you can measure is not the one you are billed for.
ReadThere Is No Such Thing as a Token Count
The same sentence costs 3 tokens on Apple's on-device model, 5 on GPT-4o and 13 on GPT-3.5. Measured across eight languages, three tokenizers, and one context window that is far smaller than you think.
ReadI Counted Every Compiler Error in a Swift 6 Strict Concurrency Migration
I migrated a Swift 5 module to strict concurrency and counted the compiler errors at every stage. Eight errors became two from one build setting, and the real cost was somewhere I did not expect.
ReadWhy I'm Rebuilding My Blog From Scratch (and Leaving Medium)
After years of publishing on someone else's platform, I'm moving my writing to a home I actually own. Here's the reasoning, and what I'm building instead.
ReadData Is the Model: The Most Ignored Part of AI
A beginner-friendly guide to why data quality beats model hype.
ReadAI on Apple Platforms: What Runs Where (And Why)
A beginner-friendly view of Apple’s AI stack, from on-device tradeoffs to server realities.
ReadHow to Use GeometryReader in SwiftUI Without Breaking Everything
The practical guide to GeometryReader: reading view sizes, building adaptive layouts, and avoiding the mistakes that break your UI
ReadStop Using Just Button: Better Ways to Handle Taps in SwiftUI
Button styles, tap gestures, custom hit areas, and gesture modifiers that make your SwiftUI views interactive
ReadHow to Actually Understand SwiftUI Layout (Not Just Copy-Paste)
Learn how VStack, HStack, alignment, and spacing work together to build layouts confidently
ReadStop Using Default Text: Better Typography for SwiftUI Apps
Dynamic Type, proper spacing, custom fonts, and text effects. Here’s how to make text look intentional
ReadHow to Make SwiftUI Apps Look Good Without Being a Designer
The practical guide to colors, gradients, and shadows that’ll make your SwiftUI views look professional
ReadNew articles, straight to your inbox.
No spam, no filler — just new writing on iOS, the web, and AI when it ships. Unsubscribe anytime.