Seeking Opportunities
Contact Me

Articles

System design is inherently about boundaries (what's in, what's out, what spans, what moves between), and about tradeoffs. It reshapes what's outside, just as it shapes what's inside.

Good Boundaries Make Good Systems

In this article we will focus on the implications of taking autonomy as our North Star in module design. What are the practical implications? As always, what goes in and what goes out?

Read More

Parnas was right, and I was wrong. I am now convinced that information hiding, today often embodied in object-oriented programming, is the only way of raising the level of software design.

What We Talk About When We Talk About Modularity

This is the second of three articles discussing modularity patterns in Ruby. In this article we will look at how modularity helps us manage complexity.

Read More

when every node in your system can talk to any other Metcalfe's Law becomes Metcalfe's Curse regardless of code quality

Complexity is the Thing

This is the first of three articles discussing modularity patterns in Ruby. In this article we will start by defining the problem modularity is trying to solve.

Read More

A ruby method for solving the sweet cookie coding challange using a CookieQueue object.

Cookie Queue

Implementing an abstract datatype for managing cookie jars. :) Or, three solutions to a playful problem.

Read More

diagram of hanami routing object for seven restful routes

Adventures in Hanami - Router Rumpus

How finding a bug in the Hanami router led to a adventure in learning.

Read More

it's not crappy code, it's tech debt

Technical Debt, A Metaphor Run Amok

Technical debt is, of course, a metaphor. Like a picture, a good metaphor is worth a thousand words.

Read More

ruby code using ROM to upsert player list into the players table

UPSERTing with ROM and Sequel

Imagine that you have a parent entity, say a baseball Team, that has-many Players. I want to have an edit page for the Team that includes the Players on the Team.

Read More

rom migration code to add a trigram index to a column in a table

Implementing Postgres Trigram Indexes in ROM

Trigram indexes are a cool feature of Postgres that make full text searches easier and faster.

Read More

an interactor class built with ProtoInteractor

ProtoInteractor: A Simple Business Object for Hanami

This isn't an article about fantastic feats of programming prowess, but more of a cobbler's tale . . .

Read More

Hanami logo with ROM-rb logo in center

Full Stack Hanami, Part 1

If you're anything like me, then I know you're chomping at the bit to use Hanami 2 once it is fully released.

Read More