Skip to content
// writing

Thoughts on code,
craft & exploration.

A mix of technical deep-dives, career reflections, and dispatches from the road.

topic:
Dollar-Cost Averaging vs. Lump-Sum: What the Data Actually Says thumbnail
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 →
Building an Obsidian Theme: A Practical Guide to CSS Variables thumbnail
obsidianJul 24, 2026· 4 min
Building an Obsidian Theme: A Practical Guide to CSS Variables
You do not need to fight cascade specificity to restyle Obsidian. Override a handful of CSS variables and you have a real theme that respects light and dark mode.
read more →
JavaScript Iterator Helpers: Stop Converting to Arrays First thumbnail
developmentJul 23, 2026· 4 min
JavaScript Iterator Helpers: Stop Converting to Arrays First
Iterator helpers bring map, filter, take, and drop to any iterator without spreading into an array first. They went Baseline in 2025, and they change how you handle Maps, Sets, and generators.
read more →
How Staking Actually Works: Validators, Rewards, and Slashing thumbnail
financeJul 22, 2026· 4 min
How Staking Actually Works: Validators, Rewards, and Slashing
A plain-English look at what happens under the hood when you stake crypto: how validators secure a proof-of-stake network, where the yield comes from, and what slashing really risks.
read more →
Obsidian Web Clipper: Clip the Web Straight Into Your Vault thumbnail
obsidianJul 21, 2026· 4 min
Obsidian Web Clipper: Clip the Web Straight Into Your Vault
The official Obsidian Web Clipper turns any web page into a clean, templated vault note. Here's how its templates, variables, and filters actually work.
read more →
CSS :has() in Practice: The Parent Selector You Can Finally Ship thumbnail
developmentJul 20, 2026· 3 min
CSS :has() in Practice: The Parent Selector You Can Finally Ship
The :has() selector is Baseline and fast in 2026. Here's how to use it for parent styling, sibling reactions, and quantity queries without reaching for JavaScript.
read more →
CSS @function: Reusable Logic Comes Native to the Browser thumbnail
developmentJul 19, 2026· 4 min
CSS @function: Reusable Logic Comes Native to the Browser
CSS finally has real, reusable functions. The new @function at-rule lets you define typed helpers that run in the browser with live values — here is how it works and where it is supported today.
read more →
Open Banking: How Apps Actually Get Your Bank Data thumbnail
financeJul 18, 2026· 5 min
Open Banking: How Apps Actually Get Your Bank Data
The mechanics behind connecting a budgeting app to your bank account, why screen scraping is dying, and where the US open banking rules stand in 2026.
read more →
Obsidian on Mobile: Stop Fighting the Toolbar thumbnail
obsidianJul 17, 2026· 5 min
Obsidian on Mobile: Stop Fighting the Toolbar
Most people give up on Obsidian mobile because the defaults don't match how they actually capture notes. The fix isn't plugins — it's ten minutes in the Mobile settings.
read more →
The Soft Navigations API: Core Web Vitals Finally Work in SPAs thumbnail
developmentJul 16, 2026· 4 min
The Soft Navigations API: Core Web Vitals Finally Work in SPAs
Chrome ships the Soft Navigations API unflagged in 151, giving single-page apps a standardized way to measure LCP, INP, and CLS per route change instead of only on the first load.
read more →
// the newsletter
Don't miss the next one