Jamie's Blog

Ruby developer. CTO. Swimmer. Always trying to write more

The Manager's Stack

Holly stratton acn1y0sb4qu unsplash

As my job has changed from developer to manager, so Sublime Text and iTerm have become less important to me. I’ve substituted my old toolset for a new bunch of tools that help me to manage the dev team at Podia.

Podia is a fully-remote company so...

Hard problems are valuable problems

Img 3788 2

I’m sitting in the faraday cage of the climbing centre, with no Internet access to distract me, so I’m watching the kids attempt the different walls. Some are starting on a slightly angled wall, then progressing to a vertical wall with lots of hand...

Communication > Coding

Communication coding

Communication is more important than coding.

ok, ok, I’m being provocative. We’re not all talk and no action…but good communication is a core principle of the team and is critical to the health of your project and the overall team.

What do I mean...

Managing windows on macOS with Amethyst

James lee vpbpwauyeos unsplash

This is how I use the Amethyst window manager on macOS. 

I like to fill a screen with windows. If you’re happy with a desktop that looks like this, then you probably won’t enjoy any of these suggestions

Lots of windows everywhere!

Last year I bought myself a 32" monitor to...

Tools of Podia (2020 edition)

Barn images t5yuohw6zro unsplash

Here’s a quick list of the main tools and technologies we use at Podia. It’s especially skewed towards tools in use by the dev team, since that’s what I’m most qualified to talk about. We use other tools in support, marketing, and accounting but I...

How I read books in 2020

Kindle reading

This year I started reading books a little differently.

Firstly, let’s talk about fiction. It puts me to sleep, literally. Total snooze-fest, in the best possible way. I read a fiction book, usually sci-fi, every night on my Kindle and I manage 10...

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


Page 1 of 47