// writing
Thoughts on code,
craft & exploration.
A mix of technical deep-dives, career reflections, and dispatches from the road.
topic:

developmentAug 3, 2026· 4 min
CSS contrast-color(): Let the Browser Pick Your Text Color
The contrast-color() function went Baseline in April 2026 and kills the luminance-math helper every design system eventually writes. Here is how it works, the mid-tone problem nobody warns you about, and how to work around it.
read more →

developmentAug 2, 2026· 4 min
The Sanitizer API: Safe HTML Injection Without DOMPurify
The browser can now strip XSS from an HTML string during parsing. Here's how setHTML works, why its config can only narrow the allowlist, and how to ship it before Safari catches up.
read more →

financeAug 1, 2026· 5 min
Neobanks and the Sponsor Bank Model: Who Actually Holds Your Money
Your favorite fintech app probably isn't a bank. Here's the sponsor bank plumbing underneath it, why the ledger matters more than the logo, and what the Synapse collapse exposed.
read more →

obsidianJul 31, 2026· 5 min
Your Obsidian Plugin List Is a Supply Chain
Obsidian's 2026 Community directory added automated scans and safety scorecards for every plugin version. Here's what that changes, and how to actually audit the plugins already sitting in your vault.
read more →

developmentJul 30, 2026· 4 min
Laravel 13 PHP Attributes: Config That Lives With Your Code
Laravel 13 expands first-party PHP attributes across controllers, authorization, and queued jobs. Here is what actually changed, and where attributes are still the wrong tool.
read more →

financeJul 29, 2026· 5 min
How to Read an Earnings Report Without Trusting the Headline
The number at the top of an earnings press release is the number the company chose to put there. Here is where the actual information lives: the reconciliation table, the cash flow statement, and the guidance.
read more →

obsidianJul 28, 2026· 4 min
Obsidian QuickAdd: Capture, Templates, and Macros Without Leaving Your Keyboard
QuickAdd turns Obsidian into a keyboard-driven capture machine. Here is how its Captures, Templates, and Macros actually work, with copy-paste examples.
read more →

developmentJul 27, 2026· 4 min
CSS sibling-index() and sibling-count(): Native Staggering Without nth-child Hacks
CSS sibling-index() and sibling-count() turn an element's position into a number you can drop into calc(), replacing walls of nth-child rules and inline JavaScript for staggered animations and math-driven layouts.
read more →

developmentJul 26, 2026· 4 min
Animate to height: auto in CSS with interpolate-size and calc-size()
Transitioning an element to height: auto used to mean JavaScript measurements or fragile max-height hacks. interpolate-size and calc-size() finally make it a one-line CSS opt-in.
read more →

financeJul 25, 2026· 4 min
Dollar-Cost Averaging vs. Lump-Sum: What the Data Actually Says
Investing a windfall all at once beats easing it in about two-thirds of the time. Here is what the research actually says, and when dollar-cost averaging still makes sense.
read more →
…
// the newsletter