Blog Posts

Thoughts and walk throughs on programming related topics

My Failed Attempt at a Side Project

I set out to build a side project; instead, I attempted to create a codebase for a startup. I learned a lot along the way, but I ultimately failed to launch anything.

2026-06-06
side-projectstartup

Clone 3rd party dependencies for AI Coding Agents

A quick tip on how AI coding agents excel when all dependencies are cloned locally. We'll examine a practical explanation of implementing a feature in the Ruby on Rails ClickHouse adapter gem.

2026-03-28
aiagentsclickhouseactive-record

Server Implementation Plan For Rocicorp's Zero - Custom Mutators

A language agnostic overview of what a server implementation looks like for Custom Mutators

2025-08-10
zerocustom-mutators

Controller Tests with RSpec and Rails 8 Authentication

How to authenticate a User in Controller tests when using RSpec and Rails 8 authentication.

2025-07-02
ruby-on-railsauthenticationrspectests

My Thoughts and Experiences with Vibe Coding (Mid 2025)

I've spent a bit of time doing some vibe coding and I wanted to share my thoughts about what went well and what didn't go well.

2025-05-22
aiprogrammingopinionthoughtsexperiences

GitHub CoPilot Instructions Can Catch Ruby On Rails N+1 Queries

A new feature for GitHub CoPilot, called Instructions, can be used to catch N+1 queries in Ruby on Rails applications. It can even leave comments on Pull Requests when it finds them!

2025-05-17
ruby-on-railsgithubcopilotactive-recordn+1

Preloading Nested Active Record Associations Syntax

Exploring a lesser known syntax for preloading nested Active Record associations.

2025-04-21
ruby-on-railspreloadingactive-record

Using PostgreSQL Functions with Rocicorp's Zero and Ruby on Rails

Zero updates our database directly from the UI and we can't rely on callbacks like 'before_save' when using it. Let's explore different ways to manage data requirements.

2025-02-07
ruby-on-railszeropostgresql functionsfx

Setting up Rocicorp's Zero with Ruby on Rails

Rocicorp's Zero is a sync engine to power extremely fast UI applications. I decided to pair it with Ruby on Rails and wanted to share how I got everything working.

2025-02-04
ruby-on-railszeropostgresqlauthenticationjwt

Adding Google OAuth in Rails 8

Rails 8 added an authentication generator, but what if we want to use Google OAuth? I decided to implement it using the oauth2 gem and share what I learned.

2024-12-02
ruby-on-railsauthenticationoauthgoogle

Adding Filenames To MDX Code Blocks with Next.js MDX Components

I've wanted to add filenames to my inline code blocks since I built this blog. I finally did it and got the styling just how I wanted!

2024-11-22
next.jsmdx

Adding Email Address Verification in Rails 8

Rails 8 added an authentication generator, but it stopped short of creating User records and verifying their email address. I decided to build it and share what I learned.

2024-11-21
ruby-on-railsauthenticationverification

Automating the Lifecycle of a Preview Environment

Preview Environments come and go, let's explore their lifecycle and some architectural decisions to think about when creating them.

2024-08-20
software-engineeringpreview-environment

Building Dynamic Breadcrumbs in Next.js App Router

Putting the pieces together to add breadcrumbs to a Next.js App Router project via Parallel Routes.

2024-04-29
next.jsapp-routerbreadcrumbs

What Are Preview Environments?

An introduction to what Preview Environments are and what they're good for.

2024-04-27
software-engineeringpreview-environment

Building a blog with App Router, React Server Components and Tailwind

Steps I took to build out a blog with Next.js App Router, React Server Components and Tailwind.

2024-03-28
next.jsapp-routerreact-server-componentstailwind

Building a new website with Next.js 14 and App Router

Detailing the process of rebuilding my website from Gatsby to Next.js.

2024-02-21
next.jsapp-router

Creating your first Application in Release with Docker Compose

A walk through of creating an Application in Release from a repository with a Docker compose file.

2023-06-28release.com
releasedockerdocker-compose

Cache Bundle Install with BuildKit

How to use Buildkit's mount cache to reduce bundle install times during Docker builds.

2023-05-03release.com
dockerbuildkitrailsruby

How Release Uses Action Cable and Redux Toolkit

A look at how we use Action Cable and Redux Toolkit to provide realtime UI updates.

2021-07-15release.com
reactreduxrailsactioncablerelease

Webhook Authentication Learnings for GitHub, GitLab, and Bitbucket

What I learned from implementing Gitlab support at Release and how I refactored our Rails code to support all three providers.

2021-06-21release.com
gitlabbitbucketgithubrailswebhooksrelease

First Year At An Early Stage Startup (Release)

The day to day of an early stage start up can take on many forms. I just finished up my first year and wanted to my share my experiences.

2021-04-29
startupproductmarketingsalesrelease

Cutting Build Time In Half with Docker’s Buildx Kubernetes Driver

Our migration from a home rolled Docker builder to using Docker's Buildkit and Buildx tools.

2021-02-17release.com
dockerbuildxkubernetesrelease

Secure Docker Authentication with Pass on Alpine Linux

If you've ever encountered the above message when logging into Docker and thought to yourself 'Well it’s unencrypted but it works... I'll deal with it another day' then we've got something in common.

2020-07-31
dockerauthenticationalpine-linuxpassdocker-credential-helpers

GitHub Action to upload SimpleCov Coverage Results

I've been playing around with Actions ever since and one of my new projects, a Ruby Gem, didn't have any form of CI as of this morning. I set out to create an Action that would run the tests for the gem and produce coverage results via SimpleCov.

2019-10-16
githubactionsrubygemrspecsimplecov