Modern CSS layout: grid, container queries and :has()
CSS has quietly absorbed features that used to need frameworks or JavaScript. A tour of the layout tools worth knowing now.
Archive
Every story, newest first.
CSS has quietly absorbed features that used to need frameworks or JavaScript. A tour of the layout tools worth knowing now.
Floating point isn't broken — it's binary. Understanding what it can and can't represent tells you when to use it and when to reach for decimals or integers.
Free-form log lines are easy to write and painful to search. Emitting events with consistent fields turns logs into data.
Saying "we need to refactor" rarely wins a planning meeting. Framing debt in terms of risk, speed and cost does.
LLM features fail in ways unit tests don't catch. A few dozen labeled examples and a repeatable scoring script turn "it seems fine" into evidence.
Your database lets concurrent transactions see each other in controlled ways. Knowing which anomalies your isolation level allows prevents subtle, expensive bugs.
Every language implementation follows a recognizable pipeline. Knowing the stages makes error messages, tooling and performance easier to understand.
You don't need a security department to think like an attacker. A lightweight, repeatable session finds the risks worth fixing before they ship.
Whether to keep all your code in one repository or many is mostly a question of tooling and team structure. Neither is free.
Understanding how your tools are funded helps you predict their future. A field guide to the common business models behind developer products.
Every new technology you adopt spends some of your team's limited capacity for novelty. Spend it where it differentiates your product.
Languages offer very different tools for doing many things at once. Each model makes certain bugs impossible and others easy.