Writings

What Is Technical Debt? A Pragmatic Guide for Startup Teams

Learn when tech debt is smart, when it’s dangerous, and how to manage it. A clear, startup-tested guide to technical debt from a seasoned engineering leader.

The AI Prompt I Wish I Had While Documenting SaMD Systems in Rails

How AI could have helped me generate FDA audit-ready SDS documentation faster while building regulated software.

My Journey into 3D Printing with the Bambu Labs P1S

Discover my journey from 3D printing novice to creator with the Bambu Labs P1S. Learn about open-source designs, home organization projects, and designing your first custom print.

How Buoy Software is Redefining Rails Development with ViewComponents

Discover how Buoy Software improved their Rails app by transitioning from React and GraphQL to ViewComponents. Learn about performance gains and simplified development.

Acceptance Tests with Subdomains

How to use subdomains in your feature specs.

Getting Started with iOS Development

Complete beginner's guide to iOS development with Swift. Learn Xcode setup, iOS development fundamentals, and start building iPhone apps with practical examples.

Take Control of Your HTTP Caching in Rails

Get more control over HTTP caching in Rails.

Introduction to Conditional HTTP Caching with Rails

Learn how to implement HTTP conditional caching in Rails using fresh_when.

Scaling JSON APIs in Rails using ActiveModel::Serializers, Key-Based Caching, and Rack::Cache

Learn proven strategies for scaling JSON APIs in Rails applications. Performance optimization techniques using ActiveModel::Serializers, key-based caching, and Rack::Cache with real-world examples.

Changing Git Remotes and Capistrano

A quick look at some recent issues I had when trying to move git remotes and then deploying with Capistrano and how I resolved the issue.

Get new posts by email

Insights on engineering leadership, AI in production, and technical decision-making.

Occasional emails, no fluff.

Powered by Buttondown