I get this question frequently from many people, mainly those just starting out on their programming careers, and having both been a job-seeker in the past to a startup co-founder in the present, I'll give my 2 cents on the topic in the hopes that you don't spend too much time in your life looking for that elusive perfect work environment. This is a tough question to answer, because every startup is at different stages and rounds of investment and in maturity. And they have all their own agendas in the end as well. Some want to change the the world, and others want to build successful businesses so that they can live better lives financially. Both valiant points.
The main question you should be asking however, isn't should you work for a startup, but can you work for a startup. Startups aren't like your typical tech corporation. They don't normally have quarterly budgets and annual raises. Most of the time, they don't even have revenue. When they do hire, it's because they need someone with a high level of skill. Someone to jump in and to help build the actual product that they have in mind. And that's a difficult task normally.
And this is where experience comes into play. Programming is just one small step in the process of creating a software company. Architecture and engineering are at the heart of the whole thing. Having a wide business knowledge is very important. Remember, startups are running on minimal funds normally and that means running on limited time as well. And while you may not have much vested interest in whatever problem the startup is trying to solve, you can rest assured that those in charge have everything on the line.
The following is a few key points to consider when looking to work for a startup. This isn't a path for everyone, but to those that do it and do it well, it can definitely be a rewarding and lesson filled experience.
Lack of stability
Startups aren't stable, everyone knows this. If you watch any sitcom that pokes fun at startup culture, then you know how volatile it is. An estimated 75% of all startups that are ventured funded will not be able to return their investment capital back, most vanishing into the ether never to be heard from again. And that's..normal. That's the nature of a startup. That's the part that you sign up for and that's why many won't ever attempt it.
This is why I don't personally recommend startup work to those that don't have the experience yet. That smile will quickly flip upside-down 6 months down the road when you have to clear your co-working desk out. If you are an experienced developer, then you don't have to worry so much about where to go next. This is a calculated risk for you. You knew the that sands of time were running quick on this part of your journey, and you took the dive in search of some loot. Good for you. More experienced developers can benefit from this approach in life.
If you are relatively new however, then a 6 month contract at a startup who may or may not still be in business, may or may not help you on your next job. Questions will begin to arise in the hiring companies mind. Such as, why did the company collapse? Was it due to a poor technical stack perhaps? Were you a part of the cause as to why it went south? And while more than likely that isn't the case, trying to convince someone's internal thoughts on the matter is easier said than done.
Startup work is more stressful than your average 9 to 5 for a few reasons. Fires are happening constantly, and part of your job is to put those fires out as best as you can. Servers go down, payment's are missed and account credentials are lost more often than you'd think. And in the middle of that, you sit, attempting to keep everything together with a few strips of tape and email inquiries.
And that's because most startups lack the organizational aspects of a full-on corporation, such as an HR department or some form of project management infrastructure. And this can lead to issues in the long term as things get misplaced and such.
This is the most alluring aspect of startup work usually. And while working from home on your favorite desk sipping coffee from your favorite mug sounds like you've made it in life, it gets old fast. And if you are new to the field, then you are definitely going to miss out on valuable experience that you can only get in an office type setting.
Working for a large organization is an overall smoother process. For one, you have more resources available to you. If your laptop stops working for example, then you'd better believe you'll have a new one to work with by end of day. And secondly, you have other humans around you. You can ask questions, discuss relevant topics and in general just have a much more communal experience while you do your job.
But again, this is much more valuable to someone that is new to the field. If you've been around the path for some time now, then some remote peace and quiet might be much more up your alley. For me personally, I enjoy the non-office setting these days. But that's mainly after 10 years of sitting behind a desk. But I have great appreciation for the times when I was working with a fully furnished office where coffee flowed freely and others gathered to hep you with your tasks at hand.
Startup work is generally much more difficult than your typical 9 to 5. You'll be doing things that more established companies already figured out and automated. You'll be setting up servers and email clients and processing large amounts of data in a variety of formats. You'll be writing code today only to delete it all next week. Priorities change at the drop of a hat, and that's just the way that it is.
If you are more experienced however, you'll have much more input and say into how the product is built. Which means, less time deleting code on ideas that didn't pan out. And of course, difficultly is a subjective thing. Something difficult to someone with 1-2 years of experience, might be minutes of work to someone with 7-8 years of experience. And that mainly comes down to having seen more during your past experience.
Not to say that you can't be a young and skilled programmer working for a startup. But again, that would depend on the current age of the company and how many other resources are available. A startup with 3-4 developers can afford to bring on someone younger and less experienced, as oppose to a startup with 0-1 developers.
Who should work at a startup
As I've mentioned so far, working for a startup is not for everyone. But if you are a more experienced developer looking for a challenge in your career, and looking to grow your business knowledge then working for a startup can have huge benefits. Also anybody looking to create their own one day can benefit greatly by seeing what running a company is actually like.