- Frontend Dev – Testing
How you change code you did not write without being afraid. What is worth testing in a UI and what is not, testing what the user sees rather than what the component holds, querying by role so a test breaks when the app breaks and not when a class name changes, and where end-to-end tests earn their keep.
- Terraform – Running It in Production
What changes when the state file matters. Reading a plan properly and the three words that should stop a merge, `prevent_destroy` on the things you cannot lose, drift and what to do about it, secrets in SSM instead of variables, `moved` and `import` for refactoring without destroying, least-privilege CI credentials, keeping the bill visible, and `terraform test`.
- React Native – Building and Releasing to the App Stores
The last mile, and the part web developers underestimate. `expo prebuild` and what it generates, EAS Build for machines you do not own, bundle identifiers, versioning and build numbers, environment configuration without leaking secrets, over-the-air updates and what they can and cannot change, and what App Store and Play Store review will ask you for.
- TypeScript – Assertions, as const and satisfies
`as` is you overruling the checker, and it is the one construct here that can make a program crash. When it is legitimate, the double-assertion escape hatch and why needing it is a warning, non-null `!`, and then `satisfies` — the operator that checks a value against a type without widening it, which is what you usually wanted.
- NestJS – Databases with TypeORM
Entities, repositories, migrations and transactions. forRoot and forFeature, why synchronize must stay false, the column types that bite — bigint and numeric come back as strings — and a real transaction with a pessimistic row lock, which is the reason this app's writes go through NestJS rather than through a generated mutation.