- Date Time API
Java has two date APIs. The old one — Date , Calendar , SimpleDateFormat — is mutable, not thread-safe, and confusing enough that it was replaced. The modern one, java.time , arrived in Java 8 and is what you should use for everything. This matters more than most "prefer the new API" advice,…
- ArrayList — Building a Growable Array
ArrayList with the lid off — an array, a size, and a resize when it fills up. Why doubling makes add() amortised O(1) while growing by one makes n adds O(n^2), what the resize actually costs, and the null that stops a removed element leaking.
- 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.