My experience is that the type of day-to-day work shifts pretty significantly as a company gets bigger, generally from "build new things" to "maintain existing things". At a big company, my view of "good engineering" was writing well-factored code and making systems robust and scalable. At a small company, my view of "good engineering" is intelligently taking shortcuts for faster prototypes when the final product is uncertain, or recognizing clever product solutions that can be built quickly to satisfy a user need.
If you want space to find a perfect solution for a well-defined technical problem, you probably want to work at a big company, and if you want messy open-ended problems where you get significant ownership over the product direction, you probably want to work at a small company.
This is well said. Writing well-factored, robust, scalable and easily-maintainable code takes more time than shortcuts. It produces a much better result also, and that time is a worthwhile (and needed) investment only after you've figured out what the final product is.
Iterate quickly, knowing you are building some some technical debt. When you figure out the product, chances are that significant portions of code have been thrown out, and now you should focus on upgrading the quality of that early code.
The engineers I've seen that struggle at early stage startups are the ones who want to go from 0 to 1 on a prototype but want to write well-factored, robust, scalable code because they are worried about how it will be maintained. I can't stress enough, to be successful at most early stage startups, the goal has to be to create a product that people love, and then figure out how to get it maintainable.
It's a tough switch both ways. The ideal experience IMHO is starting at a small company with prototyping and fast delivery that then transitions to a more established business and makes you clean up all your messes.
I like Ben's writing a lot but I think he's not very familiar with just how much better FAANG is in expectation value for your typical engineer - i.e. at current compensation levels it would be possible to achieve financial independence by 35 or 40 for somebody joining out of college. I don't think Ben has a particularly steep utility curve for money so working at a mission-driven startup is probably great for him, but the landscape out there has changed since he was last looking for work.
I'm surprised, is the salary that much bigger for FAANG in the USA? I know someone who's been approached by Google for a position in Paris, and the salary is not that great (around 110K€/year from what I heard for a Software Engineer position (more than 10 years of XP)). With that kind of salary, you can live well but you're not going to reach financial independence nor buying a house by the time you're 35/40.
I do know a lot of people making this or even much and they're not working at Google.
I was formerly confused by Google's compensation packages as well. I was focused on first year base salary and not aware of how raises, bonuses and stock packages play out.
My base salary has been higher than my classmates who joined FAANG since graduating ugrad. I jumped between non FAANG companies, they have been quite loyal. However,they are now clearly in a better financial position than myself.
1. FAANG compensates for institutional knowledge; engineers are rewarded for sticking around. my classmates that started at 100k USD 5 years ago, are now making ~175 base. They have gotten a 10% raise each year.
2. Performance bonuses. Not as common, for those who have a perf bonus the target is 15% of salary.
3. FAANG will give aggressive stock packages to engineers (which has real value from the get-go, unlike startup stock options) My classmates receive an annual stock package of 65-100% their salary.
This effectively bumps their 2018 compensation to between 225-300k USD. They are 5-6 years out of undergrad.
Historically, stock appreciation made a big difference too. (Google doubled in the last five years and quadrupled in the last ten.) Though you can't count on that going forward.
My understanding is that Google tries to pay towards the top of their local market, to get the best talent without diminishing returns. This means a lot of money in the Bay Area, but much less in, say, London, because the market for software engineers is so much weaker there.
(I work at Google, in Boston, but don't know details about how comp is figured)
Google pay is based on the market, not cost of living. So London is not nearly as good a place to be as the Bay, or even Pittsburgh (cheap housing, high programmer wages). I like how this works out with Boston pretty well!
Well, when you've been hearing stories about Googlers for 10 years, you don't imagine that you need "discipline" being a Googler to buy a house.
I may be a little bit naive, but when my friend talked me about it I thought he was going to announce something like 200K or more, because these are the stories we always hear around here.
In the end he decided to not go because he already made the same amount of money and didn't want to move his family to Paris just for two hundred bucks a month. But I don't know anything about bonuses and 10% raises everywhere, or at least he did not tell me.
$200k and up, for a Senior Software Engineer, is something that's only "frequent" in the U.S. (and varying a lot based on specific locations). With rentals costing many thousands of $ a month, significant healthcare costs, a need to have a car for each person, and no safety net.
If your friend is earning around €100k in France and not even living in Paris, then they're in a VERY privileged position. I'd say that €110k in Paris, factoring in exchange rates, CoL & taxes, can be the equivalent to a $200k salary in SV. So it's hardly a downgrade.
The sad part is that a couple decades ago, anyone in the middle class could buy a house, one income households included. Now, property values are out of whack, especially in or near any global metropolis.
google pays well only if they really want you. If you are part of the "pack", there is no need for them to pay you over market as there is an infinite amount of people drinking the google Koolaid that would love to work for them for under market salaries.
There are secondary benefits of working at a FAANG as well that translate to money over time, such as the halo effect on one's resume and the considerable education and training resources available internally at small or zero cost.
This is particularly true of people management. Small companies aren't set up to help people transition to people management whereas FAANGs have a proven track record of doing this successfully. This is why start ups end up with such shitty management. They throw long serving ICs into management roles without support and hope for the best.
Thanks! This is fair and useful criticism. I will update the post.
In the case of the particular person I originally wrote this for he wasn't looking at FAANG, and my impression is that most large companies are not competitive with them. In your experience, is that part still accurate?
I think household name internet companies that aren't FAANG per se will still offer competitive compensation and work life balance. I mean here places like Twitter, LinkedIn, Square etc. judging from my last job search and conversations with people in my network. Working at a large bank or non-tech f500 will probably be a different experience for an individual contributor.
I know there are some aggregators like comp.fyi if you want to take a closer look at some self-reported data.
The article creates a false dichotomy. A startup is not necessarily a small company and a big company isn't necessarily not a startup (depending on your definition anyway).
I understand the two categories are supposed to be generalisations but I think there's a middle ground worth mentioning: small businesses.
Large corporations are the "low risk, low reward" extreme. They stereotypically offer good job security (although this has become increasingly untrue) and career growth opportunities. They are more likely to offer stable working hours at market rate but also require a lot of red tape if you want to do anything new or exciting.
Startups are the "high risk, high reward" extreme: typically pay below market rate, terrible working hours but possibly exciting technology with lots of self-guided work and in some cases you may even be offered the equivalent of a lottery ticket.
However there are small (5-50) companies that offer more reasonable working hours and quality of life than a startup while also enabling you to "leave your mark". The difference is that unlike startups these aren't necessarily "growth oriented" but that doesn't mean they won't have an impact -- just that they don't have to grow their impact exponentially to avoid dying.
In my country (Germany) there are entire industries that are dominated by small companies. Sure, those industries aren't always the kind you can brag about (but then again neither is "I built the address widget on the Amazon checkout page" and if you're honest, nobody really wants to hear about how you worked on "Facebook for cats" or "Uber but with rickshaws" either) but they're a legitimate middle ground.
That said, I find it telling that the article seems to mostly disregard the actual question and focus on finances -- both by going into unnecessary detail about startup viability and by talking about salary and "revenue opportunities" but nothing else that's relevant to quality of life (except for multiple stabs against Microsoft, that is).
> However there are small (5-50) companies that offer more reasonable working hours and quality of life than a startup while also enabling you to "leave your mark". The difference is that unlike startups these aren't necessarily "growth oriented" but that doesn't mean they won't have an impact -- just that they don't have to grow their impact exponentially to avoid dying.
I work for such a company. They've been profitable from day 0 (100% bootstrapped). The company really takes care of its people: great benefits, reasonable hours. I've really been able to leave a mark, having a degree of autonomy in technical decisions I'd get no where else.
I think something this article misses is that it is much easier to get good information on all these things for the relatively small number of big companies than it is for the enormous number of start ups. Related to that, information you can get about start ups is much more likely to be obsoleted sometime within the duration of your employment.
To make this concrete, if you care about work / life balance, you can independently research the reputations of different big companies on that front. But for an arbitrary start up, the best you can do is often to ask them and hope you can suss out the degree of truth in their answer. Then if you do find a start up that really has good balance, it is (by definition) going to grow quickly, which often (but not always) results in that balance changing over time. Things change less quickly at big companies.
This isn't an argument in favor of either big companies or start ups, it's just an argument against the idea that "big company vs. start up does not add any information once you know what you care about"; I think it does.
If you want to know that you, personally, moved the needle, you should look for a small company. If you want the CEO to drop by at the company party, greet you, and acknowledge something awesome you did last month that he or she noticed... Small company.
There's some incredible job satisfaction perks that come with smaller companies.
But as others have pointed out, there's a difference between a "small company" and a "startup". The former is likely filling a need where it is, and is hopefully growing at a reasonable, but steady pace. A startup is a get rich quick scheme that's gonna be huge in the next couple years or wont exist anymore by then.
>> The determining factor in a startup’s success isn’t competition, it’s whether they can actually make something good enough that they don’t die.
That is so wrong. Very wrong. It's all about competition. If you work for a well-connected startup or a big corporation, it may feel like there is no competition... But the competition exists; they just never had a chance. The reality for most startups is that they're faced with impossible competition. Competition is everything.
>> You can tell whether a startup has [already] made something people want by whether it’s growing really quickly
People buy what they're told to buy. People don't actually buy what they inherently want or need - If they did, they wouldn't be so miserable and Facebook wouldn't be making so much money. "Make something people want" is a lie - The quote should be "Fool people into buying something they don't need".
I disagree. Competition is important, sure, because every customer will evaluate you against them and will only decide for your product if he finds it better. BUT, you don't need to be better in every aspect. You can represent a better alternative for only a subset of customers, and still have a big enough market share.
I think most businesses, when they are driven out by competition, actually fail at delivering value. Competitors just show them how it should be done. Unfortunately it is almost impossible to change how an existing business entity operates.
seems like a cynical rant but this is accurate. a “good enough” product is in fact only good enough because it is better than the competition on some axes and has a moat.
competition is everything. it’s no fun and not worth it to work for a startup that is withering on the vine.
More important than "big company" is the group of people you're working with at the big company. If you're working with some smart/motivated people and can avoid the management processes and overhead, it's a good combination of resources and autonomy. I worked in a group like this; we delivered projects and the managers stayed out of the way. They never said no to any training or software/hardware purchases. Then the bottom dropped out in 08....
I had written a medium article about my experiences. It based on what I see, won't be the truth for everyone
1. Freelance: It really depends on the project you accepted. There are a lot of tasks which some company can’t solve and asked for the freelancer to help. But there is also a lot of repetitive work like creating WordPress sites which don’t improve your skills at all.
2. Software Agency: If it is a small software agency, you will be expected to do MVP(Minimum Viable Product) for other startups/companies over and over. There is some software agency that helps to maintain the apps, which you can understand the issues that happened when scale.
3. Small Startup: Build fast, learn fast. Usually, don’t have enough people, you need to do everything in a breakneck pace. It is hard to get someone to guide you along the way, you have to learn from your mistakes or lousy code from the previous colleague.
4. Medium Startup: This might seems to be the perfect ground, I haven’t work for this type of company. The startups should have a standard in the software development process and able to introduce changes if it is good for the team.
5. Big Corporation: Depends on the team you joined. Chances are you are working for a small part of the whole system and don’t know how everything works when put together.
The article cites Microsoft as being bad for quality of life.
Despite I would do it again (for other reasons, NOT for quality of life), I think that my six years at Amazon have been way, way worse, and it's not just my own experience, it's what I've heard from colleagues or ex-colleagues at Microsoft, Google, etc.
If you describe Microsoft as bad for QoL, I'd describe Amazon as brutal, and Google as the pension for Amazonians.
Please, don't take any offense from what I shared, and also consider that it is still a personal point of view, not backed by large datasets or surveys.
I think it is still useful for HN to read my opinion about the subject.
Smaller companies if you want to work for free and have no benefits.
Big companies if you want the company to spend money on training you, good salaries, extra benefits and being to drop the job after going home for the day.
> Smaller companies if you want to work for free and have no benefits.
Maybe you mean startups? There are lots of small companies that pay very competitively and have great benefits. There are big companies where the pay and benefits are terrible along with forced OT or on call. I have worked at both.
I will take the small company over the big every single time, because in the small I have always been able to enact change to make things better (going as far as getting them to change the retirement provider to another one with better fund options). In a big company, even when it is clear there are problems, it can be almost impossible to push changes through.
Not even close to correct! I worked for a small company that paid me well and gave perks. I've also worked at a large company that didn't care for training and benefits.
If you want space to find a perfect solution for a well-defined technical problem, you probably want to work at a big company, and if you want messy open-ended problems where you get significant ownership over the product direction, you probably want to work at a small company.