- Binary Search
Halve the search space every comparison: O(log n), a billion elements in thirty steps. Also the three ways it is habitually got wrong — the midpoint overflow that was in the JDK for nine years, the infinite loop, and the boundary — plus lowerBound, the variant that is actually useful.
- Terraform – Remote State and Locking on S3
Local state works until there are two of you, then it corrupts. The S3 backend, native state locking with `use_lockfile` — and why every tutorial you will find still tells you to create a DynamoDB table that Terraform 1.11 deprecated. Bootstrapping the bucket that holds the state, versioning and encryption on it, and migrating a local state file into it without losing anything.
- React Native – Native Modules and Config Plugins
The moment you need something JavaScript cannot do. Why Expo Go cannot load a native module and a development build can, what `expo prebuild` generates, config plugins that edit the native projects for you, and the architectural move that keeps a native-only dependency from infecting the whole app — one folder, one interface, and a platform-split file the bundler resolves.
- Spring Boot – Method-Level Security
@PreAuthorize, @PostAuthorize and @Secured, and why URL rules alone stop being enough as soon as two entry points reach the same service. Expression-based checks against the authenticated principal, and the proxy rule that makes an internal call skip the check entirely.
- TypeScript – Enums, and What to Use Instead
TypeScript's enum is the one feature in the language that emits runtime JavaScript, and everything awkward about it follows from that: reverse mappings that put numbers in your object, const enum breaking under isolatedModules, and a build flag that rejects it outright. Then the `as const` object this app uses in both halves instead.