From first principles

Notes on software, learning, and building from the ground up

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  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.

  6. 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.

  7. 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.

  8. 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.

  9. Developer Rhapsody

    A parody of Bohemian Rhapsody, rewritten for the everyday struggles of shipping software.

  10. 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.

  11. 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.

  12. Dynamic dispatch pattern in Scheme/Racket

    Implementing dynamic method dispatch - the polymorphism trick that powers JavaScript's toString - in plain Scheme.

  13. Hello World!!

    A short hello and what to expect from this blog.