- Terraform – Install It and Run Your First Apply
Install Terraform, point it at AWS, and create something real. The four commands the whole tool is built around — `init`, `plan`, `apply`, `destroy` — what each one actually does, how to read a plan before you approve it, and why `init` downloads hundreds of megabytes the first time and nothing the second.
- React Native – Deep Linking and the URL as State
A phone app has URLs too. Registering a scheme, what a universal link needs beyond that, and the habit worth keeping from the web: putting screen state in route params so a link opens the app already filtered. Also the trap — a deep link can point at a screen a newer build removed, which is why `+not-found` matters more here than on the web.
- Spring Boot – JdbcTemplate
When JPA has nothing to offer — aggregates, reports, any query whose result is not an entity. NamedParameterJdbcTemplate, RowMappers in their own testable classes, and the trap that silently inflated a revenue report: hand-written SQL never sees the @SQLRestriction that hides deleted rows.
- TypeScript – The Basic Types
string, number, boolean and the annotations you do not need to write. Where inference is better than an explicit type and where it quietly gives up, why let and const infer differently, literal types, and the one place a return type is worth writing by hand even though TypeScript could work it out.
- NestJS – Setting Up a Project
Creating a project with the Nest CLI, what each generated file is for, and the tsconfig flags Nest actually needs — experimentalDecorators and emitDecoratorMetadata are not style settings, they are what makes injection work. Plus the ESM trap that costs everyone an afternoon: why every relative import in this codebase ends in .js even though the file is .ts.