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

financeSep 30, 2026· 5 min
Buy Now, Pay Later: Who Actually Pays for Interest-Free
Pay-in-four loans cost the shopper nothing when things go right, so someone else is paying. Here's how the BNPL money flows, why merchants eat the cost, and what changes as these loans start hitting credit reports.
read more →

obsidianSep 29, 2026· 5 min
Obsidian File Recovery: The Undo Button You Forgot You Had
Obsidian quietly snapshots your notes every few minutes. Here's how File recovery works, how to restore a lost paragraph, and why it still isn't a backup.
read more →

developmentSep 28, 2026· 3 min
Node.js Type Stripping: Run TypeScript Without a Build Step
Node.js now runs .ts files out of the box by erasing types, not compiling them. Here's what that buys you, what it refuses to do, and the tsconfig that keeps you honest.
read more →

developmentSep 27, 2026· 4 min
Compression Dictionaries: Ship Only the Diff When Your Bundle Changes
Compression Dictionary Transport (RFC 9842) lets the browser tell your server which cached file it already has, so a redeployed bundle can arrive as a few-kilobyte delta instead of a full download.
read more →

financeSep 26, 2026· 4 min
Ethereum Staking Explained: What Validators Actually Earn and Risk
Staking gets pitched as a savings account for crypto. Here's how Ethereum validators really earn rewards, why the yield keeps shrinking, and what slashing, queues, and liquid staking tokens add to the risk.
read more →

obsidianSep 25, 2026· 4 min
The Obsidian CLI: Script Your Vault From the Terminal
Obsidian 1.12 ships an official command line interface. Here's how to use it to capture notes, query tasks and Bases, and run vault health checks from shell scripts.
read more →

developmentSep 24, 2026· 3 min
Uint8Array toBase64 and toHex: Stop Round-Tripping Bytes Through btoa
JavaScript can finally turn bytes into base64 and hex (and back) without the String.fromCharCode and btoa dance. Here's how Uint8Array's new encoding methods work and where they replace the helpers you've been copy-pasting.
read more →

financeSep 23, 2026· 5 min
Technical vs. Fundamental Analysis: Two Questions, Not Two Teams
Fundamental analysis asks what a business is worth. Technical analysis asks what the price is doing. Here's how each one works, what the research says, and why the rivalry is mostly a category error.
read more →

obsidianSep 22, 2026· 4 min
Obsidian Bookmarks: The Core Plugin That Replaces Your Dashboard Note
Bookmarks is a core plugin most people use to pin three notes and forget about. It can pin saved searches, headings, blocks, and whole tab groups, which makes the hand-maintained dashboard note redundant.
read more →

developmentSep 21, 2026· 3 min
import defer: Lazy Modules Without Going Async
ES2026's import defer evaluates a module the first time you touch its namespace, not at startup, so you can move heavy work off the cold path without turning half your call stack async.
read more →
// the newsletter