From first principles
Notes on software, learning, and building from the ground up
-
Why I'm Building SaaS in 2026
In-house AI agents are seductive but fragile. Here's the case for using agents to explore and concrete workflows to ship.
-
The Un-Abstracted Frontend
Building a modern React app from scratch - no Vite, no Next.js - to demystify the magic of `create-react-app` and its friends.
-
My bookmarks over the years (part 5)
A dump of articles and links I've collected in my browser, with brief notes - part 5 of 5.
-
My bookmarks over the years (part 4)
A dump of articles and links I've collected in my browser, with brief notes - part 4 of 5.
-
My bookmarks over the years (part 3)
A dump of articles and links I've collected in my browser, with brief notes - part 3 of 5.
-
My bookmarks over the years (part 2)
A dump of articles and links I've collected in my browser, with brief notes - part 2 of 5.
-
My bookmarks over the years (part 1)
A dump of articles and links I've collected in my browser, with brief notes - part 1 of 5.
-
CommonJS vs ES Modules in JavaScript
Why JavaScript has two module systems, how they differ in practice, and when each one shows up in your code.
-
Developer Rhapsody
A parody of Bohemian Rhapsody, rewritten for the everyday struggles of shipping software.
-
How to convert a Jekyll gem-based theme to a regular theme
Notes-to-future-self on flattening a gem-based Jekyll theme into your repo so you can edit it directly.
-
How to start a personal blog with Jekyll and Github Pages
A no-frills walkthrough for spinning up your own static blog with Jekyll and hosting it free on GitHub Pages.
-
Dynamic dispatch pattern in Scheme/Racket
Implementing dynamic method dispatch - the polymorphism trick that powers JavaScript's toString - in plain Scheme.
-
Hello World!!
A short hello and what to expect from this blog.