Working as a Software Engineer at a 5 Person Start-Up vs a Fortune 100 vs a Mid-Size Company: Pros and Cons
Maybe I shouldn’t have joined this company.
My salary doubled.
My confidence tanked.
I walked into the shared office space to meet the 3 other people I’d be working with. The CTO handed me a laptop and I sat between him and the CEO to get onboarded. That day I wrote my first unit test and got an assignment.
Looking back, I realize this experience was pivotal to my career. I learned from incredible people and got exposed to high quality code.
It was also the most stressful and deflating 9 months of my life as a coder. I wrote about it here: https://www.linkedin.com/pulse/how-feels-worst-developer-team-accelerated-my-career-brian-jenney/
In the 8 years since then I’ve worked for fortune 100 companies, mid-size startups and companies you’ve never heard of.
Looking to transition into tech and work for a company no one has ever heard of? Join Parsity.io — a coding school run by software engineers.
I’ve also spoken with around 600 developers at different stages of their careers. Turns out my experiences aren’t so unique.
Go small for wide experience. Go big for expertise and delayed financial gratification.
New coders are obsessed with going to Google, Meta, Amazon or Netflix.
These make up a solid .6% of software engineering roles. They make up the 99% of the articles you read about life as a software engineer.
Reality as a developer is a tad different than what social media shows you.
Let’s explore the pros and cons of working at a small startup vs a fortune 100 vs a mid size company and finally, the path I’d take if I could do it all over again.
The small startup
✅ Pros
You will have major impact.
The feature you write and launch could be the reason investors give your CEO enough money to make the next round of pay checks.
You can grow fast af. If you’re in early enough, you’re basically at the top of the company. If they grow, you should* be the most knowledgeable.
Wearing many hats means you could work on the deployment process, front end, back end and maybe even sales. You get a bird’s eye view of the business.
❌ Cons
Startups are high risk / high reward. That feature you launched that saved your pay check could also fail in the long term. Most startups will fail.
Work/life balance is gone. Everything is on fire or there’s nothing to do.
If the investors or CEO want a new feature — it is THE most important thing to do and it must be delivered. Sleep be damned!
WHEN priorities change and sales is more important than adding new features — you may be doing nothing… or you may be learning sales.
The culture will be heavily skewed towards the personality of the loudest person in the room. With less than 20 people, this can be terrible unless that person is a well adjusted, self-aware adult (according to my comments on IG, I suspect this is less than 20% of the population)
You’ve learned how to work fast. You may not learn how to produce quality code. Which leads me to…
The mid-size company
✅ Pros
So this is how a real business works?
There’s an HR department, a career ladder and maybe even documentation.
Speed is still important but quality checks are in place. There is likely a QA team of testers who will verify your code works. There is at least some automated testing infrastructure.
You can learn from more than 1 or 2 people. The team is larger and there is more diversity of experience.
Stability is a myth but there SHOULD be more stability here. You can reasonably expect a paycheck to be on time at the very least.
❌ Cons
So this is how a business works?!
Corporate culture creep. Let’s have a meeting to prepare for another meeting 🙂.
You cannot touch everything. There are guardrails in place to prevent security breaches and lock down certain areas of the codebase (you may see this as a good thing).
NO you can’t have admin access to our database. NO, you cannot directly push code to production.
The career ladder is in place but it’s a tiny one. The CTO is only a few levels up from you which means the highest you can really go is a senior developer.
If you’re a senior then the jump to management or beyond might depend on massive growth (aka more funding) or someone quitting.
The big leagues
✅ Pros
Stocks actually mean something and can seriously increase your pay.
The career ladder is long and clear to navigate. It can even be overwhelming how many levels and grades there are.
Tried and true processes SHOULD mean less error-prone software than the startup where you could just push your code to customers on a Saturday morning.
That little badge on your LinkedIn profile just bought you years of validation. When your company has clout — so do you. If the company is big and famous enough in the tech sector then you basically get a “magic pass” for interviews for similar companies.
❌ Cons
Office politics are treacherous. Learn how to “look” good or you may not move ahead. Presentations and high visibility projects are your key to promotions.
Things are slow af. The company is 5 years away from using the technology you used at the startup you just left. There is paperwork and approvals needed for that library you want to use.
That library is called “ReactJS” 🙃
Stability is a myth. Yeah, they’re big but that doesn’t matter. If you’re laid off from here you may have a hard time “settling” for lower tier companies if you let your lifestyle inflate too much.
Skill rot is real. You’re working on a legacy codebase using some outdated language and library. When you go back on the market, it may be difficult to sell your old skills to fast paced companies (back to my point above).
The path I would choose if I could start over
Most developers do not work for FAANG aka BIG Tech. In fact, 47% of professional developers work at companies with less than 100 employees.
You are very likely to work for an amazing company writing quality software that no one has ever heard of.
I like money. I’m not going to pretend otherwise.
Maybe you do too.
To optimize for large sums of money (without working at FAANG), I would do this:
- Join a small startup to learn a breadth of technologies.
- Leave startup for a mid size company where my goal would be promotion to senior.
- Another move to a mid-size company or mature startup where I would want to be in leadership as a team lead or engineering manager.
- At the manager level, I would make it my goal to get to a big boring company as a leader to get stocks, bonuses and a chance to make a full transition into leadership and join the executive suite.
I nearly got there using this formula but, you know, layoffs.
I may have moved too fast in retrospect. I’m now back at a small startup to fill in some technical gaps and because I actually like writing code.
Humans are much more difficult to manage honestly.
Your path will be your own path. Do what makes sense to you.
Hope that’s helpful.
I write stuff and also have a coding school for the ambitious learner. Join Parsity.io — a coding school run by software engineers.