Smoothing the Path with AI
2 min readMy favorite use of AI - not vibe-coding toy apps, but smoothing over the path - like driving a car down the highway instead of going on a cross-country hike.
The Economics of Self-Hosting AI
4 min readEnthusiasts want to self-host models but can't justify the hardware. Marketplaces for spare compute could enable the economics for individuals, while privacy already makes it a no-brainer for companies.
cmless: Seamless Blogging with GitHub Issues
5 min readI've tried to maintain a blog for years, but every tool had too much friction. So I made cmless: turn a GitHub repo into a blog with Issues as the CMS and GitHub Pages for hosting.
The AI Casino
4 min readHow variable rewards and prompt routing could be turning LLMs into digital slot machines
The Spiritual Cost of the Nanny State
5 min readThe shift from personal responsibility toward government paternalism and human self-domestication.
Overtherapizing Men's Mental Health
3 min readTalking about emotions isn't enough for men's mental health - finding meaning through Function, Family, and Faith offers a better path.
Rich Storytelling with AI World Models
5 min readHow AI world models like Genie 3 could revolutionize storytelling, democratize game development, and let creators build immersive worlds from imagination.
Effective Code Reviews
8 min readHow to foster a culture of learning through code review.
On Alphabetically Ordering CSS Properties
2 min readAnd other properties, really
Writing Reliable Unit Tests for Our Components
9 min readThree common pitfalls when writing component unit tests and how to write more reliable tests that focus on the component's public interface.
Simple Naming Tips for Event Handlers
4 min readHelping our team (and ourselves) write more meaningful and robust code.
Learning Form Management in React
6 min readBy building our own reusable component from first principles.
Using Angular's Dependency Injection Sparingly
5 min readHow excessive abstraction slowed down our unit tests to a crawl.
Giving Credit and Taking Responsibility in a Team
3 min readWhether we succeed or fail, it helps to know how to best represent our team in front of upper management or clients.
React: Injecting Component Props with ES7 Decorators
5 min readExperimenting with decorators to make writing and maintaining React components more ergonomic (subjectively).
Dribbble Designs in Code (part 2 — Editorial Exploration)
14 min readThis is the second in a series of posts on coding designs from Dribbble.
Dribbble Designs in Code (part 1 — Venue Landing Page)
10 min readThis is the first in a series of posts on coding designs from Dribbble.
How I (Foolishly) Gave Up My Google Account Password
8 min readI received a convincing phishing attack on my personal email and gave up my Google password. Here's how it happened, and how to be more careful about it.
The Simple Difference Between RxJS switchMap and mergeMap
2 min readTrying to figure out whether to use switchMap or mergeMap for a simple HTTP request? I only understood the difference once I tried it out for myself.
Preparing a Freelance Offer: From 0 to 100%
18 min readA step-by-step guide to preparing a professional freelance offer - from initial client conversations and market research through feature estimation, pricing packages, and presenting the final document.
Exploring Unidirectional Components in Mithril (part 2 — Redux)
5 min readContinuing the experiment from part 1, this time using Redux and the reducer pattern for unidirectional data flow in Mithril, and comparing it to Hyperapp.
Simplify Your Layout (And Your Life) With CSS Grid
7 min readDoing layout in CSS is really hard. After years of fighting it, here's how CSS Grid changed the way I approach design and made layouts far simpler.
Exploring Unidirectional Components in Mithril (part 1 — Hyperapp)
10 min readAn experiment in writing Mithril components with a unidirectional data flow, borrowing ideas from Hyperapp instead of the usual component classes.
How to Price Your Time and Work as a Freelancer
24 min readA practical guide to pricing freelance services — moving beyond hourly billing toward value-based pricing.