The Idea After deciding to build an iOS app using AI, the first thing I set out to create was a metronome app designed for dark stage environments. Back in college, I played drums — and while that was a while ago, there weren’t many metronome apps that felt both clean and professional. (Turns out, that’s still true today.) That’s what led me to the idea: a simple, black-and-white metronome where
I have a confession: I'm a productivity app addict. Notion, Todoist, Things, TickTick, Bear, Obsidian — I've tried them all. And every single one failed me in the same way. Not because they were bad apps. But because they let me add unlimited tasks. So I'd wake up Monday morning, open my to-do app, and see 47 items staring back at me. By 9am I was already paralyzed. Decision fatigue is real. When
What if your Kubernetes cluster simply refused to run unsigned images? I spent some time experimenting with enforcing image provenance in a small Kubernetes setup using MicroK8s. The idea was simple: Only container images with valid cryptographic signatures are allowed to run in the cluster. For this I used: GitLab CI/CD (build + signing pipeline) Cosign / Sigstore (image signing) Kyverno (admissi
I'm going to give you the comparison I couldn't find when I was choosing. Most "Claude Code vs Cursor" articles are either vibe-based or benchmarks that don't match solo indie dev workflows. I wanted something grounded in an actual multi-product project: 4 iOS apps, 5 distribution surfaces, 11 public repos, CI/CD across all of them. So I spent 14 days building exactly that — exclusively with Claud
It's a one-line item on the roadmap. "Send a push notification when X happens." Estimate is two days, three if the backend doesn't have FCM credentials yet. There's a library for it. The library is the visible part. The other 90% is platform lifecycle, registration state machines, race conditions with navigation, payload archaeology, and a half-dozen iOS and Android quirks. Nobody writes them down
Most teams I have worked with have one auth test in their suite. It looks like this: test('valid token verifies', () => { const token = signSync({ sub: 'user-1', aud: 'api://backend' }, secret); const result = verify(token, options); expect(result.valid).toBe(true); }); That test is fine. It is also a smoke test, not a regression suite. It catches the case where verification is completely b
The on-call alert at 02:14 said auth_5xx_rate spiked from 0.01 to 31.4. Not a deploy window. Not a traffic spike. Just thirty-one percent of authenticated requests failing for ~four minutes, then back to baseline. The cause was a JWKS rotation on the issuer side. New keys came in. Old keys went out. Caches in our service didn't refresh fast enough. Tokens signed with the new key were rejected beca
Mobile tests are where the bugs actually live. A signup flow that works on an iPhone 15 falls apart on a lower-end Android because the keyboard pushes a button off-screen. A push notification mid-flow leaves the app in a state nothing else reproduces. Memory pressure on a four-year-old Android does things you can't make a simulator do. I wrote simulator-only tests anyway, for years. Real-device ru