Work 2014–2015

DigitalOcean

Role
Software engineer
Where
New York, USA

Joined as an early engineer, rewrote the DNS service, and watched the company grow by 18,000 developers a week.

DigitalOcean

From EmberConf after-party to SOHO

I never planned to move to New York. I never planned on meeting John Edgar at an EmberConf after-party in Portland either.

John was DigitalOcean’s CxO, which in practice meant he plugged whatever gap needed plugging that week.

At the time I was CTO at App.io, a startup where I’d been employee number one. From the outside it looked like I had a good thing going. Inside, it was a shitshow, and one of the founders had made it his personal mission to make my life miserable. I was ready to leave. I just didn’t have a plan.

Then John started telling me about the company. Twenty people in a Manhattan office, trying to take on Amazon Web Services. The pitch sounded ambitious and slightly mad, which is probably why I agreed to fly out for an interview.

The office was on the top floor of a 1950s building at Lafayette and Prince in SOHO. Eight engineers, a handful of support staff, some marketing and content people, HR. The whole company fit on one floor, and you could feel the energy the moment you stepped out of the lift.

The interview went well. Really well. Well enough that I met some mates in Williamsburg for Friday night beers to celebrate… probably getting an offer? Maybe? I wasn’t sure.

Then my phone rang. It was Moisey Uretsky, one of the co-founders. Could I get back to SOHO? They’d agreed to my salary terms. Could I come and sign the employment agreement tonight?

I caught the fastest train I could find and took the lift to the 12th floor. Moisey was at his desk with two things: an employment contract and a bottle of Oban. Susan Ho was there too. She’d already left the company but was still a good friend of Moisey’s, and the two of them were chatting when I walked in.

We moved to the central board room. I’d later realise this room doubled as the operations situation room because, frankly, everything was always falling over. But that night it was just the three of us, a contract for more money than I’d ever been offered (which was exactly enough to survive in New York without going backwards), and some excellent whisky.

After I signed, we grabbed sushi up the street, then headed to a Burning Man pre-party in a Brooklyn warehouse. That’s where I met David Hohme, a DJ who became the unofficial house DJ for DigitalOcean events and a good friend to Moisey and Annie Dane (the official party officer Events Coordinator).

That was my introduction to DigitalOcean: a Friday night that started with a beer in Williamsburg and ended in a warehouse in Brooklyn, somewhere between signing my life away and wondering what the hell I’d just agreed to.

Plywood and Perl

The office was less glamorous than that night suggested. Seven or eight of us in engineering sat around tables made of plywood in one corner. Marketing and events took the middle. Support had the far side, and they comfortably outnumbered engineering, which tells you something about how the platform was holding up.

We had a CTO when I started. I overlapped with him for about two weeks before he was gone. Nobody was really steering engineering, and the cloud itself was a collection of Perl scripts.

The company I’d joined

What DigitalOcean lacked in engineering it made up for in experience and nerve.

Moisey and his brother Ben had grown up in Brighton Beach after their family emigrated from Russia, and they’d been running a managed hosting business, ServerStack, since 2003. It was bootstrapped, profitable and thoroughly unglamorous. It also meant they came into cloud hosting already knowing what a server cost to run and what margin they needed on it. DigitalOcean was built on that knowledge.

The nerve showed in their Techstars application. The Supreme store occupied the retail space downstairs, and on release days the queue stretched down Lafayette Street. Moisey and Ben filmed the crowd, cut it to look like everyone was lining up for DigitalOcean, then walked upstairs into the office to show off the product. It was a cheeky bit of misdirection, and it says a lot about who they were.

They got into Techstars in Boulder in 2012. IA Ventures led a US$3.2 million seed round in 2013, and in March 2014 Andreessen Horowitz led a US$37.2 million Series A.

do_weed.pl

My first job was DNS, the service that maps a domain name to a server’s address. The whole thing was a single Perl script called do_weed.pl.

It was admirably simple. Select every domain from the database. For each domain, select every record. Concatenate the lot into a BIND zone file. Copy it over SSH to three resolver servers in three different locations.

That was fine when DigitalOcean was small. It wasn’t small any more. By then the script took several hours to complete a run. A customer would change a record in the control panel, a Rails app, then wait, and wait, and eventually open a support ticket asking why their DNS hadn’t updated. Support’s fix was to kill the script and restart it by hand, logging into each box over SSH. Far from ideal.

MacB and I rewrote it in Go, backed by Postgres. Updating a record now meant inserting a row, and the rest took care of itself. Changes went live almost instantly. The harder record types, like CNAME flattening at the root of a domain, were genuinely tricky, and I don’t think we supported them in the first version. But customers noticed the difference straight away, and they were happy.

18,000 developers a week

We needed things to scale, because the growth was absurd. At the time we were adding around 18,000 developers a week, the fastest growth I’ve seen at any startup I’ve worked at. It’s a number a lot of us who were there are still proud of.

Much of it came from an unexpected place. Mitch Wainer, co-founder and head of marketing, was one of the brains behind how DigitalOcean acquired users, and content was central to it. Etel Sverdlov led a team writing careful, well-considered tutorials on Linux system administration. They ranked well in search and drew enormous traffic, and around 30% of our customers came in through them.

The path was simple. A developer searching for help with a Linux problem would land on one of those guides, notice it came from a cloud platform built for developers, and think: I’m a developer. I’ll sign up.