#software development
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.
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.
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.
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.
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.