Always Refer to Your V1 As a Prototype

Reading all the SXSW press always makes me nostalgic for my time in Austin and the 3 years I spent working at Audiogalaxy.com, a music startup. Here is a history of the company from my perspective as the first full-time programmer. This is the first of three parts.

Getting the Job
My career at Audiogalaxy got started by chance one spring afternoon in 1999. At the time, I was a computer-engineering student with just a few more classes to finish before I graduated that fall. Like most of my friends, I was planning on taking an entry-level engineering job at one of the big companies in Austin, but things didn’t end up turning out that way.

I ran into Michael Merhej on the steps of the Electrical and Computer Engineering building and stopped to chat about the business I had heard he had started. Michael and I had been lab partners in an electrical engineering class a few semesters before, and he had struck me as a high energy guy with an amazing capacity to focus on the things he was interested in. We talked a little bit about Audiogalaxy, and he told me that they really needed some web developers. A music website sounded a lot more fun than working for the engineering career center like I had done the previous year, so I told him I was interested.

My “interview” took place at Michael’s low-budget apartment that he shared with three other guys. He had just finished shipping some new servers off to the datacenter, and a mix of computer component packaging and laundry were strewn about the apartment. David McArthur, the other co-founder of AG, asked me a few questions about HTML, and then they offered me a part time contracting job as a web developer.

At that time, the company had two areas of interest. The first was an FTP search engine that Michael had written the previous year. Back in the stone age of MP3 distribution, FTP sites were the preferred technology. FTP servers allowed admins to enforce upload/download ratios, and so running an FTP site was a fine way to increase the size of your own music collection. Sites had different ratios, were up during different times of day, and were just plain hard to find. This created demand for information about them, and AG filled it. Michael had written one of the leading FTP search engines the year before and was getting an impressive amount of traffic.

The second part of the company targeted unsigned artists trying to get exposure. Artists could upload their MP3s, and the staff would listen to the music, categorize it, and write a few blurbs. Then, the music went on the site for anyone to download. Originally, bands had to use FTP to upload their music, which was too difficult. One of my first projects was “Web-FTP,” which provided an HTTP based system for uploading content and allowed for integration with the tools the music staff used to handle the music.

Summer, 1999
I started working when finals ended. During the summer, I worked part-time because I also had a full-time internship at Tivoli. Tivoli, which had recently been acquired by IBM, had started a boot camp program to try to develop engineering talent. It was a fun program, but more importantly, it wasn’t a very high stress job. This left me with lots of time in the evenings and weekends to get my Audiogalaxy work done.

For my first month or two at AG, the company had no offices. I worked from home for the first few weeks, and then David gave everyone a key to his house and set up some computers in the back. Later in the summer, we moved into offices located on the less distracting part of 6th street. By the end of the summer, I was signed up for the startup life. I finished my internship at Tivoli, quit my campus job at UT, dropped 2 of the classes I was scheduled to take that fall, and started working for AG full time.

The salary was just OK, but that didn’t really matter because I had 55,000 stock options! Once we hit it big and had our IPO, I knew I would make a lot of money. That seems insane and naïve now, but with all the other crazy startups out there at the time, it made complete sense to 21-year-old Tom. Overall, it seemed like an interesting opportunity, and the job market was so good back then that I knew I would have other options if the company folded. Besides, working on a music website with friends in downtown Austin seemed like a pretty cool gig.

At this point, there were 4 other full time employees who stayed with the company until the very end:

  • Michael Merhej – Founder/CEO
  • David McArthur – Founder/handled the web site design and managed its development. He and Michael had met working together at a computer lab on campus.
  • Eric Zappa – Managed all the music reviewers and had previously worked for a label.
  • Geoff Midler –Did everything from tech support to handling servers. He had known Michael since high school.

After I started working full-time, I wrapped up Web-FTP and ported the FTP search to PHP (Michael had originally written it as a CGI app in C). Around that time, we were frustrated with how few people were running FTP servers, so we started kicking around ideas about trying to distribute our own. We wanted something that would take just a few clicks to install and would ping our servers so that we could index them. We had some notes for this sketched out on the whiteboard when Michael downloaded a little program called Napster.

Fall, 1999
Michael immediately knew that Napster was the future and that FTP sites were about to become a footnote. Since there weren’t any other programmers on staff at the time, I was given the task of coding a competing system. Without knowing it, I also signed up to be on call for data center problems 24/7 for the next few years. I hadn’t planned on a career that kept me on call, but the defining characteristic of startup life is doing whatever it takes to get the job done. Michael drove me to the Sprint store and I picked out my very first cell phone the next month.

Napster was impressive, but we wanted to do things a little bit differently. First, we wanted to keep users coming back to our website. This was back in the day of high CPM deals, so the more website traffic we could get, the better. Second, we wanted to avoid partitioning our network. One problem with Napster was that you could only search for files shared by people connected to the same server as your client, which greatly reduced the availability of the music.

The project got started around September 24th, 1999. I remember the date because that evening I drove out to Southpark Meadows with my friend John to catch a Phish concert. I spent the time in the car talking about some of my ideas for the service, and I started hacking on it that weekend.

It took a lot of 100-hour weeks, but by the end of the year we had shipped a flawed, early version of the Satellite. I had created a piece of software that only scaled to a few thousand users, but I had also learned a lot of lessons. More importantly, I had gotten a taste of how amazing it was to work on networked software that connected thousands of people and computers. With 2 classes left, I had also screwed up my GPA by getting a C in a silly linear algebra class, but I had become so obsessed with the Satellite that I didn’t mind. I had bigger problems at work.

The client, written in Java and using JNI to show a native WIN32 UI, was flaky. The server was massively bottlenecked on the database. It took hours to start a transfer for a requested file, and we would get bug reports that said things like, “My computer’s clock runs faster when I’m using the Satellite.” Sigh. You really do have to plan to throw one away.

Before I went home for Christmas that year, Michael and I sat down. We talked through what a service that didn’t use the database as much would look like, and we set a goal of building a service that could handle 100,000 simultaneous users. A cluster of servers that passed messages between each other to coordinate file transfers sounded like a good idea. I printed out a list of all the queries that the current service did and took them home to think.

Continued in Part 2

4 Responses to “Always Refer to Your V1 As a Prototype”


Leave a Reply