I've been working as a software engineer in startups for quite some time now. Not many compared to other people in the space but in all honesty 2.5 startups felt like a long time for me. Enough to fit numerous realizations and experiences that hopefully somehow translate into a drop of wisdom today. I only hope.
Over the years I’ve noticed that certain traits can tell whether someone is likely to join a startup or not and whether they are going to succeed in such a setting. Do they gravitate more towards a fast-paced environment embracing all the unknowns that come with it or do they prefer to work for big tech, something that is deemed to be more “safe” and predictable?
Also, there are some differences in how things are structured in startups versus big tech so depending on where you are in life you might lean towards one or the other.
So should you join one?
My short biased answer as it stands today and that might as well change tomorrow
There is no reason to join a startup unless you are a mid/senior and want to be exposed to things that are beyond your expertise and responsibility so that someday you become a founder yourself. You basically, endure hardship today, so you can endure more hardship later on, for some future upside. If you don't have founder aspirations then you can learn a bunch of skills for a couple of years and then end up in big tech.
But let me elaborate further.
Learning in steroids
In all the startups I’ve been involved with I learned a ton. I’ve heard stories where some devs burned out and learned little. Burned out not necessarily from over-work but also from under-ownership. The very thing that sparked your interest to join a startup in the first place, is not delivered. You wanted ownership and to not be micromanaged but ended up doing a worse and more unorganized version of what you would do in a big meh organization.
Also, I noticed that the ones who don’t particularly thrive in a startup, are juniors. There are several reasons for this and of course, you’ll find shining exceptions. A junior usually needs guidance and they do not adapt as quickly when things change. Also the unknown hits them differently compared to a mid/senior and they are not familiar with talking initiative as much. In the early days every employee counts so these qualities are detrimental to a well-functioning team. If the team grows and certain workflows are established then a junior might bring a new perspective to the product and do tasks senior shouldn't be doing.
If you are a mid/senior though you have the potential to thrive. Especially if you are not the person waiting to be told what to do. Another thing I wish I had realized earlier in my career is that you should strive to gain as many skills that are transferable as possible even if you face rejection. For example, you want to introduce a new tool in your team's workflow or a new coding pattern. The skill of formatting a proposal with all the pros and cons, what it solves, how to implement it etc... is super valuable. It is valuable because it always stays with you and you can transfer it to other companies. Even if your proposal gets rejected this is still a win. And if your proposals keep getting rejected, assuming you are not spamming them, then this is a sign to move on to another company. Same with business. Understanding the business side of a product and not merely its technical side is a skill that will help you in all other companies(especially your own). Same with demos. Many detest them and try to avoid the spotlight but in reality, you are squandering a valuable transferable skill. Do demos.
The skill currency
For some people, money is the motive. Nothing wrong with that. You have a family to feed, an adventure to live, or a weekend passion to immerse yourself in. But for some people skills are the motive and money happens to follow. I don’t think I can recall a single conversation where someone told me they learned a ton in a big tech company.
Ok, I’m exaggerating here. The skills you develop in a big tech company though are different. They might gain deep knowledge in a specialized domain that is uncommon in startup land or understand how to work with systems at a huge scale. There is great value in this.
For example, this might be a good place for a junior where they need structure and will benefit from working under established practices even if they are rigid. Later on, they will learn to evaluate things, develop a taste, and eventually move on to another company having some foundation to build upon.
So if you are a junior who needs structure or a seasoned engineer seeking deep knowledge in a certain technology and thinking about architecture at a massive scale then you might gravitate more towards larger organizations.
The escape velocity of the CEO
If the startup you joined is under 10 people, then you are likely working directly with the CEO. Especially if it is a technical product. But as the product grows the role of the CEO slightly(I mean a lot) shifts. The CEO is spearheading a process that is unknown with no textbook and some decisions might not be understood by the rest of the team, no matter how transparent and good communicator the CEO is. The real pressure is never felt or at least it seems a lot softer to employees due to the CEO absorbing all initial punches.
I’ve heard(and seen) that when a company is on the lookout for investors to raise a new round, the CEO is rarely seen in the office or on Slack. I don’t have direct experience here but I only imagine how stressful of a process it must be. The livelihood of your company which by now has become your baby, is in danger of malnourishment. You would do anything to see it continue growing and some of the decisions you’ll take to accomplish this will most definitely make some team members unhappy. In many cases, the CEO will make some wrong decisions due to this pressure often affecting employees negatively(layoffs) but with the initial intent still being to help the company as a whole positively. There is simply no way around this fact.
It is a difficult spot to be in. You have to be in control and double down on your good qualities but at the same time let some things go and assign them to others. You have to be super aware that what worked yesterday might not work today, even in the same setting. You have to be both rational enough to make good decisions and kinda irrational so you can silence the noise and continue pushing when most founders would have given up.
This is not to justify any action every CEO takes because many, frankly, don’t care about you. I’m talking about the ones who do care. Even if they care deeply, they think of their company succeeding first and then about you. You must evaluate everything that happens in the company with this lens. This is what the morality of a company looks like. If you want something else other than this go and join a weekend hackathon. Not a startup.
Technical vs non-technical CEOs
Both are a double-edged sword. The more technical a founder is where the product is a dev tool let's say the more strong opinions they might hold and you might end up debating over menial details. The positives are easier communication and not having to explain over and over the same concept. This is particularly painful when it comes to non-technical founders. They have a hard time understanding why something might need a week to finish or “What is this thing called refactor again?”.
And my personal favorite.
Oh, this feature looks similar to one we have already so essentially it's a copy-paste, right?
Death. And everyone who has heard such a thing would agree.
Another is if they are semi-technical-ish where they know enough to form an opinion and think that they know but don't know enough to know when to call it quits and let someone else lead.
The ideal rare one is that sweet spot where they know enough to get the general gist of things, acknowledge they don't know enough, and then delegate to someone else and trust them by giving them autonomy and full ownership.
This situation reaches stratosphere levels of bizarreness in big corp settings where the spell of the Dunning-Kruger-CEO effect is passed down to management, having an army of unqualified people telling qualified people what to do.
I'll say it again. Death!
Disclaimer: I've worked with some great product managers, so don't kill me.
(Chris, if you are out there, respect 🙏)
An endless pendulum
Although we’ve seen this crumble in the past few years, a big company has undoubtedly more stability. So it is understandable why the pendulum shifts toward that side in many cases. The lack of ownership thought is a real problem and it affects one a lot if you are the type of person craving for it. So the pendulum shifts to the opposite direction. It is not the least coincidental that people who join startups often have years of experience working in big tech. Many confess they were stuck in a rut and needed a change while others got tired of managing people when in reality wanted to still be writing code, designing, and building things.
Founder skills
At some point, you might go beyond your craft, rise above, and see it as a tool just like you see your microwave. There is a way out of this endless pendulum after all. At least for some.
You are no longer attached to labels like developer, designer, manager, tester, etc. You now want to build a company, put a product out to the world, and are willing to wear many hats, even hats you don’t know exist. This doesn’t happen overnight though but gradually. So initially you might want to be involved more with startups so you can learn from the inside how they operate, make connections with future possible investors, or simply meet cool people in the scene. Or as we say in the streets, “in the ecosystem”.
Downsides
Of course, the obvious one is the uncertainty it involves. Not everyone can handle it and for good reason. The stress of not knowing if you are going to have a job in the next three months is real and corrosive. If you are a twenty-something who can sleep on a beanbag and have pizza for breakfast, you might be able to handle it. You might even come to like it because you feel like a bad-ass Zuckerberg in the making. If you have kids or other responsibilities though this might be a deal breaker.
Also, the pressure to grow as a company is tricky. “You HAVE to grow or you'll go out of business” echoes everywhere. The road to scaling your company is bumpy, to say the least, and the first casualty is usually a nebulous thing called culture. Going from a small tight team where relationships are more human to something more faceless, lean, and productive in service of measurable efficiency is something many can't survive. The one that bugs me to this day is that we shouldn't huddle or write in private on Slack because we need knowledge to be public. I get it, but I also don't get it. Or maybe I don't want to get it. Let's do both, can't we?
Regarding the politics that creep into a company altering its DNA, I should remain silent till the end of my days. I've heard some wild stories.
Conclusion
If you are still reading by now, I tricked you. There is no real takeaway and there is no definitive answer on what to do. It all depends on what type of person you are both in general and at that particular point of your life.
All the above are nothing more than my current opinions and for sure I'll rethink a bunch of them in the future. You know how it goes.
Having said that, I’m pretty sure that I‘ll join a startup again and I hope someday not as an employee. I’m also not blinded that the pendulum might shift in the other direction as well. But until then, I’m still learning either way.