How I concluded that hiring developers based on ‘experience’ is just plain lazy, and my exploration of an alternative approach.

Here’s a situation I keep hitting: I write a job advert for a developer, and there’s a box for how many years of experience I require. Can I really specify the gap I’m filling with a number of years?

The answer, I have concluded, is no. This article is about why ‘experience’ is a shitty way to assess skills, and how being a CTO forced me to think about it differently, and come up with an alternative.

What we mean when we ‘hire for experience’

First, let’s be clear. No one is good at their job just because they’ve done it for a certain length of time. When…


A quick overview of a Python feature that can produce surprising bugs

Question: what is printed out by the code below?

Did you get 4, 5, and 6?

That makes sense — we’re applying an “add 1” function to 3 (which is 4), an “add 2” function to 3, (which is 5 )and an “add 3” function to 3 (6).

You certainly wouldn’t be alone in assuming this behaviour but, perhaps surprisingly, that isn’t what happens.

Try running this code in a Python interpreter, and it will print out 6, 6, and 6 .

WAT…?

Meme of Barack Obama looking perplexed
Meme of Barack Obama looking perplexed

Here’s why

Lambda functions are closures. That means, that they “remember” how to access variables from the scope where they were defined.

For example, in lambda number…


How to use React.js to improve the performance of your frontend code.

A meme of a cat with the tagline ‘engaging warp speed’
A meme of a cat with the tagline ‘engaging warp speed’

There are a number of subtle ways to wreck the performance of your frontend code. Some of them are true of all JavaScript code, and some are specific to individual libraries.

Some of these pitfalls will be found automatically for you by your library (“Warning: Each child in an array or iterator should have a unique ‘key’ prop.”), but others you’ll need to find and fix yourself.

React is a high-performance library. It’s great. But that doesn’t stop you using it to write code that moves about as fast as a tired cow.

Chain React-ions

Getting bad performance from React typically means…


Why traditional ‘fast tracks’ to tech team learning don’t work, and what does. Also, Matrix references.

When I hired my first dev team, I ran into the same problem that every other startup CTO faces. Attracting great people without great budgets is tricky for a startup, in part thanks to competition from tech giants (👀 looking at you AppAmaGooFaceSoft). But growing — and retaining — your own tech folks requires a serious time investment — something I didn’t have. As a busy technical founder, all of that felt like a luxury to come back to later. I was wrong.

The 2018 HackerRank skills report asked ~39,000 developers what they want most in a job. The top…


Why traditional training doesn’t work for developers, and how I discovered a new model of learning. Also, biscuits.

In my previous essay, I wrote about how tech teams don’t learn. I don’t think it’s a secret that many training resources don’t work. So why do tech leaders put up with it, and pay for resources that they don’t value?

The answer started to become clear when I listened to how some CTOs, VPs of Engineering and other tech leaders talk about learning. Here are some quotes:

“Training isn’t a priority”

“My team doesn’t have time for training”

“Our team just need to read the documentation”

“It’s better to just learn things as you go”

“I don’t have time…

Hywel Carver

Co-Founder & CEO of Skiller Whale; published curriculum author and keen funk saxophonist.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store