« You should blog even if you have no readers | Main | Your company has a knowledge debt problem »
Monday
Jul122010

My experience as the first employee of a Y Combinator startup

I'm the first employee of BackType, a Summer '08 YC company. My joining the company increased the company size by 50%. The experience has been awesome, but I will say up front that being the first employee of a startup is not for everyone.

The best part of being the first employee of a startup is the total exposure to all parts of the company. I've learned a ton about product development, customer development, recruiting, and entrepreneurship. Additionally, I've met and connected with lots of other awesome people through the YC network. I've gotten all these benefits at relatively low risk for myself, as I still have a salary and a solid chunk of equity.

No Rules

There are a lot of rules working at most companies. You don't even realize that some of the rules are rules until you work at a company with no rules. I'm talking about the most basic things like what hours you work, what days of the week you work, what tools you use, and whether you come into the office or not.

Because there are no rules, you have to be able to set your own direction and make decisions on your own.

Where I work

When I first started at BackType, I came into the office1 everyday. My commute involved taking the BART into downtown SF and then taking the bus to the founders' apartment. I was working a ton, and after a couple weeks I was feeling pretty exhausted.

By this point I was synced up with the codebase and product direction, so I decided to work from home one day. I didn't ask the founders for permission or anything, I just told them via instant message "I'm working from home today". The founders didn't care -- they trusted me to make the right decision for myself.

It was a great decision and I started working from home more and more. I've found that if I work for 8 hours with a half-hour commute each way I'm going to feel pretty exhausted at the end of the day. But if I stay at home I can work for 12 hours and feel fine.

Part of the discrepancy is that when I work from home I am able to easily pace myself. I take mini-breaks to play piano for a few minutes while pondering a problem. In the middle of the day, I generally go for a run at a big park near my house. Being too deep in coding for too long without a change of pace can really unbalance you, so exercising in the middle of the day is really refreshing.

Even though I work a lot more than I have previously at "regular jobs", I find that I'm a lot healthier now. Since I work from home so frequently, I get a lot of exercise and can cook for myself.

I've converged on going into the office twice a week and working from home the other days. Sometimes I go into the office less, and sometimes I go into the office more. It depends on how I feel and whether I feel we have a lot of syncing up to do that's better done in person.

When I work

Not surprisingly, I choose my own work hours as well. I usually work 6 days a week, forcing myself to take one day off a week to avoid burn-out. On a weekday, I generally wake up around 11:00am and work until 2am, taking breaks to eat, exercise, and hang out with my roommates for a bit. I work fewer hours on weekend days.

I rarely wake up to an alarm. I find that I become significantly hampered by lack of sleep, more than most people, and that it's better to work less hours fully rested than more hours fatigued.

Ultimately, choosing when and where I work makes me more productive. And that's what matters most in a startup.

What I work on

Our most important goal as a team is to maximize the rate at which we're learning about our market and customer needs. I work on both building out our product and investing in increasing the rate at which we can build.

The founders provide me with specific product goals, such as new stats to serve in our product. I work on the data side of things figuring out how we store, process, and serve the many terabytes of data we collect. If I wanted I could contribute to the front-end (and I may one day), but for now I'm interested in solving our data problems.

I invest significant amounts of time in increasing the rate at which we can produce new products. I generally make these investments on my own initiative. Scaling our data infrastructure with technologies like Hadoop and Cassandra is one example of an investment that has given us flexibility and speed.

Choosing my own tools

When I started at BackType, I was primarily a Java and Ruby hacker. The founders used Python, so I picked that up and used that for awhile along with Java for some back-end stuff.

I had always been interested in Clojure (a Lisp that interoperates with Java), and in February I needed to write a small server to collect records into a distributed filesystem in a performant and robust way. I decided to use that project as a learning experiment and wrote it in Clojure.

In most companies, you'd have to sell your boss on the idea of experimenting with a new programming language, and your boss would most likely reject your proposal and tell you to use what "everyone else is familiar with" since he doesn't want you to be the only one who understands that code. It's one of those risk-averse decisions that you often see made that fails to take into account the effects of knowledge debt.

That decision to use Clojure has paid off in spades. I went on to use Clojure to write Cascalog, a tool that seriously simplifies the processing of "big data".

Process, or lack thereof

I'll say up front that I hate process. The founders don't have too many preconceived notions about how to manage a team, so we're learning together the best way to manage things. Any process we've added has been out of necessity.

Early on, we started doing 2 minute standups in the mornings (over Skype if I'm remote). We found we were sometimes out of sync on what we were each working on and missing opportunities to help each other, and standups were a cheap way to address these issues.

A few months in, I began to feel I wasn't totally in the loop with company direction -- product, hiring, fundraising, etc. Chris and Mike are always together so they're always in sync, and with me not around all the time we began having some communication mishaps. So we started doing meetings every other week where we discuss direction and progress of the company. Before the meeting, I put together an agenda on our wiki and then everyone has a chance to add items they want to discuss to the agenda. Our meeting usually takes about 40 minutes and has helped us all stay on the same page.

Burning out

There's an endless amount of work to do at a startup. It's really easy to burn yourself out, and I've done so multiple times. Burning out sucks. It can take weeks to recover from a burnout, and getting something finished a little bit earlier is never worth the mental drain. I've had to learn to pace myself. That's why I force myself to relax and get away from computers one day a week.

To avoid burn-out, I find it's really important to have a sense of balance and not be ingrained in work all the time. For me, playing music, reading, exercising, and writing this blog all help keep me balanced. Interspersing those activities throughout the day helps keep my mind sharp during those hours that I'm working.

The founders

Mike and Chris work harder than I thought was possible. They're at it 24×7. Something Chris told me once pretty much sums them up: "The only difference between a regular night and Friday night for me is whether or not I'm drinking wine while working."

So yea, they're intense, but I wouldn't still be working with them after six months unless they were awesome to work with. Mike and Chris are quirky guys and their personalities complement each other. Mike is always enthusiastic, and Chris has a really dry sense of humor. They like to make fun of each other.

I don't really consider the founders to be my bosses. I trust them on product direction and vision, and they trust me on technical vision and technical decisions.

The freedom of working for a startup

It's no coincidence that I've been doing lots of awesome stuff like blogging, open source, and speaking since I've joined BackType. What has happened is I have had the freedom to reach my potential.

That freedom manifests itself in many ways. One of those has been the freedom to open source internal projects I work on. I've open sourced a query language for Hadoop, a tool for migrating data from SQL db's to Hadoop, a dependency management system, and I have more on the way.

Of course, the freedom of working for a startup carries with it more responsibility as well. There's no sysadmin so figuring out how to configure, setup, and deploy machines is all on your plate. And when shit hits the fan, you better be comfortable digging into anything and everything to solve the issue. I've submitted patches to Thrift and have had to debug issues in Cascading, Gearman, and Cassandra. You also have to be comfortable making big decisions on your own and owning huge pieces of the infrastructure.

Conclusion

I've had a great time as the first employee of BackType. If you're smart, get things done, thrive when given tons of freedom, but don't want to do your own startup right now, I highly recommend the early employee experience.

We're hiring at Backtype, but even if you don't join us there are lots of other great startups. Your life will change when you have the freedom to reach your potential.

You should follow me on Twitter here.

1 Actually, it's just the founders' apartment. I usually refer to it as BackType HQ.

Reader Comments

There are no comments for this journal entry. To create a new comment, use the form below.

PostPost a New Comment

Enter your information below to add a new comment.
Author Email (optional):
Author URL (optional):
Post:
 
Some HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>