For most junior folks I meet, I recommend starting their career at a big company rather than a startup. In my experience, the dysfunctions at big companies are too much process (which you can still learn from) whereas the dysfunctions at startups are often a lack of process (functionally unknown unknowns). I've found it's much easier to solve process issues at a startup after working at a big company than vice versa.
Hmm, I’d recommend the opposite. I don’t think you’ll ever full recover if you start your career at a large company and start to believe that that kind of dysfunction is normal.
Startups have issues too, but they’re more often related to the technical parts, which you can actually do something with and learn from early in your career.
If you go to the large company what you learn is navigating their particular brand of process.
This, starting out at a startup. When you later go onto a big company. They'd be surprised by your ability to build a product end to end, from design to implementation to infrastructure.
The only part that's missing is handling the enterprise processes, multiple stakeholders, chains of approvals etc. But those are easier to learn than building something from scratch.
My gut reaction is, lots of people can build a product themselves from end to end. That someone has done this is no actually no surprise. Startups and big companies are not so isolated from one another that the denizens of big companies are ignorant about what's possible. Within just my part of the organization are people who have worked in quite diverse environments, including startups, academia, government, and even bigger companies.
I went from a startup to a big company, 25+ years ago. We buy startups. I'm kind of a jack-of-all trades. One of my roles is to serve on the technical side of taking a small company apart and figuring out how it works, so that it can at least be kept in production when the technical founders move on. Most of those products don't have a known theory of operation, until I write one for them. The term "house of cards" is overheard in the cubicles when the products have to be maintained.
I've seen the innards of those products. I've built those products, for my own side business. Being at a big company gives me a perspective from both sides, about what those products really look like when someone other than the founder has to build and maintain them.
I'm not touting the big company experience as idyllic. Most creative people bristle at bureaucracy, and can see through processes that are unnecessarily constipated. On the other hand, I think the biggest adjustment is just getting used to someone else being able to say "no" to your idea, without having a really great reason that you agree with. Over and over again. Keeping your creativity under those circumstances is hard.
I think my biggest issue with the corporate bureaucracy is that they have a lot of self inflicted issues that they keep saying they want to fix (e.g. we want to be fast and agile like a startup), only to keep repeating the same damn mistakes all over again (e.g. lets write a 300 page spec document before we begin, and start this project with a 30man team, even though there’s work for only 3 at the moment).
It’s kind of depressing when people do not want to listen to you because you don’t have the right title though.
Yes, I know how to optimize a database. Yes, I know how to build infra. Yes, I also know how to build a system used by 30k people daily.
Yes, I’m fairly certain that our system that serves 3k people does not need to cost us $30k/month when I could do 30k for $1000/month.
But nobody wants to hear that. They’re all secure in their little fiefdoms, and your boss will certainly not be rewarded for replacing their 30 people team with three of you.
> For most junior folks I meet, I recommend starting their career at a big company rather than a startup.
Yes, absolutely this. I'm surprised to see recommendations to do a startup as a first job. That's not a good idea.
A new grad who has never worked anywhere might know how to code quite well academically but they have zero exposure to how to build a commercial product. Semester-long projects at school can't teach that. That's how you end up with codebases without source control, no code reviews, no architecture, tons of security problems and so on.
Go work a few stints at large respected companies (in whatever field you are in). Absorb everything you can about how and why they do things. Understand the processes and why they exist. There's a reason for everything.
Then go do startups. You'll know how mature products are engineered, and you'll understand which parts of the processes make sense for a startup (not much, but you'll know) and you'll know how and when to slowly start introducing more maturity as the startup grows.
By now in my career I've worked at every size company, from 100K+ people multinationals to 3 person startups and just about every size and maturity point in between. I would never hire a zero-experience person to a tiny startup, that makes no sense. It would be bad for them and bad for the startup.
100% agree, and this isn’t specific to IT. Whether you want to open a grocery store or an automobile garage or an investment fund, starting your career with 5 or more years working for the big boys is really important. There are a lot of problems these big orgs have “solved”, a lot of knowledge to be acquired
Learning from doesn’t mean replicating. It’s like coding, learning from something big and industrialised is very useful , even if you’re going to code smaller apps
Note that those aren't the only two options. There are established companies that are small and have no intention of growing. Those are some of the best places to work.
I'd recommend starting at a company of 30-50. It's large enough so some processes are already there, yet small enough that your actions have impact, and you have influence on the processes. Software companies at this size have a pressure to grow, so you'll be there when processes are defined. There are specialists for some things you don't need to care about, but you meet them, and can talk to them about their roles and learn about them as well.
IMO, startups rarely have a process issue. They have a management issue. Process is bureaucracy. It adds no value but it helps to minimize the harms of over hiring which is something all big companies do in their quest for job creation.
Like, $PREVIOUS_COMPANY was a small shop. Not many customers, not many users. Handful of customer product deployments.
Even so, releases/deploys were broken most of the time.
First thing I did after I got responsibility was add dev/staging with an automated and clearly documented release process from PR -> Prod, including steps for QA etc. Nothing stupidly onerous.
Customers complaints stopped almost overnight.
People internally knew what to expect when it came to changes being released. People could see when things were released and where etc. People knew why their work might not be propagated out yet. Higher ups knew why things might take longer and why that was beneficial. We could also break down some very simple stats about how deployments/releases were going based on git tags.
Applying the limitations of a process can be useful when things have been going wrong, repeatedly, in exactly the same way.
However… there were absolutely cases where adding a process didn’t make sense and would have just been adding a process for adding a process sake.
For example, ee didn’t need tickets for every PR. If it was a ten minute fix just do it and explain it in the PR, that’s good enough.
i think this depends. for most people, i would agree. but for people who were destined to be great founders, it's a terrible idea because working for big companies will inevitably condition you to do things a certain way. if you're someone who is smart enough and truly destined to be a great founder, starting from a blank slate and finding your own unique way of doing things is how we create new processes and systems and ideas that has never been done before. i don't think mark zuckerberg would have benefitted from working for big tech before starting fb.
> When I look at conferences where I find a high percentage of the papers compelling, the stuff I find to be the most interesting is pretty evenly split between big companies and academia, with the (very) occasional paper by a startup.
This says less about who does interesting work and more about who publishes papers as part of their job.
Or if you are at a big company and come up with an extremely hypothetical idea that includes generic enough sounding claims to potentially cover cool ideas that a startup may one day actually solve and implement, you can work with an IP lawyer to file a patent and get a plaque and/or a modest cash bonus as the reward for expanding the big company's IP portfolio.
How about informal treatises? There are a couple smart, incredibly creative people who regularly get front page here with their latest project, it does stealth for a year or a couple years, then it's later followed by an "incredible journey " announcement.
Anyway, is the impression that Bell Labs was great, but not good enough for the quality of the people who built much of what we are using today, right? Maybe the bureaucracy, as well as the free time that doesn't exist in a fast moving startup, was part of the equation.
There's only big money in meaningful ownership, which is not afforded to startup employees who are merely workers with a pittance of low liquidation preference shares far down on the cap table.
And the TC "startup haircut" is a reality distortion field that makes me avoid 99.998% of startups in an employment arrangement because they want something for nothing in addition to being unlikely to survive. The truth is startups must compete with FAANG and other businesses for talent.
Background: I've worked on all side of this spectrum, left Google 10 years ago and have been working in startups since then. And now founder of a startup.
I agree that from a financial outcome perspective, the odds of making big in startups may not be in your favor.
"Interesting work" perspective may need a bit more color. No matter if you work in a big tech or startup - majority of the work is very mundane. Even if you are working on the coolest AI big-tech or startup, you are probably not doing "exciting cutting edge" work most of the time!
This is probably also why folks who join a startup looking for exciting work get bored quickly with the day-today mundaneness.
Eventually what matters from the interesting work perspective is to understand what part of the work truly gives you joy - what makes you excited about getting off the bed and do great work - even the mundane one.
The motivation could be - seeing your product being used by millions of users, solving a hard problem, sharing your research with the world, having a great work-life balance, or getting rich. Understanding that can help answer the question on what is right place for you.
One challenge I've found in big-tech is that even if the company is doing amazing work, not everyone gets an opportunity to work on the most exciting projects.
I’m only excited to work on a product that’s my baby but by my definition , startups that I’m not la founder /exec of can’t offer that.
A stranger can’t tell me how to dress my baby. So if CEO overrides me on how my product looks it’s not my baby.
If you have a baby, you don’t hyper focus on just one aspect of raising it. But even the tiniest startups rarely let engineers do things like work on marketing and customer development, so it’s not my baby.
A baby can only be taken away from you in extreme circumstances of neglect. But a startup job can lay me off at any time so it’s not my baby.
For me the only real job that fulfills this desire is bootstrapped founder. Being a startup employee is more like being a nanny than a parent.
My favorite idea from this post is that you can have a big impact on the company at a small startup, but you can have a bigger impact on the world at a big company. Moving the needle a little bit has a big impact
Drastically missed this point when I thought I’d be able to make a huge impact at a small startup.
Relative, maybe true. But now I work at a pretty big company after multiple startups, and if I improve any key metric by like 1% it’s a massive, massive impact financially (and selfishly sounds way better as an anecdote on my resume).
Have enjoyed both worlds for what they are, but I definitely didn’t understand this when I was earlier in my career.
Maybe, but improving something by 50% in a startup feels much better to me than improving it by 1% in a large company, even if the absolute number is ultimately higher.
I have mostly seen people getting what they were getting in cash+stock in big company as cash in a startup or a little bit less. As someone who has worked in companies of all the sizes, this post is not only incorrect but also written with a intention.
The only thing that's true is working in average startup is quite worse than working in average big company. But even then, it definitely becomes clear in a year or two and you can leave it. On a long enough horizon, it doesn't matter if you get bit less earning for a year.
I joined the startup I work for because it’s exciting and not because it will be valuable ( statistically it’s a lottery ticket ). We have a small team and the problems we solve are very complex and challenging. the kind of things I can do here, exposed me to learnings and knowledge I would never get from a bigger company. Big tech derisks most problems they solve because of specialized people helping solve specific problems but your opportunities to learn things across the spectrum are lower.
But milage may vary. I work for a startup where everyone is really experienced/wise and have worked in big tech too. But choosing and finding a good startup is a lot more work then cracking LC and working at a big tech company.
You'd think, but this is actually no longer true since the pandemic. Most startups are remote-friendly, but being remote removes a lot of the networking opportunities that used to be part of the startup experience.
I feel like being an fte at a startup is an even worse proposition than before.
I've seen just as many layoffs at big tech because someone randomly decided X*0.9 was the proper number of employees as I've seen from startup volatility. The equity is better in big tech though.
Most of software was web-based software but ran on Windows Server because it was only platform to support .Net Framework. Once we migrated to .Net Core and could run it on Linux, we did so because .Net on Linux is faster and free.
>Is anybody starting software on Linux using .Net?
I mean, all greenfield for day job stuff is done now in Linux. We have several ASP.Net Services that hosted 100% on Kubernetes.
I also helped out with friend startup which is using React + .Net REST API backend, runs using Docker Compose on Ubuntu 22.04 LTS.
There's almost no amount of money that would get me to work for a company larger than Dunbar's number. We all have our preferences, and mine are very clear here.
No, even in 2024. I'm in New Zealand; there are a handful of big tech companies here, and they all offer compensation approximately the same (maybe on the upper end) as other New Zealand tech companies. There aren't that many remote jobs for US companies, and often they're also trying to save money by offshoring.
Why don't the local NZ tech companies offer more, though? Mostly because they don't have the same scale, so the revenue per employee is much lower.
FAANG (as in, Meta, Apple, Amazon, Netflix, Google) make something like $1.5-$3 million USD per (white collar) employee (excluding Amazon warehouse workers).
Compare this to some well-known NZ tech companies (some of which even operate internationally!) Xero has revenue per employee of ~$150k USD. Pushpay maybe $200k USD revenue per employee. Datacom has revenue per employee of ~$130k USD.
It would bankrupt these companies to offer anything like what FAANG can offer, because they simply don't have the scale and revenue per employee to do so. Tech companies specifically have the rare ability to hugely leverage relatively few employees into huge revenue due to scaling, but only if you actually manage to scale. Most tech companies (probably even ones in the USA) don't have the kind of global scale and presence of the big tech companies.
for one, assuming it takes 5 yrs after graduation for an average engineer to reach senior at a tier-1 company (esp. Google) is simply untrue in today's environment. Besides the point that promotion is highly dependent on manager, team, org and timing (think about reorgs and project cancellation/deprioritizations), the average timeline for promotion nowadays takes longer than a few years ago.
You're just wrong, at least w.r.t. Google. Folks who are good and destined for senior in 4 years do not wait for a good manager/team/project - they seek them out and take their career into their own hands.
didn't I put "average" in the comment already? (and to be fair, this is the group the post was talking about when making the calculation). I know and have helped some brilliant engs at google reach l5 with much shorter time frame, but it's not the norm.
given you seem to be from google, there are various stats w.r.t promotion timeline that offers more insights about the average case internally