- Queues
First in, first out. Written as a circular buffer, because the obvious version — shift everything down on dequeue — is O(n) and is the standard way a hand-rolled queue goes wrong. Plus the growth bug that only appears after the buffer has wrapped.
- Terraform – Providers, Versions and the Lock File
A provider is the plugin that knows how to talk to AWS, and pinning it is the difference between a reproducible build and a surprise on Tuesday. `required_providers`, version constraint operators and which one to use, what `.terraform.lock.hcl` is for and why it belongs in git, provider aliases, and deploying to two regions from one configuration.
- React Native – State: Context, Reducers and Custom Hooks
Same React you already know, with one extra constraint: a phone can be killed at any moment. `useReducer` for rules that depend on previous state, Context for what the whole tree needs, custom hooks for what one screen owns, and the ordering problem nobody warns you about — when one provider reads another, the nesting order becomes load-bearing.
- Spring Boot – Lombok
The annotations worth using — @Getter, @Setter, @RequiredArgsConstructor, @Builder, @Slf4j — and the two to be careful with: @Data on a JPA entity generates an equals and hashCode that break the moment the entity is in a HashSet, and @ToString will happily log a password field.
- TypeScript – Arrays and Tuples
string[] versus Array<string>, arrays of unions versus unions of arrays, and readonly arrays that stop a helper mutating its argument. Then tuples: fixed length, typed per position, and the one in this app's date formatter that would be Array<string | number> without them — which is to say, useless.