- iOS – Accessibility
A drawn control carries no meaning. Labels, values, traits and the difference between them, combining a row into one announcement and the trap that hides its button, Dynamic Type, touch target size, and how to check any of it in about a minute — with the real controls in this app that needed each fix.
- AI-Assisted Engineering – Read the Code, Follow the Plan
Clicking Accept is not a review. The job moves from writing code to reading it: how to read an AI-written diff quickly, what to check first, how to hold the assistant to the agreed plan and spot drift, and a real case where accepting blind would have shipped a bug.
- TypeScript – Interview Questions
The questions a TypeScript role actually asks, answered against the twenty lessons before this one. any versus unknown, interface versus type, why enum is contentious, what structural typing means in practice, how narrowing works, what erases at build time and what does not. Short answers, with the reasoning behind them.
- NestJS – Interview Questions
The questions that actually get asked, with answers drawn from the nineteen lessons before this one — module scope and why a provider is not global, guards versus middleware versus interceptors, how Nest resolves a dependency, why the global ValidationPipe matters, and what happens to an exception on its way out.
- AI-Assisted Engineering – You Own the Output
An AI assistant can now read a codebase, trace a feature through five layers, write the change, run the tests and draft the pull request. That is not a prediction; it is what happened while this series was being written, and every post shows the session it came from. What it has not changed is who…