On a rainy January morning nine years ago I sat in my Year 10 form room. We’d just come back from the Christmas holidays and smartphones were slowly becoming commonplace. Before then most teenagers I knew had some combination of an iPod, a Blackberry, or a “camera phone”. With smartphones came apps.
One of my friends had an iPhone. This was unusual at the time; iPhones had only been available in the UK for a little over 4 years, so by early 2012 hand-me-downs were still uncommon, let alone brand new devices. As we chatted, he showed me an iPhone app for creating custom “Keep Calm and Carry On” posters.
The British government’s propaganda department designed the poster ahead of the Second World War but never used it.1 They destroyed most of the original prints early in the war, but an original was rediscovered and displayed at Barter Books, Alnick in the early noughties. Over the subsequent decade the poster’s popularity grew, spurning everything from mugs to T-shirts to parodies. This was the year of the London Olympics: kitschy British merchandise was in.
Meanwhile, over Christmas I’d been playing with Java and Android development. By this point in my teens I’d been programming for a few years. I was learning by hacking together simple projects for fun: I had no formal training. I’d been looking for an idea for a new Android project, and it struck me that I could probably write a similar Android app. A handful of cheap apps already existed, but none were free.
That first version of “Keep Calm” was nothing more than a simple form that changed the background colour and the text of the poster. I released my app for free on the Android Marketplace — Google Play didn’t exist yet! — knowing that I could probably compete favourably with the features of the existing apps. I hadn’t tested the app on a device as I didn’t have a smartphone yet.
To my great surprise the app was popular. Within a couple of days it had been downloaded over 1,000 times. This was long before the era of teenagers becoming overnight influencers on TikTok with millions of views, so it felt like a big deal. The decision to make a free app was a good one: it quickly grew more popular than its competitors.
Over the next few months the app went from strength to strength. I added alternatives to the poster’s crown and I followed it up with another app that did the same for Kitchener’s WWI posters, though this was not nearly as successful.
There were two big changes to come. In March 2012, a few weeks after I turned 15, I released “Keep Calm Pro”, which added far more features, including changing the background to a custom image. I charged 50p for the app, and advertised it from the free Android app.2 Within a few days I had a modest, steady income. I’d never had a job before, so I was delighted to discover that I could turn my hobby into a side hustle.
In May 2012 an uncle gave me a hand-me-down iMac. Until then I’d only worked on Windows. The big appeal of getting a Mac was that I could use Xcode to write iOS apps. Over that spring and summer I got up to speed with Objective-C and Cocoa Touch. Towards the end of the summer holidays, just before I started Year 11, I released “Keep Calm Creator” for iOS. It had a similar feature set to the original Android version, and I later added the “pro” features through an in-app purchase, using a similar competitive strategy to the original app.
The rest, so to speak, is history. In the intervening years these apps were downloaded over 13,000,000 times. The app charted in the Top 10 in several countries. It featured in a short article in the Sunday Times.
I maintained the apps for a couple of years, adding new features, and promoting them on social media. I gradually lost interest in the “business” side even whilst the apps were still very popular, and focussed on my studies instead. By the time I started university I’d also lost interest in the UI and technical problems of the apps: I’ve probably spent more time worrying about the line spacing of Keep Calm and Carry On posters than anyone else in the world.
This has remained the status quo for several years. I’ve made no major changes to any of my apps since I was a teenager and they don’t run well on any modern version of iOS.3 As such, I’ve therefore removed all my apps from the App Store.
I’m a little melancholic to close this chapter of my life. I am, however, incredibly grateful for the experience and to the people who supported me along the way.
Curiously, this is far from the end of my adventures in this arena. Whilst I lost interest in the day-to-day problems of “app development”, I discovered a love of GPU programming and compilers. I played a lot with OpenGL ES on iOS in my late teens, and later with Metal. After the release of Swift in 2014 I began to think a lot more about the inner workings of programming languages and their compilers.4 At university I got to explore these far deeper.
The intersection of GPUs and compilers is small, but happily for the last couple of years I’ve worked on the compiler for Metal’s shading language and the driver for Apple Silicon GPUs. A strange series of accidents lead me here, but I can draw a line from that Year 10 form room to my career today.
In-app purchases were still uncommon, and in any case I never got my head around the Android API. Meanwhile iOS apps often had separate versions for iPhone and iPad as it wasn’t initially possible to target both with a single app.↩︎
The Android versions haven’t been available for several years for similar reasons.↩︎
My apps used very little Swift, and I’ve never used it professionally.↩︎