I have nothing against startups per se. I think they are great places for exceptionally bright individuals to work on ground breaking products. However, I think there are some misconceptions and myths about working at a startup, especially working in an early stage startup as a technical person, i.e., software engineer (or web developer, or coder, or programmer). Here is my list of reasons why someone should not work at a startup.
Learning About Great Technologies
Startups are fighting for survival and unless there is some highly technical problem to solve (e.g., Dropbox, GitHub), founders choose the safest and the cheapest tech stack possible, e.g., outmoded PHP. Even if they’re tech savvy enough to choose Ruby on Rails, or up and coming Node.js, the constant uphill battle tends to accumulate technical debt in the form of outdated dependencies and poorly designed archtecture.
Needless to say, Node.js, Huskell and Lisp are oftentimes out of the picture due to their low adaptation (less dependable modules, harder to replace developers, i.e., you) and riskiness (unstable or immature production ecosystem).
That’s okay you might think, but think again. Imagine that the deadlines are looming because there are no enough paying customers, which means that runway is just a few weeks short. In this tense situation virtualy nobody will tolerate developers reading Hacker News, learning cool patterns, forking& contributing to amazing open-source project, writing a tech blog post or even updating dependencies’ versions!
If you’re a junior developer thinking that you can learn a lot by joinging an early stage startup this might not always be the case. Most likely there won’t be any time for senior engineers to spoon-feed you the information, and for you to properly learn all the nuts and bolts. Instead people juggle multiple hats acquiring mile wide but inch deep skills. The typical orgchart is that all staff have to do a lot of different tasks, but never have a deep comprehension in any particular field, .
Making Boatloads of Money
The chances of a successful exit for an early startup are so low that they might be comparable to the error margins. In addition, liquidity events postponed many years into the future, while vesting and cliffs make sure greedy employees (i.e., us) get nothing ’til years of service. On top of that, stock options can be diluted at any time by the board and/or the founders.
Ordinarily salaries are below the market rate, because of startups’ frugality. This is often a good idea, because if somebody is getting a fair or above average wages, theoretically this deceases the chances of success for that company.
Short runway is probably the root of all evils described in this post. It’s a cause of other reasons why someone should not work at a startup. The best situation is when a startup is already profitable and its runway is infinite. In the case of BufferApp, its employees get free Kindle books, take naps during work and often fly to company retreats.
Career Opportunity
You might be surprised but statistically startups are more likely to promote outsiders for future leadership positions (e.g., boards usually fire founders and bring professional C-execs), rather than promote veterans that have been with the company for a while.
For examples, envision a small engineering team of real hackers and nerds. This team has built the first prototype despite all the hurdles — sleepless nights, lack of staff, lack of infrastructure, pressure to deliver faster, you know it — only they end up compromising, piling up technical debt and shipping less that a perfect product. Right after this startup has its prototype and raises series A round, it hires a new team. This new team starts building the product from scratch with some trendy and shiny new framework. This happens more often than you might think.
Great Work-Life Balance
Again, there might be exceptions like FogCreek or 37Signals. (Is it still considered a startup? Probably not.) However, typical startup founders are stressed, its managers push deadlines, and customers are unhappy with downtime and want new features faster. Long hours after and before a typical 9–5 grind are expected with an optional supply of RedBull and pizza.
Becoming Famous
Most of the startups (like 70–90% of them) fail without reaching any significant traction in the number of users, which is at best in thousands, not millions. Most likely you’ll have to repeat elevator pitch to anyone of your friends or strangers who ask “what do you do?”.
Before commenting that I just haven’t heard / didn’t work at your startup, bear in mind that this is just a rough generalization of principals why not to do something. In other words, if somebody’s goal is to make tons of money: not a startups, if somebody want to become famous — not a startup. Besides, the points are only applicable if someone is an employee on the contrary to being a startup founder. So either found your own startup or join a good mature company!
I have rarely heard any startup providing Redbull and pizza after working hours. After reading your post, one question. Many startups are joining the wagon of Node.js/ MEAN/MERN Stack. What about them?
It really is a shame that people have become jaded against PHP and think that Node.js is way better, blah blah blah. I’m a professional PHP developer and I’m twice as productive in that language as I was working with Node in a startup last year. At every corner, I shook my head at the approach that they company was taking with regards to building their web assets. It was a mess, and it was plain jade Node.js + Mongo. My point is that PHP, if used properly and skillfully, is equally capable and powerful.
That is very true indeed! I’ve experienced all this. Also, because of short number of team members, they put the tasks over you which you even do not hired for.