- Android – DataStore and the Keystore
Where each thing an app remembers belongs. DataStore and why it replaced SharedPreferences, encrypting a token with an Android Keystore key that never leaves the device, why EncryptedSharedPreferences is no longer the answer, and backup rules that keep secrets off other phones.
- iOS – Interview Questions
The questions an iOS role actually asks, answered against the twenty-one lessons before this one. Struct versus class, what @State really stores, how SwiftUI decides to redraw, retain cycles in closures, what @MainActor guarantees, actor reentrancy, and how you would make a screen testable. Short answers, with the reasoning.
- AI-Assisted Engineering – Writing Tests That Prove Something
An assistant will happily write tests that pass. The question is whether they fail when the code is wrong. Asking for behaviour rather than coverage, proving a test by breaking the code, and the test changes you should never accept.
- AI-Assisted Engineering – Writing Code in Small, Readable Diffs
One plan step at a time, in the codebase's own style, verified before the next. How to keep diffs small enough to actually read, what drift looks like in practice, and how to push back when the assistant wanders off the plan.
- Android – Dependency Injection with Hilt
What Hilt actually generates, @Inject constructors, modules with @Provides and @Binds, components and scopes as lifetimes, qualifiers, @HiltViewModel, and swapping the network for fakes in a test — set against the hand-written composition root the iOS version of this app uses instead.