
The point of this post isn’t how to negotiate or what to ask for because it really depends on your needs (maybe I’ll cover that later). Its meant to paint a realistic picture of what life is like as a ground floor engineer versus past 10, 20 and 30+.
Being a ground floor engineer means you work everyday… 365 days at the very least for the first year. You’re expected to be a generalist, and its best if you’re passionate about the product. There’s just a shit load to do: features, infrastructure, testing, integration, bug fixes, mastering new technologies, bringing others up to speed on the architecture, interviewing candidates, and the list goes on. You’re on call, you fix everything big and small, and you don’t complain you just learn and do! The benefit is you have one of the biggest equity stakes in the company, but the bigger benefit is you know how the entire system is architected and the code you’ve written impacts millions of people! I chose this role for myself because I wanted to be a generalist and learn how the entire system was integrated and built (also why I majored in EE and CS). I also wanted to gain some insight into prototyping and how product’s evolved. If you’re a hungry geek do yourself a favor and don’t settle for anything over 10. Start early!
5-10 stuff is built… but you’re still adding a ton of value to the product and defining the engineering team. You might miss out on a lot of the business and product decisions that were made early on, but if the company is pivoting then it’s ok. You’re still going to play a heavy hand and have your pick of projects long-term.
10-20 this is when startups call in specialists. They are interested in hiring a front-end or back-end developer, algorithms guy, or architect. Not really a hacker-type, but someone who has a deep understanding of a set of technologies or a predilection towards a particular area. Its also one of the more risk averse positions because the startup has mostly likely gone through 1-2 rounds of funding and has gained user traction.
20-30+ get ready to scale and maintain! There’s still a lot of innovation going on, and its focused on scaling the system to support user growth. If you’re a young engineer you’re probably going to be thrust into the maintenance camp, learning the existing architecture first before being given your first juicy project. But hey its a startup and it’s making progress! If the founding engineers are still around you’re in luck because they’ll have a ton of knowledge to impart.
The biggest thing to think about when deciding what stage you want to start at is knowing personally how comfortable you are with change. New people starting every day, week or month, business goals and priorities switching courses, having new bosses, and your own workday context switches: working on a project to fighting fires and back to coding. The earlier you start the more change you deal with and the less time you have to really sit down and think through problems. You’ve got to be quick on your feet, and deal with the ebbs and flows – learn to adapt and accept. If you like stability start later.
Regardless of which position you do decide, a startup is a lot of fun, but it’s a lot of work. It’s not a cushy job nor is it a way to get rich. Its like buying a home: don’t be fixated on flipping it, picture yourself living in it for the next 4-7 years because thats how long it will be if it’s going well. Your teammates are the family you are going to raise in it, and you want to make sure you fit in well with the culture and community. Most importantly make sure you buy and believe in the long term vision of the founder.
(I was affectionately called #2 at Mint.com, because in the words of Aaron Patzer, “…engineers start counting at 0.” )