Writing on web development, API integrations, and the payments industry.

Long-form thoughts on programming, learning, productivity, and more, collected in chronological order. Mostly notes to myself about how I solved something so I can remember later.

What era are your docs in?

My kids have been teaching me about aura farming, and it’s got me thinking. Most API docs are stuck in the basic tractor era. Here’s what I mean: ### Shovel Era No docs. Developers have ...

Learning in the Age of AI

If AI can already do something—or will be able to soon—is it still worth learning how to do it ourselves? Take grammar or spelling, for example. Tools like GPT-5 are better at writing than I...

Shifting Gears

Brief update about some shifts in how I'm thinking about my career.

Books

Books I'm into right now.

A Flexible AI Integration Pattern for Ruby on Rails

In this article, you will learn how to integrate AI into your Ruby on Rails applications using a flexible pattern that allows easy swapping of AI providers like OpenAI and Claude. 🤖✨

Caching ViewComponents

In this article, you will learn how to implement caching for ViewComponents in Rails to improve performance and reduce sluggishness in your app. 🚀📚

Rails Performance Playbook

In this Article, you will learn how to optimize Ruby on Rails performance through backend and frontend techniques, including N+1 query fixes, caching, database indexing, and more. 🚀

How to setup react-rails with esbuild

In this article, you will learn how to set up `react-rails` with `esbuild` for a seamless integration of React components into a Rails application. 🚀👨‍💻

Stripe Connect onboarding with Ruby on Rails

In this article, you will learn how to integrate Stripe Connect Onboarding with Ruby on Rails for an email newsletter platform. 📧💻 Discover how to create Stripe Accounts, collect business details, and set up your Rails environment for smooth integration.