Everything I’ve ever built (a list)

An anthology of all the software I’ve written or helped write, from childhood games to how I make my living

Choose your own adventure stories (1987–88)
Why learn to write single-track stories when you can build non-linear, Infocom-influenced adventures? I was absolutely the least cool 8 year old anyone knew.

The adventures of Mr A, parts 1–11 (1992–93)
Influenced by an argument between two of my friends when I was 13. Mr A Goes for a Walk was an animated ASCII masterpiece of non-interactive storytelling, and its ten sequels were equally majestic.

A-12 (1993)
A simple maze game, influenced by Rogue but presented in 320x200 VGA. Mr A is stuck in a single-screen maze, only able to see the tiles immediately around him. The sprites and mazes were stored as arrays in the code.

A-13 (1994)
A Sokoban clone using the characters from the above, in glorious 320x200 256-color VGA. I built my own sprite and map editor, and used color cycling to genuinely beautiful effect whenever you won a level.

A-14 (1994)
Someone actually emailed me about it the other day, having found it on a CD-ROM and loved it. You played two characters, Mr A and Mr X, flipping between them at will by pressing tab. They were lost in a maze, and had to collaborate by flipping switches and picking up keys to escape. The maze was paged, and could be virtually any size.

The Numerator (1994)
A Llamatron / Robotron clone (far more influenced by the former; I thought Jeff Minter was the shit). Instead of using the PC speaker, I finally had a sound card, so I experimented with using a fully digitized recorded soundtrack.

Space game whose name I’ve forgotten (1995)
A top-down shooter. I was proud of this because the whole game ran on a single interrupt loop, making every animation and sound smooth and non-blocking. The menus had a first-person 3D star field background, and when you started the game the POV would animate a rotation to show the star field top-down. When the game ended, the star field would rotate to be first-person again.

Mr Sheepz (1996)
My next-to-final game, released for Windows, actually had a minor fanbase. You’re once again in a maze, this time filled with grazing sheep who amble around. You need to gather them up before they’re eaten by carnivorous snails. The homegrown sound effects (“sheepz!” “snailz!” “numnums!”) are still occasionally quoted to me by my friends.

Spire Magazine (1994–98)
With some friends, I created an online computer magazine. We decided the 1994 web wasn’t quite ready for the layouts we wanted, and we didn’t want you to have to be online to read it in the era of dial-up, so I compiled and distributed it as a Windows Help file. I interviewed Roger Ebert and GB Trudeau. I pushed the limits of the format so far that a big games company wanted to hire us (to this day, I regret saying no). Later on, we did move to the web, because obviously.

Daily Information (1995–2010)
I created one of the first online classified ad websites, for a local Oxford paper that had been running since the sixties. (In fact, running its BBS was my first job.) I built its first website, in 1995. For a little while, I maintained an automated Perl version that had been written by someone else, before rewriting it in PHP. I came back over the next decade to build features like a Q&A system and RSS feeds. These days, the website is the primary driver for their business.

Puzzle name whose name I’ve forgotten (1995)
I wrote a few different versions of this over the years. A grid of random squares are one of four random colors. Using a brush that changes shape each turn, you have to change the squares to all be the same color. The original version actually contained a message asking someone to go out with me, because I was (1) an introverted teenager and (2) completely unaware how creepy this was. (The answer was a variation on “hell no”, understandably.)

A blogging platform (1998)
I started blogging in 1998, originally on my own home-grown platform.

Rum & Monkey personality tests, name generator & CMS (2002)
I wrote an off-kilter personality test, which led to several more, and some other web toys, some silly articles, and finally, a community that changed people’s lives and got over a million pageviews a day. Everything except the forum software was homegrown code. I’ve written about this at length; it may still be the thing I’ve built that I was the proudest of.

Accident investigation system (2002)
For my final computer science dissertation, I wrote a system that allowed accident investigators to causally connect events leading to an incident (for example, rail crashes). These causal connections could be weighted, and then underlying causes could be determined using graph theory. Back in 2001, creating an interface for building and representing connected graphs in JavaScript was … challenging.

Coaches Information Service (2003)
I built a system to share sports science information with coaches, in my first job out of university. Articles for coaches integrated with a specialized video player that allowed users to examine athletes frame by frame and spot mistakes. I also built online courses for coaches, with built-in certification.

Elgg Classic (2003–2007)
Elgg is an open source social networking platform, originally designed for education. It contained profiles, blogging, friends pages, feeds, photos, file uploads, tagging, search, and per-item access permissions. Every user could theme their own pages, almost completely. The architecture and database schema were designed to be easy to hack on. There were hundreds of plugins, and it was translated into over 80 languages. You could even publish via mobile, in the days before iPhone. It was more successful than we ever could have hoped for.

University of Oxford Saïd Business School: web stuff (2005)
I constructed a public website and back-end CMS for the Saïd Business School, as well as executive education portal and a few other web-based projects, including a video teaching portal.

Live intranet (2006)
Using “AJAX” (ah, the good old days), I built a prototype of a “live intranet” for use in enterprise businesses. The intranet was split into channels, and you could post messages, photos, files and links. Content published from connected intranet and other platforms (like Elgg) would automatically be published into the channels. Looking back, this was like a proto-Slack; we demoed it to an investment bank in 2006.

Elgg Spaces (2006)
A service that allowed anyone to create an online community, instantly. It actually was growing faster than Ning, but they had $100 million and we didn’t. We were eventually unable to scale the infrastructure to meet demand, frustratingly.

Explode (2007)
After going to the gym one Friday lunchtime, I decided to turn Elgg inside out and create a social network that allowed anyone to use their own website as their profile. Anyone could attach an Explode JavaScript widget to their website to turn it into a profile. My Elgg co-founder and I worked to skin and release it as a side project that same day. It was picked up by TechCrunch, and we had lots of interest from big-name media properties. It also led to investment in our company: investors reached out to us after reading about our approach.

Elgg 1.0+ (2008–9)
We completely rewrote Elgg from the ground up, based on everything we’d learned. This included a flexible database schema that effectively created a NoSQL layer over MySQL, preventing plugin developers from having to build their own schemas or extend the built-in database tables. We wanted to make sure plugins were self-contained, and database schema issues were the number one source of upgrade issues. This version is still in widespread use, including by at least three federal governments. It’s pretty cool.

Internal microblogging (2008)
The Elgg team thought a lot about what a microblogging (Twitter-like) service would look like inside an organization, anticipating features like threaded replies that Twitter would add years later. Yammer was released shortly afterwards. We also created a version that supported themed Twitter-like spaces: for example, one for recommending music.

SMS bot (2008)
I helped build a platform, with the Elgg team, that would take commands via SMS and connect to other platforms to find answers. We had it giving localized weather reports and sending content to various other platforms.

Searunner (2008)
After falling out of love with open source for a while, I had an idea for an API-driven, JSON-based platform that would act as the entire database behind a social network. I built the prototype, but decided that nobody would ever want to subscribe to an entire back-end as a service. I mean, who would do that, right?! (BaaS is a multi billion dollar industry.)

OutMap (2009)
In 2009, web browsers started being able to talk about location. I built a platform that allowed citizen scientists to record and crowdsource arbitrary data at any point on a map: think Findery-as-a-platform (before Findery existed). It was responsive, and worked on every device with a web browser. Unfortunately, I was threatened with legal action for “working on social software”, thanks to an overreaching non-compete clause with Elgg that I didn’t have the resources to fight. (This dissolved a year later.) I was disappointed to not release it.

Latakoo (2010)
The founders of what would become Latakoo came up and spoke to me after a talk about social networking platforms that I gave at Harvard’s Kennedy School. Our collaboration started with an independent news service for Texas, similar to a video equivalent of the Texas Tribune. I ended up helping to create a system that lets video journalists send video fast through any internet connection, using local compression and fast HTTPS transmission, and be available in a web-based asset management system. I also devised and helped build an extension for newsroom datacenters, which allows journalists to send video in any format, and have it automatically show up in the newsroom, quickly, in the right format for editing (no matter which software the newsroom uses). This is my only software patent to date.

Festivals API prototype (2010)
As the Geek in Residence at the Edinburgh Festivals Innovation Lab, I built a prototype of an events API that would cover all twelve Edinburgh festivals.

Onflood (2011)
Onflood was a geo-message board. You would post short messages, and the feed would show you the messages posted by people around you. The geofence would expand and contract based on how many people were posting around you; my original idea was to let people standing in line at an event connect with each other.

Idno (2013)
After years of being wary post-Elgg, this was the first thing I had built for myself in years. Idno was an open source social profile, designed to allow you to publish on your own site and syndicate to platforms like Twitter, Facebook and LinkedIn using indieweb technologies. You could also converse directly with anyone who also used an indieweb-compatible website. You could post status updates, blog posts, photos, audio, events, location check-ins, video, or any other content type provided by plugins. There was a robust template system, including a theme that made content scroll in a CSS-only Star Wars crawl. Its responsive interface was designed to be mobile-first and touch-friendly.

Known (2014)
Based on Idno, Known is a hosted community platform. It allows anyone to publish in a branded group, on any device, in private or public, using the media most appropriate to that group’s needs. It also includes educational features like integration with Learning Management Systems. I devised a course platform extension, as used by KQED Teach, where a community is seamlessly integrated into the course and lessons are completed by sharing with the group. In another iteration, users can publish to the group from their own sites on their own domains, using platforms like WordPress. I also wrote all the back-end admin panels and metrics dashboards. Known was funded by Matter.

Wavelist (2015)
Podcast discovery remains a problem: how do you find something good to listen to? Known built Wavelist as a way to find new podcast content, using thematic playlists of episodes as an entry point. You could follow other people’s playlists (which had podcast feeds of their own), or curate your own. RadioPublic, another Matter portfolio company, has subsequently come to the same conclusion about podcast playlists and run with them as a central feature.

Joshua (2015)
Joshua is a personal Siri or Alexa that runs on the web, using an open API to add new “skills” by connecting with other platforms. It uses Stanford Natural Language Processing technology under the hood to allow wide variance in the words that can be used. Interfaces to the engine include voice (using features of HTML5), text, Slack, and SMS. I built it as a personal side project, and then used it to create some further prototypes with the Known team.

Confetti & Brainbot (2015)
Confetti was a “botcasting” platform: publish a story and have it delivered by bots across multiple platforms, including SMS and Slack. Users could respond to the messages, and they could either be received and responded to by humans, or handled by conversational responses using NLP and the engine I built for Joshua. Brainbot was a bot using the same engine that connected to your startup’s business systems, allowing you to ask questions about your revenue or MAUs. I was excited by the idea of building on these answers: “What was our revenue last month?” “Take that and divide it by our monthly active users.”

Medium (2016)
I’m a small part of the team that builds the platform you’re reading this on.

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