Many young developers dream about working at a start-up. In this article I'll explore the most important aspects of working for a start-up, debunk a few myths, give you a solid foundation of expectations — and even throw in a few tips. Note, that I am specifically talking about working for a start-up and not starting your own start-up (huge difference). First, let me tell you little bit about my own journey and perspective.
I have developed software professionally since 1995. During this time I worked for a couple of large corporations: Amdocs (1 year) and Sony PlayStation (3.5 years). The rest of the time, I worked for various start-ups (usually between 1 and 4 years). I typically joined young start-ups that were 1 or 2 years old, but I also joined one start-up when it had just gotten off the ground — and a few others that were a little more established. I am currently the director of software engineering in a stealth start-up doing large scale distributed sensor networks. In my entire career, I have always been hands-on coding each and every day, regardless of what other responsibilities I held. This has given me a pretty broad perspective on the start-up scene from the inside. Working for a start-up is very different from working for a big corporation. It is not for everyone. But, if you have the right state of mind, a start-up job can be the most gratifying job. Here is why:
Tip 1 - Embrace uncertainty
The dominant factor in a start-up is uncertainty. Everything is uncertain. Why is that? It's because everything you do is new. Nobody can predict the real world. It doesn't matter how much you try to quantify things. You'll never get the right data. Your interpretation of the data will be wrong and the world will change around you. But isn't the same true for big companies as well? It certainly is. The difference is that big companies already have established markets, products, customers, products and culture. Even innovation is done in an existing framework. What does it mean to embrace uncertainty? Don't get too attached to business models, organization charts, programming languages or various processes. Anything can change. That includes the core idea on which the start-up was founded and for which the initial capital was raised, a.k.a, The Pivot.
Tip 2 - Your start-up is likely to fail and that's perfectly fine
Statistically speaking, your start-up will fail horribly. There are just too many things that can go wrong. As long as you can accept that fact you'll be fine. It doesn't mean that you shouldn't care or shouldn't give your best effort. It means that you have to understand you're fighting an uphill battle with precious little chance of winning. But, there is nothing wrong with your start-up failing. You will not fail. Working for a failed start-up doesn't reflect badly on you. You'll still get paid (if you don't start looking for a new job immediately), you'll learn a ton, watch a company go through its paces from the best seat in the house and get to know and collaborate with bright peers. When the inevitable happens you'll be better equipped than before to take on new challenges.
Tip 3 - Your start-up will win big but you will not get rich
Ok. You got me. Some start-ups do succeed against all odds. Maybe you'll be lucky enough to work for one. There are many benefits to working for a successful start-up. You get to see your work making an impact. The snacks usually get better and you may advance through the ranks quickly as the company grows. One day your start-up may even make it to an IPO or get bought out for a gigantic amount of money (not even talking about acquisitions). You may get something but you won't get rich. The only people who get rich when a start-up does an IPO or gets acquired are the investors, sometimes the founders and Charlie the former Google chef. You may get some nice lump sum for your troubles, but it will typically be less than the accumulated bonus or stock options you could cache in a big company during the same period.
Tip 4 - Not all start-ups are created equal
Big companies can also be very different from each other, but there is just a lot that needs to be done to keep a big company going and there aren't too many ways to do it. Start-ups are much more diversified. Early on, the founders directly interact with each and every employee. Later on, the founders still directly decide who to recruit so they can keep the culture going. That means that your experience in one start-up may not transfer to another start-up. I highly recommend not to say, "In my previous start-up we did X" unless you can justify why X is the right choice in the current situation.
Tip 5 - Start-ups grow (or die)
Your start-up will grow, or it will cease and desist. There is a big difference between a start-up of 5 people all sitting in the same room and a start-up of 50 people sitting in multiple separate offices. When you get to the 100-200 people it's a whole different story again. You don't know most of the people anymore. Whatever worked when you were just 5 people won't work anymore. But, you'll be ready because you know that in a start-up the pace of change is very rapid.
Tip 6 - Nobody knows anything
This is a critical concept. Nobody knows what they're doing. From the most junior engineer to the CTO, through the CEO and all the way to Paul Graham from YC. Paul Graham at least knows that he doesn't know what he's doing so he's investing in everything that moves. Remember, if investors knew which start-ups would succeed, they would invest only in the good start-ups. It goes back to uncertainty.
If you know what you're doing it means you're doing something that is strikingly similar to something you've done in the past. In a start-up environment this is rarely the case. Everybody learns on the go. Some people are better at it, so it looks like they know what they're doing. Trust me, they don't. I worked with people who were the principal engineers for operating systems, embedded devices, authors of internet standards and machine learning PhDs. They all figured it out on the fly (capitalizing on their skills and experience of course). If you are overwhelmed and disoriented just realize that this is normal.
Tip 7 - Start-ups are small and therefore fast
People are often surprised at how a small start-up can compete with mega companies such as Microsoft, Google or Facebook, that all spend billions on R&D. The answer is that start-ups are small. When you're small you can change anything because the switching cost is very low. You should realize that in most situations the smaller you are the better it is when it comes to maneuvering and innovating. Don't be intimidated by size. If you have 4 dedicated and capable engineers you can often beat a big company that put 200 people on the same project. Particularly in software development which is not a numbers game.
Tip 8 - Learn
Learning in a start-up is both a duty and a privilege. You have to learn because you'll do many things you haven't done before and nobody will tell you what and how to do it. Learning is also a privilege because only in a start-up will you be exposed in such a degree to so many different aspects of a company. There are many ways to learn. In my experience, the best way to learn is by doing — while following the example of others where appropriate.
One great thing about working at a start-up is that as you learn you often find yourself attracted in a particular direction. In a start-up you may very well be able to curve yourself a path in this direction. As a software developer you also must keep up with technology. Very few start-ups will fall over themselves when you mention your 15 years of experience developed VB 6 applications or your superior IBM mainframe skills.
Tip 9 - Diversify
Investors diversify by investing in multiple companies. If you stay in the start-up scene you'll will naturally diversify by working for multiple companies. If you stay for 12 years with the same start-up then it's not a start-up anymore (start-ups grow). But, it is even more important to diversify your skills. Early on in my career I wrote UI-intensive desktop applications for Windows in C++ and COM. Guess how many start-ups use this technology stack today? I actually found one a couple of years back called Rockmelt, but that's a different story and they pivoted away from that. I moved to cross-platform development, adding Linux and embedded operating systems to my toolset, then Python and web development and later on to the backend, distributed systems and databases. This approach combined with perpetual learning will ensure that you are always current and valuable.
Tip 10 - Enjoy
Last but not least, enjoy yourself and be grateful. You're doing something exciting that you love, you are doing it together with like-minded individuals, and you are at the bleeding edge of technology and about to change the world. On top of that you're getting paid, there are free sodas in the kitchen, the foosball/billiard/ping pong table is in the next room and maybe even crazier perks. It doesn't get much better than that.