THE LATEST
THE LATEST
Claude wrote this?
Here is how the post you’re reading right now got made. I keep an index of my past writing and a backlog of ideas: things I find myself saying in conversations that never quite made it onto a page. Each week I brainstorm with Claude about which idea is timely/relevant/interesting. Then I have Claude ask […]
“Simple can be harder than complex: You have to work hard to get your thinking clean to make it simple. But it's worth it in the end because once you get there, you can move mountains.”
— Steve Jobs
Recent Posts
Developers Are Human
Over 30 years ago, a CS professor of mine dropped a piece of wisdom as an aside in class. Dr. Soroka told us that every time he fixed something in a program, he got a little jolt of happiness. A little high. And he’d noticed something curious: the size of the high was not proportional […]
Verification, Verification, Verification
Boris Cherny, the head of Claude Code at Anthropic, said something last week that should sound familiar to anyone who’s read this blog: “The verification is probably the single most important thing that people do not get right.” The skill in working with AI, he argued, is less about prompt engineering and more about handing […]
Learn From the Source
Years ago, listening to Horace Dediu’s podcast, I heard Bob Moesta interviewing Horace about a car he’d recently bought. Bob was walking through the purchase the way he does, when Horace mentioned something about gas mileage. Bob paused the interview. “Did you see what just happened? Horace just tried to tell me he got a […]
From the Scariest Problem to a Row of Simple Changes
Years ago we built a dating app called Zazazu. At its heart was an in-app economy more complicated than anything a dating app had tried before. The original model was simple: a straightforward 1-1 currency per transaction. Then the business evolved, the way businesses do, and the founders needed something entirely different: free-to-play, a multi-tiered […]
Expansion vs. Extraction
There are only two modes a company can run in: Expansion or Extraction. And it isn’t just companies. A team, an economy, a whole country is always doing one or the other, even if the underlying choice isn’t surfaced or clear. Expansion means you still believe there’s more to reach for: more customers to win, […]
MVP: Misunderstood Vision for Product
Somewhere along the way, “minimum viable product” stopped being a meaningful concept and drifted into product lore. It’s a term everyone knows and yet almost no one can define the same way. Saeed Khan went so far as to argue the term (and other Product terms) has lost so much shared meaning it’s worth retiring. […]
Apple, the EU, and the Cost You Don’t Normally Get to See
Sixteen years ago, in the early days of the App Store, we built an app called The Red Carpet. It let you follow the Oscar nominees, wrapped around an audacious hook: guess every winner correctly and win a million dollars. The contest was real. We’d secured a $1M policy from Lloyd’s of London, gotten bonded […]
Apple had lost the plot. Did they rediscover it?
Last year I sold almost all of an Apple position I’d spent fifteen years building. The decision had nothing to do with the stock price. I assumed it would keep climbing for a while, the way Intel kept climbing long after it stopped being the company that defined its industry. Great companies run on a […]
Android
How Do You Test Mobile Apps for Android?
It’s a question I hear from nearly every client. So here are five ways to make that testing easier. There are thousands of variants of Android devices out there and your app will be run on an incredibly high number of them. There simply isn’t a way to test on every different flavor of device. But like […]
BiTe
Development
Developers Are Human
Over 30 years ago, a CS professor of mine dropped a piece of wisdom as an aside in class. Dr. Soroka told us that every time he fixed something in a program, he got a little jolt of happiness. A little high. And he’d noticed something curious: the size of the high was not proportional […]
Verification, Verification, Verification
Boris Cherny, the head of Claude Code at Anthropic, said something last week that should sound familiar to anyone who’s read this blog: “The verification is probably the single most important thing that people do not get right.” The skill in working with AI, he argued, is less about prompt engineering and more about handing […]
From the Scariest Problem to a Row of Simple Changes
Years ago we built a dating app called Zazazu. At its heart was an in-app economy more complicated than anything a dating app had tried before. The original model was simple: a straightforward 1-1 currency per transaction. Then the business evolved, the way businesses do, and the founders needed something entirely different: free-to-play, a multi-tiered […]
Apple, the EU, and the Cost You Don’t Normally Get to See
Sixteen years ago, in the early days of the App Store, we built an app called The Red Carpet. It let you follow the Oscar nominees, wrapped around an audacious hook: guess every winner correctly and win a million dollars. The contest was real. We’d secured a $1M policy from Lloyd’s of London, gotten bonded […]
Apple had lost the plot. Did they rediscover it?
Last year I sold almost all of an Apple position I’d spent fifteen years building. The decision had nothing to do with the stock price. I assumed it would keep climbing for a while, the way Intel kept climbing long after it stopped being the company that defined its industry. Great companies run on a […]
Offices Don’t Make Teams
Years before I co-founded BiTE, I worked remotely for a company that wasn’t a remote company. I’d moved from California to Tennessee, and they kept me on, but I was the only person they had working from outside the office. It mostly worked, because I’d been there long enough to know everyone. But there was […]
Software Is a Team Sport
I’ve been overjoyed watching the Western Conference Finals this past week. I know. Some of you reading this don’t go in for “sportsball” talk, but if you bear with me (or skip ahead a few paragraphs) I promise I have a point. The Thunder and the Spurs are two extremely elite basketball teams. Not only […]
Architecture Is About Making Easy Things Harder
In iOS development, there’s always been a fight over Controllers. The path of least resistance, when you have a piece of new logic to add, is to just throw it in the Controller. Every Apple WWDC for years would pretend this is how you add this new API. Drop in three lines, ship it. The […]
Strategy
Learn From the Source
Years ago, listening to Horace Dediu’s podcast, I heard Bob Moesta interviewing Horace about a car he’d recently bought. Bob was walking through the purchase the way he does, when Horace mentioned something about gas mileage. Bob paused the interview. “Did you see what just happened? Horace just tried to tell me he got a […]
Expansion vs. Extraction
There are only two modes a company can run in: Expansion or Extraction. And it isn’t just companies. A team, an economy, a whole country is always doing one or the other, even if the underlying choice isn’t surfaced or clear. Expansion means you still believe there’s more to reach for: more customers to win, […]
MVP: Misunderstood Vision for Product
Somewhere along the way, “minimum viable product” stopped being a meaningful concept and drifted into product lore. It’s a term everyone knows and yet almost no one can define the same way. Saeed Khan went so far as to argue the term (and other Product terms) has lost so much shared meaning it’s worth retiring. […]
FDA’s CDS Guidance Makes Explainability an Engineering Requirement
The FDA updated its Clinical Decision Support guidance on January 29, 2026. Most coverage will focus on what’s excluded from device regulation. The more important question is what isn’t. Navigating the Updated FDA CDS Guidance CDS software avoids device classification only if it meets four criteria. The first three are relatively mechanical: no image or […]
Failure Prevention Is the Wrong Goal
Why Failure Prevention Fails in Real-World Systems Most teams building critical systems optimize for failure prevention. Fewer outages. Fewer bugs. Fewer incidents. The goal sounds right. The engineering model behind it is wrong. Prevention assumes you can eliminate failure from a system. You cannot. Not in systems with external dependencies, human operators, network boundaries, or […]
The Asymmetrical Advantage of Distributed Teams
I’ve talked before about BiTE’s completely distributed team, and how I think this is one of the keys to our success. Not only does it vastly open up the talent pool when looking for new team members but it decreases turnover while increasing productivity and flexibility. I’m often asked how we deal with the “inherent […]
The 4 Forces Applied: Why Microsoft’s Conversion Tool Won’t Entice iOS Developers To Windows
Microsoft’s newly announced conversion tool for bringing iOS code to Windows will not be compelling enough to move developers over. The 4 Forces help explain why. The 4 Forces are a lens used to look at why people decide to change their behavior to use a new product or service. It is a wonderfully helpful […]
Why Focus Groups Lead to Horrible Software
The first rule of great product development is: Don’t ask the customer what they want. But why? Well, customers have no idea what they want. More importantly, they can’t tell you why they really buy your product. I love the Henry Ford’s quote, “If I’d of asked people what they wanted, they would have […]
iOS
Apple, the EU, and the Cost You Don’t Normally Get to See
Sixteen years ago, in the early days of the App Store, we built an app called The Red Carpet. It let you follow the Oscar nominees, wrapped around an audacious hook: guess every winner correctly and win a million dollars. The contest was real. We’d secured a $1M policy from Lloyd’s of London, gotten bonded […]
Apple had lost the plot. Did they rediscover it?
Last year I sold almost all of an Apple position I’d spent fifteen years building. The decision had nothing to do with the stock price. I assumed it would keep climbing for a while, the way Intel kept climbing long after it stopped being the company that defined its industry. Great companies run on a […]
Architecture Is About Making Easy Things Harder
In iOS development, there’s always been a fight over Controllers. The path of least resistance, when you have a piece of new logic to add, is to just throw it in the Controller. Every Apple WWDC for years would pretend this is how you add this new API. Drop in three lines, ship it. The […]
Swift 5.5: Asynchronous Looping With Async/Await
In an earlier article, I introduced the Swift 5.5 async/await syntax that lies at the heart of Swift’s new structured concurrency. To do so, I demonstrated how to replace a common use case of Grand Central Dispatch (GCD) — switching from the main thread to a background thread and then back to the main thread […]
Swift 5.5: Replacing GCD With Async/Await
Multithreading! The mere word sends shivers up one’s spine. And if it doesn’t, it should. Main thread and background threads. Code that runs asynchronously. Code that can run simultaneously with other code. Code that can run simultaneously with itself. Code that can share data across threads — possibly with disastrous consequences. Concurrency. Multithreaded code is […]
Taking Control of Rotation Animations in iOS
We all love to have animation in our app’s interface. But sometimes writing even the simplest animation can be rather elusive. Rotation is a case in point. As you probably know, the way to rotate a view (or a layer) is to change its transform, applying a rotation transform to it. But certain rotations are […]
Little Swift Tricks: Boxing Multiple Types
Here’s a little Swift language trick I sometimes use — more often than you might suppose, actually. As I’m sure you know, Swift is very strict about the types of its objects. You have to declare clearly what type a reference is, and from then on, you have to stick to that. That’s one of […]
Night Thoughts on Testing iOS In-App Purchases
What’s the business model for an iOS app? If you aren’t just distributing an app as a freebie out of the goodness of your heart (several of my apps do work that way), and if you aren’t being paid directly by a client to create or maintain the app in the first place, and if […]






















