Jamie

🏴󠁧󠁢󠁥󠁮󠁧󠁿/🇲🇹 Software guy (mostly Ruby). 🇳🇱 Immigrant. 🐕 he/him. Software, existence, music. Writing at schembri.me Moaning at moanings.schembri.me ??? at haiku.schembri.me

739 followers280 following20 stories

Longform Stories

Popping the Filter Bubble

Let's delve outside of our comfortable groups of like-minded engineers to explore the unknown once in a while. It's healthy!

Sep 19·6 min read·1097 words

SOLID: Dependency Inversion Principle (DIP)

The dependency inversion principle is about inverting dependencies. Right? Actually, maybe not.

May 23·9 min read·1645 words

SOLID: Interface Segregation Principle (ISP)

The Interface Segregation Principle is about designing thin, cruft-free interfaces which results in reduced coupling.

May 17·5 min read·859 words

SOLID: Liskov Substitution Principle (LSP)

The Liskov Substitution Principle applies to any OOP language. On the surface it is a structural principle, but its true lesson is concerned with behaviour.

May 10·7 min read·1254 words

SOLID: The Open–Closed Principle (OCP)

We visit the second SOLID principle: the open–closed principle (OCP). Does it still hold up, or is it bad advice in today's agile world?

May 1·9 min read·1769 words

SOLID: The Single-Responsibility Principle (SRP)

The Single Responsibility Principle is harder to grasp than its name implies, with a history of misleading definitions. We're going to be pedantic about the definition right out of the gate, to ensure…

Apr 19·6 min read·1147 words

SOLID for Ruby Engineers

The SOLID principles are required learning for software engineers dealing with object-oriented code. Think you know them? Let's take each one apart together.

Apr 19·6 min read·1127 words

Your Dependencies Are Not Free

Dependencies are free chunks of functionality, except when they're not. They come with hidden costs which need careful consideration.

Apr 6·6 min read·1142 words

Start a Blog With Ghost & PikaPods

Start writing now with a Ghost blog on PikaPods! This guide takes you through all the steps for a production-ready Ghost install, complete with newsletter support.

Apr 4·17 min read·3213 words

Complexity

One person's complex is another person's simple. Budget complexity intentionally and embrace simplicity of the whole.

Dec 21·10 min read·1841 words

Remove the 'Choose Your Search Engine' Dialog in Capybara

An annoyance I came across when running tests in my app, leading to poor visibility.

Aug 12·1 min read·149 words

A Better Gitconfig

We use git all the time, so configuring it to work better with us is a worthwhile investment. Here are some changes I like to make.

Jul 24·3 min read·513 words

Eleventy Tricks

Some useful snippets for a better time with the Eleventy framework.

Jun 12·4 min read·672 words

My App is Slow. Who Cares?

We know that premature optimization is the root of all evil, but we can't know if it's premature without a wider context outside of the codebase.

Jul 13·3 min read·581 words

Debugging Software and Coffee

Solving problems in both software and the real world takes similar approaches. Improve at one to improve at the other.

Aug 14·4 min read·758 words

RubyMine with Docker

A comprehensive guide to working with Docker in Rubymine, with troubleshooting for common problems.

Mar 12·5 min read·884 words

Faster Excel Parsing in Ruby

Parsing lots of Excel sheets and worried about memory usage or CPU time? These benchmarks may offer a better way.

Feb 26·3 min read·600 words

Powering a Windows PC via HomeAssistant

Turning on, off, and sleeping a Windows PC from HomeAssistant. It's easy until we bring hibernation into the equation.

Oct 18·5 min read·896 words

Sidekiq and Logrotate: Why Is My Disk Usage Increasing?

Logrotate should cap off disk usage from logs, unless something strange is afoot.

May 6·2 min read·212 words

Testing APIs in Ruby with RSpec

Different approaches to testing APIs in Ruby with RSpec. Code and opinions on which works best.

Aug 25·5 min read·967 words