Chance favours the prepared mind ๐Ÿ€

Luck has changed my life more than once. Every time, it showed up because I had already built something, starting with a Last.fm widget nobody asked for.

In 1854, Louis Pasteur opened the new science faculty in Lille with a sentence: “In the fields of observation, chance favours only the prepared mind.”

People sometimes tell me I was lucky. They are right. I have been lucky many times, and I won’t pretend otherwise.

But when I look back at the moments that changed my life, I notice the same thing every time. Luck never showed up while I was doing nothing. It showed up because I had already made something, for no reason other than wanting to.

Building things doesn’t guarantee anything. But it creates opportunities that wouldn’t otherwise exist. This is the story of one of them.

A widget nobody asked for

In the mid-2000s I was a student, and I was obsessed with Last.fm. If you never used it: it is a website that tracks every song you play and builds a profile of your musical taste. Every user has a page, and every page has a shoutbox where friends leave messages. Mind you, this was before Facebook was even a thing. It was pretty novel.

Apple had recently launched Dashboard, a layer of little widgets on the Mac desktop. So I built one that showed your Last.fm shouts. Nobody asked me to. Nobody paid me. I did it because I loved the site and wanted to see if I could.

I’m not gonna lie, it took me a couple of days. I had to ask for a username, load their user page, parse the HTML and find the shoutbox, and list the last few shouts. It was slow, but it worked.

Apple listed it on its widget page, and a few hundred people downloaded it.

I recently found the widget’s old page again. It’s a strange feeling, looking at the first ticket you ever bought without knowing it.

The door opens

The widget got the Last.fm team’s attention. Through the site I also got to know a few people in London, and on one visit I ended up meeting the team in person, at the pub.

I didn’t apply for anything. But two people on the team liked what I’d built, and they pushed their boss to hire me. One of them emailed me to describe a job that didn’t exist yet: “international site engineer”. Someone whose native language was one of the site’s languages, who would fix bugs on the international sites and build little tools for the translators. Part-time to start, mostly remote, after a week or two of intensive training in London.

They had never hired a part-time, remote developer before, and all the international site stuff was brand new.

In February 2007, I took a week off university and jumped on the Eurostar. That week was intense. The contrast was stark. I went from studying and hacking my little widget to joining and deploying code on a website with 15 million active users. The in-house translation tool was slow and confusing, I had to learn how to use a Version Control System (SVN) and I spent my first day fighting it.

It took me a while, but I got the hang of it. I ended up staying about two years. I rebuilt that translation system, fixed internationalisation bugs all over the site, and slowly moved into backend work.

A few months in, the widget came back to me. On 30 May 2007, a colleague wrote a post on the Last.fm blog about it. Their “French frontman” had built a widget that had to dig the shouts out of “a giant mess of markup”. So they added microformats to every shoutbox, which made the data easy to read, and gave every user an RSS feed. My side project had changed the website I now worked on.

I built the widget. I didn’t choose who noticed it, or that someone would stick their neck out for a student they barely knew. I couldn’t make them notice me. I could only give them something worth noticing.

The Last.fm school

Last.fm was the best school I ever went to, and I didn’t pay a cent for it. Looking back at it, this has been the cornerstone of my career: everything else I’ve done has been built out of what I learnt from it.

The site ran on about a hundred diskless servers that loaded everything into RAM. Pages could still take seconds to load. When the database was saturated, users got the “tea page”, a polite way of saying “go make yourself a cup of tea, we’re on it”.

Every deploy went out to 100 to 120 servers at once. That is how you learn what production really means.

The office had a sense of humour too. Pranks were part of the culture. One of my favourites: I built a fake artist page for a colleague, with fake records, fake photos and absurd album titles. Only labels were supposed to upload albums, so a colleague had to hack them straight into the database, fake covers included. The page is still online.

But the real lesson was the people. I worked next to engineers and designers of a level I had never seen. Many of them went on to do remarkable things. One brought Hadoop into Last.fm before most companies had heard of it and coined the term “NoSQL”. Others went on to found companies and lead product and design teams. Being around them reset my idea of what “good” looks like. That alone was worth more than the salary.

The bad ticket

In 2007, CBS bought Last.fm. Then the 2008 financial crisis hit. Last.fm was losing a lot of money, and CBS started cutting costs. In 2009, I was one of the people let go.

I won’t dress this up. It was not a lucky break. It was hard, and it hurt, and it was scary. Lottery tickets can lose too.

But something else was already there. On 4 October 2008, while I was still working remotely for Last.fm from Sardinia, I had made the first commit of a side project: a tool to make translating software less painful. Everything I had learned fighting Last.fm’s translation interface went into it. I called it WebTranslateIt.

The layoff didn’t create WebTranslateIt. It was already there, waiting. Losing my job forced me to take the project seriously. I went all in.

WebTranslateIt is now 18 years old. I have run it ever since.

The same ticket, 19 years later

In 2015, my family moved to Málaga. Years later, at my kids’ school, I got talking to another dad. Our children were friends. We went to the same gym. When he first arrived in Málaga, he had even lived in the house we had rented when we arrived, ten years earlier.

He had spent about 20 years working in fresh produce. I had spent nearly 20 years building software. On outings with the kids, he kept describing the same problem: containers, ETAs and piles of documents, all tracked by hand. I kept thinking: I could build that. This became Trackberry.

It’s the same story as Last.fm. I didn’t choose to meet him at the school gate. But if I hadn’t spent all those years building things, that conversation would have stayed a conversation.

Buy more tickets

Look at the whole story and you can count the tickets. A widget I built for fun. A visit to London. A side project started in Sardinia. A conversation at the school gate. None of them came with a promise.

You don’t control who notices your work, when the market crashes, or who buys the company you work for. Pasteur was right: what you control is whether you are ready when it happens.

The widget opened the door. But WebTranslateIt didn’t last 18 years on luck. It lasted because I kept building it and maintaining it, year after year, long after the luck was spent. How that works is the next post.

Until then: make things. Small things, things nobody asked for, things that might never go anywhere. You don’t know which one will matter. Neither did I.

Málaga, Friday 13 November 2026. ๐Ÿ€