Big Companies vs. Startups (2015)
danluu.com
danluu.com
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.
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.
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.
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.
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.
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.
This says less about who does interesting work and more about who publishes papers as part of their job.
if you come up with a cool idea at a big company, you can write a paper about it and hope it gets on a 5-year roadmap.
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.
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.
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.
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.
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.
(Yes, I know, you can make decent money working for Google in Zurich. But that’s an absolutely tiny fraction of the European job market.)
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.
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.
$('body').style = `background: rgb(33, 33, 33); width: 57vw; margin: auto; line-height: 1.5; font-family: sans-serif; color: #f1f1f1; font-size: 18px;`
- the culture of the place and the vibe
- how boring / interesting is the work
- would I be able to work on things / with technologies that interests me
- would I be able to level up in that company
- would I be able to learn new things or I will stagnate
- how a position at company X will impact my future employment
- would it allow me to build useful connection
And probably there's much more but I don't remember now.
I feel like being an fte at a startup is an even worse proposition than before.
I hate working on Windows and .NET with a passion.
Why? Is it to port windows software to Linux?
Is anybody starting software on Linux using .Net?
It has been open-source and platform-agnostic for 8 years already.
Superior to what?
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.
The tools/stack used to achieve this matters, but only so much.
Yeah, the tech and stack in theory doesn't matter as much as the project, but if you don't like work with the tools you won't be as effective
It doesn't make sense to me, too. Isn't market and competition global?
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.
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