A Great Idea Before its Time (and Dropbox)

In 2001, I tried to start a business based on code I had developed for Yale to enable online registration and management of yearly class reunions. Reunions are multi-million dollar events, and the system I developed in 1999-2001 is still running Yale's reunions today.
I used AP credits to skip a semester and flesh out the idea further. [1] I set up an office in my mom's basement and set to work writing the business plan. Ultimately, I concluded that universities were so slow moving that I would need a partner (or acquirer) for help with the sales process. My colleagues at Yale helped arrange a meeting with the company who was building their alumni network. The dot-com bust was already in full force, and then 9/11 happened. The company thanked me for my presentation but passed. I wasn't passionate about event registration, and there was already a well-funded competitor (Cvent.com) that I correctly predicted would dominate the space.
As with most startups, my initial idea wasn't great. On the bright side, I identified a problem that most people had yet to experience – synchronizing documents across multiple devices. You've heard of DropBox, right? Well, this was 2002, and DropBox was founded 5 years later.
Sure, you could use rsync to sync your files, but it was too complicated for 99.999% of people. The primary reason for DropBox's success is its simplicity. Rsync is complicated to configure, prevents people from sharing files with friends and won't let you access files on a public computer.
I decided to start from scratch and create a synchronization system that used the protocol that web browsers and web sites use to communicate so you could access your files with any browser on any computer.
It was convenient that I was also taking a class on computer networks, and the low-level network programming required to implement TCP over UDP made programming this easier.
If you read the paper, it says that I was going to port the system to Windows after graduation. That was the plan until finals week. I had finished the senior project, but had so much work to do for a project on Dutch Auction IPOs that I tried to stay awak for 36 hours. Creating graphs of the data put me over the 20 MegaByte quota, and I was so tired that I accidentally ran rm -rf on my home directory while trying to get under quota. As that page explains, once you delete something in Unix, it can only be recovered from a backup. I had been working from 10am to 5am every single day that semester to fit in an extra 2 CS classes (4 CS total + a history class) so I could graduate with a B.S. in Computer Science instead of a B.A. At the end of the semester when the Alumni association also needed new reporting features for the upcoming reunions, even those crazy hours weren't enough.
Freaked out, I went to Stan Eisenstat, the head of the department and all-around Unix guru, and begged him to restore my work from the server's backups. Stan had a longstanding policy of reducing the grade for an assignment by 10% for every day that it was late, and since the deadline for the senior project had arrived, he probably thought I shouldn't get credit for fixing any bugs after the deadline. He only restored the executable and postscript paper for my senior project, and I was so exhausted and relieved to get back a working program and finished paper that I didn't argue with him to restore the source code. I just wanted to sleep.
It was a nail-biter demonstrating the program to my adviser since if anything went wrong I would be screwed. Synchronizing binary files between multiple disconnected computers over a custom-built webserver and HTTP client isn't easy to get right. Luckily, the program worked flawlessly and I got an A. I never did tell my advisor that I lost the source code and he never asked to see it.
There's something very ironic about losing a personal backup system because you don't have a personal backup system. If anything, it underscored the value of what I was creating. I did have local SVN source control, but without a separate SVN server those .svn folders were deleted along with the source code. I had not been concerned about a hard-drive failing since my files were on a server with RAID arrays and backups. The problem was that there was a tenured professor between me and those backups.
Taking the extra 2 CS classes was counter-productive because I burned out on C++ programming and decided to only apply for Program/Product Manager jobs after graduation. I took two courses I didn't really want to take for one word on an incomprehensible Latin diploma, ended up miserable as a Program Manager and took 7 years to finally admit that I'm just a hacker entreprenuer. Somehow it took me longer to accept being a hacker than being gay.
I knew that the idea was a few years ahead of the market and that I wouldn't be successful without a dedicated co-founder. At the time, the Seattle startup community was experiencing nuclear winter and convincing my friends to start a company was a tough sell. Even three years later, the founder of Box.net realized he needed to move to the Bay Area to raise capital and launch a similar company. Programming in C++ and writing a custom web server to handle HTTP communication made sense while I had similar projects for a Computer Networks course, but it was a lot more work and less fun than the SQL modeling I did for the project on Dutch Auction IPOs. DropBox definitely made the right choice writing most of their code in Python.
When I joined Jobster in 2004 the CEO, Jason Golderg, found my senior paper and excitedly printed it out for all of the developers to read. File synchronization isn't sexy, but it was a better idea than the ones Jobster addressed and it's ironic that Box.net and DropBox are both very successful while Jobster was a $50 million loss for its VCs.
I've learned a lot from working at startups since 1996 and I'll share the key lessons in a follow-up post. Follow me on twitter to hear about it so you can avoid the mistakes I made.
In the meantime, if you don't already use Dropbox, get your free 2 GB account.
[1] I had enough AP credits to skip a full year, and I recommend anyone with that many credits to skip a full year so they choose how many courses they take per semester, not the graduation requirements.
