Jamie's Blog

Lessons from a life of startups, coding, countryside, and kids

Technical debt smells like money

Micheile henderson zvprbbmt8qa unsplash

Ah, I just love the smell of technical debt! Do you know what it smells like? No, no, not old socks and the festering corpses of bad decisions.

Technical debt smells like money.

What?! Yes, money. At least, it smells like money if you’re doing it...

Podia's engineering culture

Podia way

Back in March I asked the Podia dev team these questions:

  1. If someone asked you to describe the Podia dev team, how would you describe us?
  2. What do we do that other teams don’t (or what don’t we do!)?
  3. What principles do we hold but rarely discuss?

Use these “unfair advantages” when applying for a job

C18ac7e0 6b44 4d64 8d14 f9d24aa9eec1

Sometimes you might be lucky enough to be in such high demand that you don’t need any unfair advantages when applying for a job—but even if you’re well qualified, it’s worth making sure you do all you can to get the job you want.

This is especially...



Here’s a list of all the things we “should” do at Podia

  • We should be more mobile-focused
  • We should make our web app accessible
  • We should make our course editor work on iPads
  • We should add more validations around forms
  • We should make sure all validations...

Boredom Envelopes

Boredom envelopes

— projects for kids when you’re working at home

Although I’ve been working at home for the last few years, 2019 was the first year both myself and Hilary were working full-time jobs at home while the kids were on summer holidays.

How did we cope...

Implementing Impersonation

Podia impersonation

The ability to log in as one of your users is one of the highest value features you can develop to support your customers.

The ability to log in as one of your users is one of the most dangerous features you can develop to support your customers.

Restoring my Humanscale Liberty

Humanscale liberty hedgehog armrest

Sidenote: I ❤️ my Liberty chair

I love my Humanscale Liberty chair for it’s comfort and unrivalled simplicity. I’ve used ridiculously complex chairs like the Herman Miller Aeron but the Liberty has by far the best sit-and-play experience. No faffing...

Add Deprecation Warnings to your Rails App

Deprecations header

You’ve probably seen deprecation warnings in Rails, especially if you made the jump to 5.2 recently, but did you know you can use them in your own app?

I suspected so but hadn’t done it before. Here’s a Rails model with a url attribute.

# == Schema...

Security Threats Introduced By GDPR

GDPR is supposed to protect the privacy of individuals but it also opens up new security threats which can threaten a company.

I’m not a lawyer, or any sort of GDPR expert, but like lots of people I’m becoming very interested in the GDPR rules as...

Rails Testing with Headless Chrome on Heroku CI

Heroku ci

I recently started setting up a Rails app on Heroku CI . It was mostly pretty painless but there were a few tricks to getting our Capybara specs running.

Heroku don’t fully support running browser tests yet; I mean, it works but it took a little finagling...

The one thing


I reached the end of the pool, finishing another 200m interval, and was taking a quick breather and a drink, before setting off again.

“Hi”, said the girl in the other lane. “Do you mind if I ask you a question?”


“What’s the one thing someone...

Does your backpack come with an instructional video?


Well, does it?

I mean, that would be pretty ridiculous, right? Who needs a video to learn how to use a backpack? How bad would a backpack need to be that it needs you to sit through a 30min —thirty minute— video to figure out how to use it.


Querying CSV files in SQL

I had a need to query a CSV file this morning. It was an export of users in Intercom and I wanted to find all the users with duplicate email addresses.


You can kinda do this in Numbers by creating a new column with the formula


Moving from Wordpress to Middleman

I’ve been unhappy running Wordpress for a few years, particularly the effort required to keep the server, the Wordpress instances, plugins, and themes updated. Of course, you don’t have to do this, and most of the internet doesn’t, which is why we...

I saved a man from drowning


But that’s not really the point I want to make. The important point is that I very nearly didn’t save him.

I swim a few times a week at a local hotel pool doing about 100 lengths. I recognise a lot of the other swimmers, mostly retirees getting some...

Appy New Year

I looked back over the past year to find the new apps that changed the way I work, those that lived up to their promise, and those which have earned their place on my laptop (or iPhone, or web browser).

ZoomIt (mac)

A great little app for inspecting...

Microconf Europe 2015


Microconf Europe 2015

It’s been 3 weeks since Microconf Europe and I’m finally getting time to reflect on the experience. I felt like a seasoned veteran now that it was my second Microconf; last year’s conference in Prague was hand-down the best conference...

Why Rollbar is the exceptional Exception Tracker

2015 07 02 at 23.00

I’ve used a few exception trackers over the years: first Airbrake (I won a lifetime account way back when); BugSnag for about a year; and Rollbar for the past few years.1

What does an Exception Tracker do?

We all make mistakes. Sometimes we forget...

It's all about the (creative) process

Its all about the creative process

How do you get from a design to actual code?

That was my big question last week and, if you’re primarily a developer, you might be wondering the same thing.

I hear a lot of web designers talking about working in Sketch or Photoshop, but I just couldn...

Implementing HexGrids in Ruby

Img 3398 e1432934593958

One of my favourite board games is Tantrix. I can be played as a puzzle like Solitaire or as a competitive game. We picked it up in New Zealand over 10 years ago (it was invented there) and we played it in the evenings as we travelled around. The rules...

Page 1 of 46