Languages & Design
TypeScript's type system, the Node runtime, and the design vocabulary — SOLID, patterns, and the caveats that keep them from becoming dogma.
- JavaScript SemanticsCoercion, hoisting, closures, and `this` — the handful of rules that explain almost every surprising JavaScript result, derived rather than memorised.
- TypeScript's Type SystemMaking illegal states unrepresentable — discriminated unions, exhaustiveness checking, branded types, and the limitation that a type annotation is not a runtime check.
- The Node RuntimeModules, memory, and the security holes specific to Node — prototype pollution, shell injection, SSRF — plus why in-memory state stops working the moment you run two processes.
- Objects, Prototypes and CompositionThe four OOP words defined properly, how JavaScript actually implements them, and the arithmetic showing why inheritance multiplies classes while composition adds them.
- SOLIDFive heuristics for where to draw boundaries — stated as "one reason to change" rather than "one responsibility", with the violations that cost something and the honest limits of each.
- Design PatternsA pattern is a name for a recurring shape, and its value is mostly communication — the five worth writing from memory, the one that needs a caveat, and the anti-patterns worth naming.