A moment of joy with CSS grid Reflecting on how CSS grid made implementing a specific design so much easier than without. WordPress, the Great Divide, and a build-less experience How a small WordPress project got me thinking about the Great Divide and feeling the joys of a build-less development experience. Migrating Rails from Postgres to SQLite My experience migrating a Rails project from Postgres/Redis to SQLite and vastly simplifying production infrastructure. Replacing ChromeOS with Linux on the 2017 Pixelbook (Eve) A step-by-step guide for installing Linux on the Pixelbook and replacing ChromeOS. How to: Selenium with Chrome extensions This is an overview of how to use Selenium to automate Chrome extensions with JavaScript. Our little universes Some fleeting thoughts while I rest in a creaky, small-town Japanese hotel. Rubber bands Back in middle school, my friend and I entered a science fair competition. We ended up winning this competition. The Web pendulum There's a renaissance happening on the Web right now as some are saying, and I'm loving it. Open source chats with Kasper Timm Hansen Some nuggets of wisdom that Kasper Timm Hansen touched on while we chatted on a Hollywood rooftop. Thoughts on data This is, in no particular order, a collection of my thoughts around data and how we might better approach it when writing software. +918 -24,519 I migrated my site back to Jekyll which resulted in 918 lines of code added and 24,519 removed. Accessing a previous session in NextAuth.js callbacks A how-to on accessing previous session tokens to enable account merging or something similar using NextAuth.js. Replace a relational database with DynamoDB in Rails Steps I took to completely remove Active Record and replace it with DynamoDB. Adding a Cypress test suite to your full stack Next.js app A guide to add Cypress and CI to a Next.js app configured with a database. Giving Ruby objects access to Rails view methods A look at `view_context` and how to use them in POROs. 2020 year in review It goes without saying that this year was absolutely insane, but existential threats aside, this year did give me a decent number of things to be thankful about. Fixing overflow padding in Firefox A look at a long-standing CSS bug in Firefox and some approaches to remedy it in your projects. Write code for people, not machines If I could go back in time and talk to my past self, I'd encourage this particular mindset earlier. HTML isn't an assembly language Thoughts on how HTML isn't the means to an end, but an end product. The software spectrum Thoughts around how roles and responsibilities are getting blurrier and blurrier in the Web industry. Delayed::Job for outbound emails in Rails A situational but noteworthy use case of Delayed::Job for outbound emails in Ruby on Rails. Concepts I needed to learn to setup a home server (As a networking newbie.) Test-driven reviews My thoughts around using tests as the guideline for code reviews. Chusaku, a controller annotation gem A write-up of a Rails controller annotation gem. Testing is for all of us My thoughts on why I think automated testing is a crucial part of any software team. Reflections on a custom "Component" My thoughts on defining a JavaScript pattern that I called "component" from pre-React days. Getting into open source My thoughts and experiences around getting involved in open source software through a project called if me. ES6 in Gulp projects How to setup a Gulp project to use ES6 and still use libraries such as jQuery. Vim, one year in Reflecting on my decision to exclusively use Vim one year ago. Tidying my digital life Tidying up and Marie Kondo-fying my digital life. Managing WordPress with Composer How to use Composer to offload WordPress core and plugin management to reduce your project's repo size. Reviving the blog Motivations and thoughts around reviving my personal blog. Switching from a Mac to a Chromebook (as a web developer) This is my experience switching from a 2014 Retina Macbook Pro to a Google Pixelbook. Routing JavaScript in Rails My take on extending Paul Irish's DOM-ready JS execution technique. Comment, because people Good code needs comments. Good code needs comments because people.