Visitor Pattern in Ruby: Examples from Rubocop

August 09, 2022

The visitor design pattern separates the operation to be performed from the object structure. We look at a concrete implementation in Rubocop, a Ruby linting and formatting library.

Coupling is a Tradeoff

June 08, 2022

Coupling is usually described as something intrinsic: code is either coupled or not. But Kent Beck argues that it is always with respect to a particular change. What does that mean for us?

Zettelkasten from "How to take Smart Notes"

April 16, 2022

A review and summary of 'How to take Smart Notes' and the Zettelkasten process described within. I think of it as purposeful note-taking, used to generate ideas for writing or content creation.

Why use Polymorphism in OOP?

March 20, 2022

Polymorphism in Object-Oriented Programming, while abstract, is still somewhat easy to understand. Why we should use it, though, is less obvious. Let's investigate polymorphism's benefits!

A 1972 paper and the Single Responsibility Principle

February 28, 2022

While trying to explain the Single Responsibility Principle, it's originator calls attention to the paper 'On the Criteria To Be Used in Decomposing Systems into Modules'. Why was this paper so significant? Let's find out!

Reading a Ruby gem with VSCode

February 15, 2022

Steps to try when investigating a gem's implementation in VSCode, using mocha's any_instance as an example.

My Learning Workflow for 2022

December 31, 2021

A walk through my current learning workflow before diving into the thinking and frameworks behind it.

First Steps into Open Source

May 06, 2020

Charting my first few open source contributions. If you're looking to contribute, I hope this helps!


By Nick, a Business grad turned Software Engineer, living in sunny 🇸🇬. I write mostly about Ruby and Rails, not wasabi (sorry!).