I interviewed at Netflix several years ago. It was a fairly standard SV interview. That is - whiteboard questions on basic data structures and algorithms (I'm 40 and I still absolutely suck at those).
Failed of course :) But they put me up in a really nice hotel, so there's that. In the years since, I've definitely lost all interest in working in SV (the fact that I've failed every single interview I've had with SV companies admittedly might have something to do with it). Ah well, at my age it's time to accept that the window has closed on some things :)
I'll give Netflix this - I left the interview knowing I'd failed. I was told this, to my face, before being shown the door (The interviewer wasn't mean about it). I'll take that over being told "We'll let you know" and waiting weeks before getting a generic rejection email from HR (or even better, being ghosted).
> ...whiteboard questions on basic data structures and algorithms (I'm 40 and I still absolutely suck at those)... at my age it's time to accept that the window has closed on some things :)
If you want to learn and are willing to put in the work you can do it. It will take some number of weeks or months, but it is totally doable with reading and practice. I read and practiced for a few months before getting my job at Microsoft at age 45.
Your age isn’t the problem; I know plenty of young people that don’t want to do the work also.
You mean doing the work _again_. I had all the algorithm stuff down cold out of college and maybe for another 5 years after. Now after 20 years of rarely needing any of it and having it be a web search away when I did, I couldn't come up with any of it on demand.
"Doing the work" meaning having to study to relearn a thing that I'll maybe use sparingly in my work means the interview process is broken, not anyone's motivation.
In my short career of ~10 years I've yet to use any of those the algorithms they ask about in these interviews. I've gone from full stack on php, to java backends,to devops engineering, and never have I ever had to use any of these algorithms. I got a decent score at university where we learned it, but it's ridiculous to be asked about something I'll never use. Even if I knew the theory, and was able to ace it, it would be rare for me to use it, because it's all available in libraries, and they definitely will have done a better job than I will do.
"It's not about the solution, it's about how you get to the solution" you say, I say there's better ways of figuring out if you have problem solving skills.
For sure, there are jobs that require such theory, but many do not. And if it's not required, managers need to realise they're potentially missing out on good talent.
I think the question really is, when are these companies going to wake up to the idea that most people in their mid-40s who are successful programmers aren't writing leetcode, they're preventing junior engineers from checking in bad code, and handling large-scale outages with a few lines of analytics and config changes.
It's a specific kind of work - I assure you I spend a lot of my spare time learning and working on hobby projects. The grind of drilling on brain teasers and toy interview problems is something I have little patience for anymore.
In any case I'm doing ok these days. Most CA employers (short of, say, Google or Netflix) wouldn't offer a big enough pay increase to offset the cost of living, and besides, I hate living in cities. My current dream is to find a good paying remote gig and live someplace... remote :)
> Your age isn’t the problem; I know plenty of young people that don’t want to do the work also.
It's fascinating, coming from the world of "Strategy" Consulting, to see the byzantine, bureaucratic shibboleths of dinosaur companies recreated in SV in real time. And justified the same way, no less!
> you can do it. It will take some number of weeks or months
I think you're overstating the time needed. Passing those interviews for someone who reads HN is basically just reading Cracking the Coding Interview [1] or Programming Interviews Exposed [2] and doing the ~50% of the exercises.
Source: Worked at 2 of FAAMG and got rejected from 2 of them (because I forgot to read those book before the interview)
I don't think that's the point, capability vs. age.
It's only an indirect factor, in that of someone at a certain age, tends to focus on more important things, like what it takes to build large systems, avoid mistakes, work well with people. Shooing away folks with experience is a significant loss.
Also, just because you "do the work," it is no guarantee. Very likely they could pull a random question from a subject you haven't done recently.
It’s difficult to find the motivation to spend hundreds of hours working on imaginary problems. Kudos to you for doing this though. Many/most of the best developers I’ve ever worked with wouldn’t consider wasting their time on such nonsense. It seems to be somewhat of a litmus test for determining how subservient one is.
Honestly I respect that and prefer that as well; just tell me up front so I can move on and not waste any more time. I come from a wall street background and did break through eventually, but they just leave you hanging with no follow up. And the recruiters treat candidates like dates they are ghosting, its really not an acceptable way to treat a human being after they put days even weeks into preparing and coming in.
Why do they do this? Because there is absolutely no downside to leaving you hanging and then they have backup plans to fill the spot. Its also just emails and coordination that pays them no dividends, so they don't care. You're dead to them.
The worst is when companies post a position they never intend to even fill just to collect resumes and see their options.
The whole thing is very reminiscent of the dating scene which is not very professional.
I think you're missing the logistics needed to do this:
1) to officially reject someone usually needs asking around to build consensus that regardless of any changes to org structure, to outstanding offers, to the current set of interviews, etc. that this person will not get an offer from the company. Information is usually not precise, and often partially missing in the interview loop. Most of the information is focused around the top candidates, so "maybe" tier candidates are less discussed and decisions are not really made on them. So then you have to talk to your manager, colleagues, HR, etc. to make sure everyone is on the same page. A mistake here is costly.
2) you usually make offers to the best candidate, and if they decline, move down the list. So to reject someone means that this best candidate has accepted the offer. But they get a certain amount of time to consider it (often weeks, sometimes months), when you're frozen. Then you have to remember to reach out to the rejected candidates (I guess you put it on your calendar, and someone has to ensure this happens). To do fast rejections, you need short acceptance timelines, which is offputting to some candidates. Why risk pissing off your candidates you're giving an offer to, to make candidates you're not giving offers to happier?
3) even if your best candidate accepts, something might happen before they start (they change their mind), or you find out within a week of their joining that they're problematic. If you didn't reject other candidates, you can still approach them and say "sorry, we originally didn't have a position for you, but now we do", whereas rejecting them "we're moving on" closes that door
4) I haven't even gotten to the legal or reputation repercussions if you reject someone and do it in a way that can be interpreted as a problem. You can't let any employee deliver the news. This all needs policies and coordination.
I am going to turn 40 in a couple of years. Honestly, I have never liked the idea of 'preparing for interviews'. If I want to switch job I mostly want to apply what I have learnt so far to clear the interview.
The interview at my last two jobs (current and previous one) were both vastly based on a coding task. I always prefer this as it is closest to how I work.
Not to mention the sheer arrogance so many SV companies have thinking that what they are doing is so special it requires "10x" developers compared to every other company out there.
Well, the problem is in the Typical Man Month. 10x as many 1x developers will deliver a worse product on a longer schedule than 1x as many 10x developers.
Even if you assume 150% developers at 300% the cost, it's worth it. The number of communications channels grows quadratically with the number of people in the org. You'll come out ahead at larger organization sizes. Fewer, higher-productivity people is a huge win in software with compounding effects.
And the next problem is most markets in software are winner-takes-all or winner-takes-most. Being the runner-up to Netflix is not a fun spot to be.
The place where 1x developers do well is routine work, especially on smaller projects. For example, in-house IT work at a bank, manufacturer, etc. tends to not have those same economies.
Agreed, it seems to me often that companies will have greater resume demands for lower levels than 90 percent of the people at the organization, many times for skills that aren’t relevant for projects or business goals, it doesn’t require a tier 1 PhD in order to rush through zen desk tickets
Google and FB don't do technical interviews for internal transfers, so they insist on a uniform hiring bar. Netflix pays so much money they can demand whatever skills they want candidates to have. All 3 companies have interesting and difficult challenges.
The first time I interviewed at Amazon, the interviewer either pretended that a fire alarm was going off, or was actually going off, so they had to cut the phone interview short. When I asked if they wanted to call me back, they said they didn't think so, and that I'd be hearing from the recruiter.
I did not ever hear from that recruiter again.
It was a pretty gutting way to interview with, at the time, the company of your dreams. Plus, being 20, the weight of that call was a lot greater than it probably should've been.
> It was a pretty gutting way to interview with, at the time, the company of your dreams.
My god, I'm terribly sorry that happened. I know you're probably not looking for apologies at this point but, as someone who has conducted countless interviews as the interviewer and I've had some really bad candidates on my phone and in person...I cannot fathom doing that to a person.
If we're booked for a 30-minute interview, the candidate is getting all 30 minutes of my time. If I guess fairly early on that the candidate is not the right fit or simply didn't pass, we will talk about general tech topics or I will ask more professional background questions than I usually do (I try to keep to a 50/50 split of technical questions and "tell me about yourself"-style).
If we're booked for an hour, the candidate gets a minimum of 30 minutes, and I shoot for a bit longer. Heck, I've had some candidates turn it around in those last few minutes. The candidate has already slogged all the way to this point. I feel that the minimum level of decency I can offer is to give most or all of the time I've already said I would give. This applies even if the fire alarm goes off; the candidate is going to get each one of those minutes because it's the respectful thing to do.
Fire alarm tests happen at office campuses at regular intervals and aren’t announced beforehand.
That said, the thing to remember at all times is that the dude doing the interview is just doing his job and you’re little more than a row in a spreadsheet before and after the interview, perhaps even during, too. I wish this was taught instead of having to be hard won experience, especially since this is obvious as soon as you start interviewing people yourself.
I'm 46 and I suck at this stuff too and have still been able to land some amazingly good jobs with SV companies. You can probably brush up on the basics you'll see in a typical interview with a few weeks of practice.
I think if you don't break into major SV companies early in your career it becomes extremely hard to do so later on because people start assuming you must have already tried and failed so aren't at the right standard.
I dunno. I've had pretty good luck breaking into SF companies, and I didn't get started until 40. But I'm a glutton for punishment and went through a lot of grinding to make that happen. I'd say it depends on how flexible your mind is, and how bad you want to put in the work to get it.
I think a lot of this comes from the superstar model implicit in the VC ecosystem. One perennial theme in the SV approach to business is the idea of making a lot of bets with skewed upside. Like buying call options, the vast majority won't pay out. But if you do it right, a small handful of homeruns will make up for the rest.
I think this mindset easily carries over from the investing side into the hiring side. What is an employee, if not a risky upfront investment? Especially at a hyper-growth startup that's already bleeding cash flow. Very few 23-year olds will be productive enough to justify a quarter million in compensation. But a handful of very talented ones, when put in a high-impact position with a ton of responsibility will knock it out of the park.
The median 40-year old experienced engineer is almost certainly more competent and productive than someone fresh out of school. But Silicon Valley doesn't optimize for the median, it optimizes for fat right tails. Hire or invest in a 23-year old SWE and there's always a small chance that you be scooping up the next Elon Musk. At 40, Elon Musk definitely wasn't browsing through monster.com.
However, I believe this paradigm rests on a faulty premise. A more reliable way to create an exceptional organizations is to build an exceptional culture, not try to bottle the lightning of individual superstars. Unfortunately, that approach involves sacrificing some sacred cows of Valley ideology.
Building a strong corporate culture requires effective managers, as well as brilliant engineers. The typical founder does not fit the mold of an effective corporate manager. 28-year olds can be good managers, but a 50-year old with decades of experience is almost certainly more likely. Replacing the founder with a professional CEO is anathema is the modern "founder-friendly" culture.
Beyond that a professional manager at the helm very likely means a more button-down corporate orthodox environment. Not necessarily because it's better, but just as a byproduct of how the CEO is used to operating. Mitt Romney runs a very different shop than Adam Neumann. Put Mitt in charge of the next startup, and things are going to start looking uncomfortably more like Initrode rather than the typical hipster startup.
It also seems like pay and experience are also a huge factor. I worked at a F500 once headquartered in the midwest. I was paid really well. I brought up wanting to move out to SV and the COL adjustment they mentioned would have been a paycut.
Plus it seems like major tech companies downlevel you if you don't have relevant experience at peer companies. And salary negotiation is harder if you don't have competing offers.
I was single and was fine renting a small apartment, so the COL hit wasn't too bad. But moving out west if I had a family or owned a house would have been a major lifestyle change.
> I think if you don't break into major SV companies early in your career it becomes extremely hard to do so later on because people start assuming you must have already tried and failed so aren't at the right standard.
All the companies I know of let you interview multiple times.
This was years ago, so my memory is fuzzy on this - not sure how much I really heard after I knew I was being told no :)
There was a decision point about halfway through the day (after being grilled by engineers) where I was going to be either cut loose or sent on to interview with more senior level people and/or HR.
"How do you think you did?"
"Eh... ok, I think. I was struggling on the data structures."
"Yes, that's what I'm hearing from $ENGINEER. There are reasons for this - maybe you are out of practice, it's been a while since college, or you don't use this knowledge in your daily work. But we do deal with this stuff at Netflix, so for this reason we're not going to move forward at this time."
I was interviewing for a position doing Scala (at that point in my career, I was doing some Scala work, and it was still a fairly new and hard skill to find). The person giving me the bad news was a Lead Engineer and a proponent of Scala, seemed a bit disappointed that I knew Scala but got tripped up by low-level implementation details of some data structure (Naturally, the solution came to me later on the plane ride home). I actually had studied for this interview - but I had studied the wrong things (I was focusing on Scala-specific knowledge, but they really grilled me on fundamentals).
I think 100x is hyperbol however you slice it, run away from anyone who tells you they are a 100x developer. 10x may be achievable... but I argue that it is at least partly due to the prevailing code-base. Every competent developer is a 10x developer on a green field project just like every competent developer is a 0.1x developer on a messy legacy spaghetti-code disaster of a project (Making the differential 100x I guess).
Good developers are the ones that create code that resists the slide from a 10x code-base to a 0.1x code-base. Important skills towards this end are a good sense for code architecture and testing discipline. But also: good communication, organization, documentation, teamwork.
As an anecdote, one of my favorite developers to work with at my current workplace is a "high throughput" developer but who is personable, tests and documents the crud out of everything he does and makes it easy to extend and fix bugs in his code for other developers. One of my least favorite people to work with is also a "high throughput" developer who is a prolific creator of software, but everything created by this person is an un-maintainable, un-documented, un-tested, brittle block of procedural copy-pasta that ends up in the critical business path. And yes, this developer "snapped" about a year ago and it has been a 3 person project ever since to scramble to fix this stuff.
So, moral of the story, be very careful with pure productivity as a metric for developers. Maybe a 100x developer is really just a 5x developer who enables 20 teammates to also be 5x developers?
EDIT:
I think I maybe didn't make my point super clear. My theory is that there are two (somewhat) orthogonal dimensions that you can judge a developer by:
1) Productivity, ability to get things done, this is what I assume (maybe mistakenly) that people are talking about when talking about an Nx developer because it is the dimension that maps better to a quantifiable value.
2) Quality, ability to create code that is easy to work with and extend. This doesn't map to a Nx scale at all.
One of these qualities contributes towards a goal by compounding linearly, independent of headcount. The other compounds exponentially and also with headcount and is clearly the superior thing to think about when considering developer skill.
I don't think I'm a 100x developer or anything, but I think people underestimate the compounding interest of being a 5x-10x developer. If you architect things just right today, that can save you a lot of time tomorrow. Spending time testing today can save weeks of bug time later, which can be spent to create something useful, compounding on itself.
If we say green field is 10x, and someone is doing good things, I think that should go up over time. Getting things like builds, documentation, tests, make people more productive.
Whereas on the other hand, people who make code worse eventually start drowning in their own filth, and eventually slow down to nearly nothing. Filth also compounds.
I was involved in an accidental situation where two teams at different companies worked on the exact same project from the same starting point, each led by different developers. This was not the company's core product, but a necessary part of it (for anonymity, let's say this was the device driver for a fancy piece of hardware).
The lead developers on each selected different frameworks, used different data architectures, and set up different workflows. One project became hugely convoluted, with bugs that were very difficult to trace due to race conditions, the way the navigation worked, and choices that let to more complex code. The other team had a much simpler architecture, and was literally 95% less code. That team was able to add new features with ease, and without complex bugs cropping up out of nowhere.
In fact, that project went into "maintenance mode" because there was nothing else to add, and the lead developer could just add one or two minor things when they cropped up, and instead spent most of his time on a new unrelated project. I'd say the lead developer with the better architecture was not only 100X, but the other team's lead developer would probably lead to the downfall of that company -- both morale and development speed would plummet to 0.
Yes, but I don't think it compounds forever. There is a natural thermodynamic limit somewhere. In practice if your company has a 1x code-base you are working for a decent company. If your company has a 5x code-base, you are working for a world class company.
EDIT: On the other hand, there is no limit in the other direction and that is where companies end up in big time trouble with a 0.01x codebase.
There's a big difference between making obvious mistakes that make everything worse and making the "right" decision for a future consideration. Beyond first-hand experience (i.e. making the mistake and then recognizing it in a future, similar decision) I'd say even the best "architects" have about a 20% success rate when moving into uncharted territory. Planning for tomorrow at a strategic level is hard.
Good code builds and compounds on itself. It makes every developer on the team more productive. Its not just about the output of the single "10x" developer. Just having them on your team increases your whole team's output, even after they've left. Sometimes other "10x" developers build on top of that work.
Bad code also builds and compounds on itself. Same argument but in reverse. At some point the codebase becomes so unwieldy, someone will have to convince the manager, that a complete rewrite is arguably a better option.
> but I think people underestimate the compounding interest of being a 5x-10x developer. If you architect things just right today, that can save you a lot of time tomorrow.
I'd also argue that a lot of people over-architect solutions and they miss out capturing markets, which leads to real life economics for a business. YMMV
100X developers are the groups who turn impossibles into possibles. Some Uber engineers used to believe that Graphite was the best thing in the world and Nagios was second bar none, and they went ahead design a complex yet failing architecture for monitoring even when Uber's traffic was still tiny before Uber's M3 came along. This is what Netflix did with four engineers years before Uber's saga: https://www.quora.com/Are-Netflix-employees-really-that-good...
To those who couldn't scale out Graphite and got crushed under gruesome oncall alarms, the Netflix folks were 100x engineers.
10x developers exist. 100x developers exist. These developers don't program 10x as fast or have 1/100th of the code. They bring 10x or 100x more value as compared to other developers.
People in HN seem to forget: Code doesn't live in a vacuum. Code has purpose. Code fixes problems. 100x developers are the ones that bring true value. That value may come from a 300 LOC data structure that improves efficiency by 50% or a 30-page code architecture that improves scalability. The means to produce value are irrelevant. What matters is how much value you bring to the table.
Yeah it's not so much cranking out 100X the code as it is good decisions, good teamwork, and management that clears the road rather than throws up obstacles. Some people could not do the same, even given the same advantages, but at the same time it's pretty much impossible to produce the same kind of results in an environment without those. (Source: was on this team, but not one of the original 4)
100x in this sense is akin to doctoral level research. Think SpaceX turning the impossible into the possible with reusable rockets. Their returns on investment are now 100x greater than their competitors.
Graphite has been obsolete for 5+ years. There are commercial products with unlimited scaling, great UI, alerting and a hundreds things out of the box (see datadog and competitors).
Reed is taking that into account. Reed and Netflix have been creating software for many years. They certainly have had "Rockstars" who could bust out functional but unmaintainable code. Those people are not valuable to Netflix because Netflix is looking for long term success.
A 100x engineer exists in the context of a global company like Netflix. Because if a developer makes something just 1% better that translates into millions of dollars of savings or increased revenue because on the margins just 0.001% increase of new subscribers is thousands of customers.
Netflix doesn't win or lose customers based on programmer performance, they win by having content that people actually want to watch. I don't care if the UI is 10% less slick, as long as they have stuff I want to watch.
The only reason I've ever considered dropping Netflix is "why am I paying for this when there is nothing I want to watch". Fortunately, they have come through with some interesting content recently, and I'm still paying them. But give it a month or two with nothing I want to watch, and I'm pulling that plug, and no amount of 100x programmers will be able to keep me as a customer.
The guys doing money printing machine control software must be 100'000x engineers.
The starts at Netflix are the procurement people that ensnare good movies while drinking fine wine on Manhattan or whatever. I would not say it is an engineering company like say, IBM or Oracle.
>A 100x engineer exists in the context of a global company like Netflix. Because if a developer makes something just 1% better that translates into millions of dollars of savings or increased revenue because on the margins just 0.001% increase of new subscribers is thousands of customers.
This dumb developer multiplier has really taken on a whole bunch of different convenient meanings.
The original idea had absolutely nothing to do with company success. It's not even useful now and it was questionable before.
> Because if a developer makes something just 1% better that translates into millions of dollars of savings or increased revenue because on the margins just 0.001% increase of new subscribers is thousands of customers.
Generally, the idea of an Nx programmer is comparing programmers on their output, not their outcomes.
Otherwise you go from trying to compare levels of skill to levels of luck.
I think people often underestimate how bad the average programmer is out there.
It’s apparently not unheard of to have C programmers who don’t know function pointers or even structs work, or who don’t know what a build system is (only ever used an IDE).
There are many people who will just plug stuff together until it works somehow, without understanding why or how it works in the end.
Indeed, have a little trip to the outsourcing world, where you're paying for a team of experienced developers, some of whom have never developed anything before.
That's the antithesis of HN of course. Most commenters here probably work for tech companies.
It is depressing that people are happy to just throw anecdotal evidence around without even defining what metric they multiply by 10x or 100x.
There is some literature on it. For example, this blog post [0] contains some references.
I have only read Peopleware. It says 10x is the difference from worst to best in terms of time and number of defects across a few hundred programmers. Also interesting: Within the same organization, there was only a difference of 30%. This means the environment is much more important than the skill, experience, or personality of a programmer.
I cannot find any studies after 2000. Most of the data is even older. The Peopleware data is from Cobol, Fortran, Pascal, and C.
If 100x is from 100x the throughput of a 0.1x developer, in reality some developers are <0 net contribution. If I'm a 10x and the baseline/worst is -5x, then I need to start saying I'm a -50x developer.
> in reality some developers are <0 net contribution
Yes, sadly this is honestly true. Especially if you take into account the time spent to manage them, and then cleaning up after them, a person can easily be negative net contribution.
Honestly that's one of the ways I feel I've made a hiring mistake. It's okay to invest more time than it would take me to do a task to teach someone else to do a task, knowing that they can learn and improve, and eventually that investment of time will pay off. Eventually they should be teaching me things too, and doing things without needing any help. But if someone is constantly taking more time, and it doesn't look like that investment is getting paid off, I get nervous.
Then when the team starts slowing down, management will become even more resistant to getting rid of people, because you need to "go faster" which in their minds is simply some matter of headcount.
I feel like this can actually happen in practice... Your code sucks and then you hire a 10x developer who is really good a duct taping everything in your code to work with nasty hacks. Good times!
I have one friend and he programs at least ten times as fast as I do (in typing). I can barely keep it up with reading.
And in my CS class I was in the top quarter percentile, he was in the top 1%. The difference is big. They type code as fast as I'm typing this comment, while having a sane architecture.
I very much believe in 100x developers related to the .2 or -.5 x developer. These people have the potential to accomplish little or even slow everyone else down by focusing on the wrong things, and writing difficult to maintain code.
In that sense a 1x developer is infinitely more efficient than someone who is a net loss to the team and 100x is nothing.
I do agree that it would be very difficult to be 100x better than someone who has decent technical skills and generally displays common sense and stays focused on useful paths.
> Good developers are the ones that create code that resists the slide from a 10x code-base to a 0.1x code-base.
10x is 100 times bigger than 0.1x FWIW.
> but I argue that it is at least partly due to the prevailing code-base.
Its almost exclusively because of the prevailing code-base. We can't forget that the prevailing code base was built by developers of varying skills. You can have "100x" developers build it or you can have "0.1x" developers build it.
> One of my least favorite people to work with is also a "high throughput" developer who is a prolific creator of software, but everything created by this person is an un-maintainable, un-documented, un-tested, brittle block of procedural copy-pasta that ends up in the critical business path. And yes, this developer "snapped" about a year ago and it has been a 3 person project ever since to scramble to fix this stuff.
Was this person the aforementioned "Rick" from this article?
> Every competent developer is a 10x developer on a green field project just like every competent developer is a 0.1x developer on a messy legacy spaghetti-code disaster of a project (Making the differential 100x I guess).
I don't know if it's 100x or 10x, but I assume that's just a figure of speech and used for effect rather than stated as an objective quantity.
"The thing with "10x" developers, is often times they (or a group of them) can do things that the average developer can't. Take Netflix as an example, would they have even started on the whole cloud thing if they had average engineers? Or if they did, would they have been thought leaders in the space for so many years.
> Maybe a 100x developer is really just a 5x developer who enables 20 teammates to also be 5x developers?
Or just a developer that makes the lives of 2000 engineers a little bit easier.
I think one misconception is the range. I think that the range is dependent on the situation both immediate and long term. The immediate situation’s range is more bounded. The bottom of the range can veer into the negative and the top can go way beyond 10x. It’s more a phase change at that point.
Example of >> 10x phase change: Jeff Dean and Sanjay Ghemawat with MapReduce and BigTable.
For the negative, I think we all have seen the programmer who is useless and that actually requires other people to replace their work.
It all depends on the problem space: if the deliverable is a program that produces a proof of Fermat’s last theorem then Andrew Wiles would have been a 1000000000000000x (or Inf) engineer on that project at a certain point in time...
Also, there are entirely different “10x engineers” being talked about as one and the same here. The copy-paste spaghetti guy probably couldn’t even get a job at Netflix...
Unrelated to your point but I think a lot of people who write really bad code are the only choice because they are experts in another essential domain, and there aren't a whole lot of experts in both that domain and writing software. So you do what you can. There is a reason that code written by EE's is often derided as terrible.
Er, isn't it a bit of a strawman to suggest that people that talk about 100x engineers are talking about 100x productivity?
Nobody I've met thinks that there are a set of people that believe there are "developers that write code 100x faster than other developers" but when people write comments on HN they act like this is a really common belief and only they are able to spot that it's not sane...
Everybody that I've met considers technical prowess more along the lines of: the ability to write complicated code which others would find difficult to do, the ability to simplify a problem in order that it can be solved without complexity, the ability to optimize the performance of something in order that it uses less resources, the ability to come up with an innovative design that others wouldn't have thought of, the ability to explain technical ideas to their colleagues in a way that enables others to achieve more, the ability to balance short-term goals against a long-term plan, etc.
I left Netflix about 2 months ago after over 5 years working there. Overall I would say the average developer there is about on par with any other company I have worked at. But the great ones were truly, astonishingly, great.
All of the above, the great qualities came in many different ways. But I think a common theme was the ability to increase leverage and have a multiplicative effect.
Sometimes this meant being an expert on a certain technology to better leverage it (especially important on teams that need to go deep such as video encoding, CDNs, television hardware, etc). Or looking at needs and pain points across teams and building high level solutions that raised productivity across the board. A willingness to question things and push for better ideas and really seeing them through. This could be at a technical or human level. Some people were really good at improving team cohesion and empathy, causing teammates to work more effectively. Others pushed hard for internal education and sharing learnings to help raise everyone's game. The culture of the company helped enable all of this. Some people excelled at improving culture, which has a leveraging effect as well.
I have seen the above at just about every company I've worked at. But I would say that at Netflix people took it further and were more successful than I've seen elsewhere.
That's just my experience, I've only worked at a handful of companies. I have no doubt many companies have employees that do all of this.
Could you elaborate a bit on where the bulk of the technical effort is being applied at Netflix these days, aside from recommendations and improved scaling? From the point of view of the user, the product has seemed fairly static for the past several years. But obviously there must be a lot going on behind the scenes.
I assume the broad buckets of continuous effort are "get the right content to the right users", "add more content" (which may involve some engineering support via e.g. analytics), and "scale it up to effectively reach more users". It seems like Netflix has fully shifted from a chaotic "zero-to-one" innovation state to a more mature "continuously aggregate marginal gains on top of a solid foundation". Is that a fair characterization?
The only conceivable "problem" with the above from the engineer's POV is that (1) individual contributions might feel less exciting and (2) it becomes progressively harder to find ways to move the needle. Though I would assume this is a problem at virtually any mature technology company. On the bright side, a marginal gain applied at a massive scale probably feels pretty rewarding.
I can definitely say a lot of focus and innovation is happening on the studio side of Netflix. This is where tools for casting, managing the logistics of filming, budgeting, etc are being built in order to scale up Netflix's ability to create content. I spent the last 2.5 years of my time on this side. https://jobs.netflix.com/teams/studio-technologies
My first 3 years were on the consumer side, working on the TV client. I'm a bit more out of touch here. But I'd still say interesting engineering is happening here. I agree sometimes it is "marginal gain at massive scale", but that can be really satisfying and challenging in its own right. There are many different teams focusing on a lot of different things here. The consumer side is pretty much entirely driven by A/B tests. So teams might take on a big idea, but it can be hard for those to beat out the established norm sometimes. That may be a factor in why you feel the product is "static". Also the wide range of devices and internet connections can segment engineering. Many efforts apply across the board, but other projects might only apply to say high end game consoles for example.
Regarding "get the right content to the right users", I don't have much experience with that. That's more in the domain of backend teams. I do know they also do A/B tests to guide innovation, but that's about all I can confidently say there.
I don't think I can effectively answer this one. I fall right into the "average developer" bucket and have never worked at Google. So I don't think I have the proper exposure on this.
There are many reasons I left, but mostly I'm interested in trying new things. I want to either pursue freelancing or find a role at a small company. Two things I've never really done before.
As for the culture. It's not nearly as cutthroat as people assume it is. But it's true that Netflix wants you to perform well. This gets balanced out with good communication from management and your peers. Netflix emphasizes candid feedback, so you pretty much always know where you stand. At least, in my experience. It's a big company, so mileage may vary.
In my opinion a huge role in the raise of IT people salary is their tendency to brag about their salary, one way or another.
For better or for worse, this lead to discussions about salary, negotiating practices, and to people looking elsewhere.
I sometimes speak with people that work in other fields and many of them have zero clue about these topics, whereas in most IT-related discussion boards (whether it's HN, reddit or whatever) there's a related thread in an almost periodic cadence. We in IT are kinda obsessed with these topics (we're discussing this on a VC-owned discussion board after all).
On a different topic: is there any data for salaries in other fields for the same companies (FAANG and similar) ? It'd be interesting to see how much earns, for example, a lawyer in such companies.
One reason for that is way more variability in developer compensation. A company hiring a senior SWE in SF might be paying 130k or 400k. But until recently there wasn’t much transparency.
My buddy is a nurse in Bay Area with a CRNA, it’s pretty much understood you make 225k plus any overtime so there’s not much more to discuss.
$225k for a nurse? And I thought there was a lot of desperaity of tech wages between Europe and the US... The average salary of a nurse in the UK is £25,000.
I think there is a lot of truth to this. Big Law is a great example of this, where the nearly every firm operates in lockstep on the Craveth Scale[1]. If one firm increases salary, every other firm will for for same cycle.
I think you've got cause and effect backwards. The rocket-ship rise of IT salaries is what has everyone in the field discussing salaries. The topic wouldn't even come up if it was pretty well-bounded to $80k/year for a SWE with 5 years of experience.
However, in our field you end up with people who have sat around in their same SWE job at DuPont/Lockheed or some other boomer company for 10 years and are making $80k while new grads are hitting $150k+ TC going into Google and 7 years experienced engineers can hit $450k TC at the big tech companies.
A tech company with a good moat can easily extract millions in value out of the work of SWEs building more crap for them. That's why they are willing to compete for competent engineers. If they didn't bring in that kind of cash, the companies just wouldn't pay for it, period.
Employees talking money with each other has zero bearing on what a company is willing to offer. I worked at a hotel in high school and everyone knew the hourly pay of every position in the hotel. It didn't get us raises.
i think you'll find that the work and value being created is required to support the high salaries. Imagine a super-market checkout person or a waiter - i'm sure they talk about their wages too. Why don't they get higher wages just by talking and negotiating?
Well scarcity is generally the best indicator. For a long time software developers have been a scarce resource and therefore hiring good engineers is competitive.
It's true that some market forces and potential value of what is created are factors else nobody would pay for the premium, but he generally scarcity rules here.
For a contrived example, why is caviar astronomically more expensive than bread? It's not the cost of production. It's not the fact that people like it more than bread.
> On a different topic: is there any data for salaries in other fields for the same companies (FAANG and similar) ? It'd be interesting to see how much earns, for example, a lawyer in such companies.
The government requires that companies publicly report salary data for H1Bs. You can google for that data. Here's one site https://h1bsalary.online/
>> In my opinion a huge role in the raise of IT people salary is their tendency to brag about their salary, one way or another.
In my opinion a huge role in the raise of tech salaries is simply constrained real-estate in the bay area. Just looking at rents and homeprices, I wonder if cost-of-living adjusted salaries have actually gone up much in the bay area.
However...it does set the bar for the country overall, which is good for everyone.
Secondly, i'm not sure about brag but I think tech companies have realized that skin-in-the-game has resulted in shared success. This is also great for everyone -- companies, and workers.
Netflix seems to have the best tech, at least from a user perspective in Mexico.
On my LG tv their app is the best, by far. I wish all the other services just served their content through Netflix. All new content has 4K HDR with Dolby vision/atmos and streaming is quite fast on my 200 Mbps fiber connection.
HBO Go is pure garbage. The app is clunky and has way worse UX than Netflix. The streaming quality is absolute crap. There's banding everywhere and the image seems to pause for a frame or two every second or so. This is extremely annoying when the camera pans. Game of Thrones doesn't even have 5.1 sound. No English subs (for those shows where sound is not so great). Last time I checked there was no 4K HDR.
The Amazon Prime app has better UX than HBO Go and has much better streaming quality, but the experience is still quite mediocre. The whole UI seems from 10 years ago. When you're binging a show they always insert ads in between episodes and the app forces you to skip recaps and the show intro every time. The quality of the streaming degrades quite often for a couple of seconds. Also, no English subs. They also have an HBO channel but it suffers from the same quality issues as HBO Go.
I haven't tried Apple+ and Disney is not available yet.
Yes I have bad internet at my house and I can tell which app has better engineering (buffering, local storage optimization, video definition downgrading/upgrading based on throughput, etc.)
Netflix works great with a slow or intermittent connection, they've clearly optimized it.
My rank for engineering quality (not UX) are:
(1) Netflix, (2) Amazon Prime, (3) Disney+, (4) HBO Go (I get a stop-the-world spinning icon every minute at times)
HBO Go is so bad that I have to get out a mobile device and "save offline" and cast it to the TV just to watch something.
Apple TV device UI is pretty great as you'd expect, but the core tech is buggy - sometimes video will just stop playing for no apparent reason, or the audio system will die and you'll have to reboot the device.
Apple TV app on macOS Catalina is a disaster zone. iTunes was pretty bad but the new app manages to be just as confusing, with fewer features, and worse of all it crashes immediately and reliably if you do something totally unexpected, like plugging your laptop into a TV via HDMI. Ridiculous.
> Apple TV device UI is pretty great as you'd expect, but the core tech is buggy
I never owned an Apple TV but my 1st gen Nvidia Shield TV was super solid. I only stopped using it because it didn't support Dolby Vision and the apps I use are on my LG tv anyway.
> Eventually, Rick snapped. Once he departed the company, the team of supposedly “mediocre” engineers redid his work to make it more elegant and efficient: “We didn’t have any mad geniuses building everything from scratch. But our productivity was never higher.”
A silly strawman. I'd firmly put someone like this in the bucket of "not that effective."
Yeah, if you're not focused, and you're not even writing documentation, there is no way you should be considered very good at your job.
Early in my career I had someone that kept telling me "we don't write documentation because nobody will read it". I'll never put up with that again. You can take 30mins to write a confluence page describing the context, the solution, and comparison to other solutions and why this one was picked. It will save the company many hours later when someone else has to pick up your stuff.
Different companies have different needs, early stage startups would probably fire you for spending too much time on documentation because they're paying you to make progress on their product and you're usually working alone anyways or very small teams with heavy interaction. So not only would nobody ready it, it would become outdated within a month.
That was my thought too. The problem here isnt with "superstar developers", it's with people who don't understand the work trying to label people as such and doing a piss-poor job. Someone who doesn't write code others can read isn't even a mediocre developer, hes a bad one.
It's arguments like these that make me very skeptical of the claims that 10x developers don't exist, as I've yet to hear such an argument that doesn't fail at basic critical thinking.
That being said, I fully agree with the article's framing of this view as simply saying that talented developers need a healthy working environment in order to reach their potential.
> That being said, I fully agree with the article's framing of this view as simply saying that talented developers need a healthy working environment in order to reach their potential.
The flip side being, a talented developer might not want to join a company where an engineer like that has been the top dog (and the people below haven’t been around enough to have an idea what being a senior engineer is about). It just ends in tears and frustration for the ”talented developer.”
That's a great quote. I'll have to check that book out. Is it worth the read? I think about the psychology involved and our brains as part of the system far more often than I ever see it discussed.
I have no opinion on Disney, as it's not available in my country, but generally for me Netflix's latency from the play button is much better than youtube's or HBO Go's. HBO's app / web page is full of bugs that would be probably easy to fix (it gets stuck even after I turn my new Samsung TV off and on again, I need to force quit the app).
At the same time while youtube offline video watching always works for me on my iPad Pro, Netflix often ,,forgets'' the downloaded content.
If I look at the storytelling/direction itself though, I find HBO better than Netflix (especially with politics ruining the stories). Can somebody tell me a new Netflix serie that comes close to House of Cards?
Not Netflix, but if you liked House of Cards, may I suggest both Succession and Billions? I love analysis of power and those shows are in a class of their own regarding that, very similar to HoC, but I'd say better.
I love both of them, and both of them are on HBO in my country, just like Boardwalk Empire (which is in the same genre and also amazingly executed, though it's not a new series).
Agreed re bugs. Netflix runs consistently more smoothly than many streaming competitors, and it really makes a difference. It's much easier to watch a slightly worse show on Netflix and at times I'm willing to make that tradeoff just for the reliability of the app.
HBO Go in Latin America (which is the streaming service, akin to HBO Now in the US) is bad beyond belief. You’d think Netflix’s interface is super basic and obvious, until you need to use HBO’s pile of hot garbage.
> Can somebody tell me a new Netflix serie that comes close to House of Cards?
I enjoyed HOC, especially the earlier seasons. A few shows (none of them new though) available on Netflix that I found equivalently good, each got better as they went:
Bloodline[0] - starts slow & builds, I didn't expect to like it as much as I did. Very under the radar, very good.
The OA[1] - similar to bloodline, in that I didn't expect to like it & it got better with each episode/season as the story progressed.
Colony[2] - got cancelled so ends on on cliff-hanger (an exhilarating one), but if you like sci-fi/aliens it'll deliver.
2nd season was ruined by politics and lost lots of viewers/ratings, which meant that Netflix had to stop producing it. They should just kept the 2 original Takeshi Kovacs.
Ozark I think is far and away the best Netflix-created fiction content. It's actual HBO-level prestige TV, which is hard to say about any of the other non-documentary stuff from Netflix.
If you get into it, Netflix also carries a bunch of good Korean dramas, which tend to have a lot of episodes and honestly just seem to have much more effort put into them than most American TV. Signal and Itaewon Class are two of my current favorites.
Not OP but I agree with them and your question is great.
Had I written what OP said, I would be clarifying that I mean "pushing personal politics via messaging in the show." HoC is remarkably a-political in that respect. They portray the power struggles and corruption fairly equally across the board regardless of party affiliation. More so than party though is simply they show how hollow the beliefs really are. It's about power and manipulation, not so much about policy. Of course such wide statements are nearly guaranteed to be wrong applied to some politicians, but as someone who has been all over the map politically throughout my life, they absolutely nail the main themes that I've noticed nearly everywhere.
I think the article improperly conflates Rick and a 10x developer.
I have an essay I wrote a while ago lying around that talks about the Intermediate Programmer - Rick sounds like a perfect example. The IP is the one that has the gumption to try out various inventions and experiments, usually focusing on the trying to solve a problem with a perfect Beautiful Machine, but that doesn't yet have the perspective to know how code needs will change in the future, and how to design code to make it easy to change.
I've had people on my teams that can code circles around me in various ways, and whose gorgeous intricate multi-level generics-heavy code was also regularly deleted a few weeks/months later in favor of something literal, boilerplate, small, and easy to understand and change. (Don't get me wrong, multi-level generics-heavy code is GOOD in some cases, but you have to know when.)
The good IPs learn from these lessons without letting their ego get in the way, and eventually become advanced programmers. The bad ones claim they are advanced and cause problems. Sounds like Rick was a 0.5x developer or less.
Assuming you're working with smart people, they might recognize this about you over time and it could negatively impact your advancement opportunities and your employability. They're paying you to serve their interests - maybe you could figure out how to make it fun to do that efficiently.
Failed of course :) But they put me up in a really nice hotel, so there's that. In the years since, I've definitely lost all interest in working in SV (the fact that I've failed every single interview I've had with SV companies admittedly might have something to do with it). Ah well, at my age it's time to accept that the window has closed on some things :)
I'll give Netflix this - I left the interview knowing I'd failed. I was told this, to my face, before being shown the door (The interviewer wasn't mean about it). I'll take that over being told "We'll let you know" and waiting weeks before getting a generic rejection email from HR (or even better, being ghosted).
If you want to learn and are willing to put in the work you can do it. It will take some number of weeks or months, but it is totally doable with reading and practice. I read and practiced for a few months before getting my job at Microsoft at age 45.
Your age isn’t the problem; I know plenty of young people that don’t want to do the work also.
"Doing the work" meaning having to study to relearn a thing that I'll maybe use sparingly in my work means the interview process is broken, not anyone's motivation.
"It's not about the solution, it's about how you get to the solution" you say, I say there's better ways of figuring out if you have problem solving skills.
For sure, there are jobs that require such theory, but many do not. And if it's not required, managers need to realise they're potentially missing out on good talent.
In any case I'm doing ok these days. Most CA employers (short of, say, Google or Netflix) wouldn't offer a big enough pay increase to offset the cost of living, and besides, I hate living in cities. My current dream is to find a good paying remote gig and live someplace... remote :)
It's fascinating, coming from the world of "Strategy" Consulting, to see the byzantine, bureaucratic shibboleths of dinosaur companies recreated in SV in real time. And justified the same way, no less!
I think you're overstating the time needed. Passing those interviews for someone who reads HN is basically just reading Cracking the Coding Interview [1] or Programming Interviews Exposed [2] and doing the ~50% of the exercises.
Source: Worked at 2 of FAAMG and got rejected from 2 of them (because I forgot to read those book before the interview)
[1] https://amzn.to/30g9vRQ [2] https://amzn.to/3iaZknD
It's only an indirect factor, in that of someone at a certain age, tends to focus on more important things, like what it takes to build large systems, avoid mistakes, work well with people. Shooing away folks with experience is a significant loss.
Also, just because you "do the work," it is no guarantee. Very likely they could pull a random question from a subject you haven't done recently.
Any of the fancier in person practice stuff? I'm always curious what people find most effective.
What resources did you use and what resources would you recommend?
Why do they do this? Because there is absolutely no downside to leaving you hanging and then they have backup plans to fill the spot. Its also just emails and coordination that pays them no dividends, so they don't care. You're dead to them.
The worst is when companies post a position they never intend to even fill just to collect resumes and see their options.
The whole thing is very reminiscent of the dating scene which is not very professional.
1) to officially reject someone usually needs asking around to build consensus that regardless of any changes to org structure, to outstanding offers, to the current set of interviews, etc. that this person will not get an offer from the company. Information is usually not precise, and often partially missing in the interview loop. Most of the information is focused around the top candidates, so "maybe" tier candidates are less discussed and decisions are not really made on them. So then you have to talk to your manager, colleagues, HR, etc. to make sure everyone is on the same page. A mistake here is costly.
2) you usually make offers to the best candidate, and if they decline, move down the list. So to reject someone means that this best candidate has accepted the offer. But they get a certain amount of time to consider it (often weeks, sometimes months), when you're frozen. Then you have to remember to reach out to the rejected candidates (I guess you put it on your calendar, and someone has to ensure this happens). To do fast rejections, you need short acceptance timelines, which is offputting to some candidates. Why risk pissing off your candidates you're giving an offer to, to make candidates you're not giving offers to happier?
3) even if your best candidate accepts, something might happen before they start (they change their mind), or you find out within a week of their joining that they're problematic. If you didn't reject other candidates, you can still approach them and say "sorry, we originally didn't have a position for you, but now we do", whereas rejecting them "we're moving on" closes that door
4) I haven't even gotten to the legal or reputation repercussions if you reject someone and do it in a way that can be interpreted as a problem. You can't let any employee deliver the news. This all needs policies and coordination.
The interview at my last two jobs (current and previous one) were both vastly based on a coding task. I always prefer this as it is closest to how I work.
Even if you assume 150% developers at 300% the cost, it's worth it. The number of communications channels grows quadratically with the number of people in the org. You'll come out ahead at larger organization sizes. Fewer, higher-productivity people is a huge win in software with compounding effects.
And the next problem is most markets in software are winner-takes-all or winner-takes-most. Being the runner-up to Netflix is not a fun spot to be.
The place where 1x developers do well is routine work, especially on smaller projects. For example, in-house IT work at a bank, manufacturer, etc. tends to not have those same economies.
I did not ever hear from that recruiter again.
It was a pretty gutting way to interview with, at the time, the company of your dreams. Plus, being 20, the weight of that call was a lot greater than it probably should've been.
My god, I'm terribly sorry that happened. I know you're probably not looking for apologies at this point but, as someone who has conducted countless interviews as the interviewer and I've had some really bad candidates on my phone and in person...I cannot fathom doing that to a person.
If we're booked for a 30-minute interview, the candidate is getting all 30 minutes of my time. If I guess fairly early on that the candidate is not the right fit or simply didn't pass, we will talk about general tech topics or I will ask more professional background questions than I usually do (I try to keep to a 50/50 split of technical questions and "tell me about yourself"-style).
If we're booked for an hour, the candidate gets a minimum of 30 minutes, and I shoot for a bit longer. Heck, I've had some candidates turn it around in those last few minutes. The candidate has already slogged all the way to this point. I feel that the minimum level of decency I can offer is to give most or all of the time I've already said I would give. This applies even if the fire alarm goes off; the candidate is going to get each one of those minutes because it's the respectful thing to do.
That said, the thing to remember at all times is that the dude doing the interview is just doing his job and you’re little more than a row in a spreadsheet before and after the interview, perhaps even during, too. I wish this was taught instead of having to be hard won experience, especially since this is obvious as soon as you start interviewing people yourself.
I think this mindset easily carries over from the investing side into the hiring side. What is an employee, if not a risky upfront investment? Especially at a hyper-growth startup that's already bleeding cash flow. Very few 23-year olds will be productive enough to justify a quarter million in compensation. But a handful of very talented ones, when put in a high-impact position with a ton of responsibility will knock it out of the park.
The median 40-year old experienced engineer is almost certainly more competent and productive than someone fresh out of school. But Silicon Valley doesn't optimize for the median, it optimizes for fat right tails. Hire or invest in a 23-year old SWE and there's always a small chance that you be scooping up the next Elon Musk. At 40, Elon Musk definitely wasn't browsing through monster.com.
However, I believe this paradigm rests on a faulty premise. A more reliable way to create an exceptional organizations is to build an exceptional culture, not try to bottle the lightning of individual superstars. Unfortunately, that approach involves sacrificing some sacred cows of Valley ideology.
Building a strong corporate culture requires effective managers, as well as brilliant engineers. The typical founder does not fit the mold of an effective corporate manager. 28-year olds can be good managers, but a 50-year old with decades of experience is almost certainly more likely. Replacing the founder with a professional CEO is anathema is the modern "founder-friendly" culture.
Beyond that a professional manager at the helm very likely means a more button-down corporate orthodox environment. Not necessarily because it's better, but just as a byproduct of how the CEO is used to operating. Mitt Romney runs a very different shop than Adam Neumann. Put Mitt in charge of the next startup, and things are going to start looking uncomfortably more like Initrode rather than the typical hipster startup.
Plus it seems like major tech companies downlevel you if you don't have relevant experience at peer companies. And salary negotiation is harder if you don't have competing offers.
I was single and was fine renting a small apartment, so the COL hit wasn't too bad. But moving out west if I had a family or owned a house would have been a major lifestyle change.
All the companies I know of let you interview multiple times.
There was a decision point about halfway through the day (after being grilled by engineers) where I was going to be either cut loose or sent on to interview with more senior level people and/or HR.
"How do you think you did?"
"Eh... ok, I think. I was struggling on the data structures."
"Yes, that's what I'm hearing from $ENGINEER. There are reasons for this - maybe you are out of practice, it's been a while since college, or you don't use this knowledge in your daily work. But we do deal with this stuff at Netflix, so for this reason we're not going to move forward at this time."
I was interviewing for a position doing Scala (at that point in my career, I was doing some Scala work, and it was still a fairly new and hard skill to find). The person giving me the bad news was a Lead Engineer and a proponent of Scala, seemed a bit disappointed that I knew Scala but got tripped up by low-level implementation details of some data structure (Naturally, the solution came to me later on the plane ride home). I actually had studied for this interview - but I had studied the wrong things (I was focusing on Scala-specific knowledge, but they really grilled me on fundamentals).
Good developers are the ones that create code that resists the slide from a 10x code-base to a 0.1x code-base. Important skills towards this end are a good sense for code architecture and testing discipline. But also: good communication, organization, documentation, teamwork.
As an anecdote, one of my favorite developers to work with at my current workplace is a "high throughput" developer but who is personable, tests and documents the crud out of everything he does and makes it easy to extend and fix bugs in his code for other developers. One of my least favorite people to work with is also a "high throughput" developer who is a prolific creator of software, but everything created by this person is an un-maintainable, un-documented, un-tested, brittle block of procedural copy-pasta that ends up in the critical business path. And yes, this developer "snapped" about a year ago and it has been a 3 person project ever since to scramble to fix this stuff.
So, moral of the story, be very careful with pure productivity as a metric for developers. Maybe a 100x developer is really just a 5x developer who enables 20 teammates to also be 5x developers?
EDIT: I think I maybe didn't make my point super clear. My theory is that there are two (somewhat) orthogonal dimensions that you can judge a developer by:
1) Productivity, ability to get things done, this is what I assume (maybe mistakenly) that people are talking about when talking about an Nx developer because it is the dimension that maps better to a quantifiable value.
2) Quality, ability to create code that is easy to work with and extend. This doesn't map to a Nx scale at all.
One of these qualities contributes towards a goal by compounding linearly, independent of headcount. The other compounds exponentially and also with headcount and is clearly the superior thing to think about when considering developer skill.
If we say green field is 10x, and someone is doing good things, I think that should go up over time. Getting things like builds, documentation, tests, make people more productive.
Whereas on the other hand, people who make code worse eventually start drowning in their own filth, and eventually slow down to nearly nothing. Filth also compounds.
The lead developers on each selected different frameworks, used different data architectures, and set up different workflows. One project became hugely convoluted, with bugs that were very difficult to trace due to race conditions, the way the navigation worked, and choices that let to more complex code. The other team had a much simpler architecture, and was literally 95% less code. That team was able to add new features with ease, and without complex bugs cropping up out of nowhere.
In fact, that project went into "maintenance mode" because there was nothing else to add, and the lead developer could just add one or two minor things when they cropped up, and instead spent most of his time on a new unrelated project. I'd say the lead developer with the better architecture was not only 100X, but the other team's lead developer would probably lead to the downfall of that company -- both morale and development speed would plummet to 0.
EDIT: On the other hand, there is no limit in the other direction and that is where companies end up in big time trouble with a 0.01x codebase.
Good code builds and compounds on itself. It makes every developer on the team more productive. Its not just about the output of the single "10x" developer. Just having them on your team increases your whole team's output, even after they've left. Sometimes other "10x" developers build on top of that work.
Bad code also builds and compounds on itself. Same argument but in reverse. At some point the codebase becomes so unwieldy, someone will have to convince the manager, that a complete rewrite is arguably a better option.
I'd also argue that a lot of people over-architect solutions and they miss out capturing markets, which leads to real life economics for a business. YMMV
To those who couldn't scale out Graphite and got crushed under gruesome oncall alarms, the Netflix folks were 100x engineers.
10x developers exist. 100x developers exist. These developers don't program 10x as fast or have 1/100th of the code. They bring 10x or 100x more value as compared to other developers.
People in HN seem to forget: Code doesn't live in a vacuum. Code has purpose. Code fixes problems. 100x developers are the ones that bring true value. That value may come from a 300 LOC data structure that improves efficiency by 50% or a 30-page code architecture that improves scalability. The means to produce value are irrelevant. What matters is how much value you bring to the table.
A 100x engineer exists in the context of a global company like Netflix. Because if a developer makes something just 1% better that translates into millions of dollars of savings or increased revenue because on the margins just 0.001% increase of new subscribers is thousands of customers.
The only reason I've ever considered dropping Netflix is "why am I paying for this when there is nothing I want to watch". Fortunately, they have come through with some interesting content recently, and I'm still paying them. But give it a month or two with nothing I want to watch, and I'm pulling that plug, and no amount of 100x programmers will be able to keep me as a customer.
The starts at Netflix are the procurement people that ensnare good movies while drinking fine wine on Manhattan or whatever. I would not say it is an engineering company like say, IBM or Oracle.
This dumb developer multiplier has really taken on a whole bunch of different convenient meanings.
The original idea had absolutely nothing to do with company success. It's not even useful now and it was questionable before.
Generally, the idea of an Nx programmer is comparing programmers on their output, not their outcomes.
Otherwise you go from trying to compare levels of skill to levels of luck.
It’s apparently not unheard of to have C programmers who don’t know function pointers or even structs work, or who don’t know what a build system is (only ever used an IDE).
There are many people who will just plug stuff together until it works somehow, without understanding why or how it works in the end.
That's the antithesis of HN of course. Most commenters here probably work for tech companies.
There is some literature on it. For example, this blog post [0] contains some references.
I have only read Peopleware. It says 10x is the difference from worst to best in terms of time and number of defects across a few hundred programmers. Also interesting: Within the same organization, there was only a difference of 30%. This means the environment is much more important than the skill, experience, or personality of a programmer.
I cannot find any studies after 2000. Most of the data is even older. The Peopleware data is from Cobol, Fortran, Pascal, and C.
[0] https://www.construx.com/blog/productivity-variations-among-...
Yes, sadly this is honestly true. Especially if you take into account the time spent to manage them, and then cleaning up after them, a person can easily be negative net contribution.
Honestly that's one of the ways I feel I've made a hiring mistake. It's okay to invest more time than it would take me to do a task to teach someone else to do a task, knowing that they can learn and improve, and eventually that investment of time will pay off. Eventually they should be teaching me things too, and doing things without needing any help. But if someone is constantly taking more time, and it doesn't look like that investment is getting paid off, I get nervous.
Then when the team starts slowing down, management will become even more resistant to getting rid of people, because you need to "go faster" which in their minds is simply some matter of headcount.
And in my CS class I was in the top quarter percentile, he was in the top 1%. The difference is big. They type code as fast as I'm typing this comment, while having a sane architecture.
The secret: they programmed a lot more as a kid.
Real world "10x" developers are almost always in that class because they can solve the same problem with 1/10th the code of a 1x developer.
Ability to solve problems with less code will always outpace faster typing.
In that sense a 1x developer is infinitely more efficient than someone who is a net loss to the team and 100x is nothing.
I do agree that it would be very difficult to be 100x better than someone who has decent technical skills and generally displays common sense and stays focused on useful paths.
10x is 100 times bigger than 0.1x FWIW.
> but I argue that it is at least partly due to the prevailing code-base.
Its almost exclusively because of the prevailing code-base. We can't forget that the prevailing code base was built by developers of varying skills. You can have "100x" developers build it or you can have "0.1x" developers build it.
> One of my least favorite people to work with is also a "high throughput" developer who is a prolific creator of software, but everything created by this person is an un-maintainable, un-documented, un-tested, brittle block of procedural copy-pasta that ends up in the critical business path. And yes, this developer "snapped" about a year ago and it has been a 3 person project ever since to scramble to fix this stuff.
Was this person the aforementioned "Rick" from this article?
Wow!!! so true, never heard it said like this.
"The thing with "10x" developers, is often times they (or a group of them) can do things that the average developer can't. Take Netflix as an example, would they have even started on the whole cloud thing if they had average engineers? Or if they did, would they have been thought leaders in the space for so many years.
> Maybe a 100x developer is really just a 5x developer who enables 20 teammates to also be 5x developers?
Or just a developer that makes the lives of 2000 engineers a little bit easier.
That may be true of good developers. On the other hand, in my experience "10x developers" are the ones causing the slide.
If they're causing code quality slide, they're not a "10x developer."
Example of >> 10x phase change: Jeff Dean and Sanjay Ghemawat with MapReduce and BigTable.
For the negative, I think we all have seen the programmer who is useless and that actually requires other people to replace their work.
Also, there are entirely different “10x engineers” being talked about as one and the same here. The copy-paste spaghetti guy probably couldn’t even get a job at Netflix...
Unrelated to your point but I think a lot of people who write really bad code are the only choice because they are experts in another essential domain, and there aren't a whole lot of experts in both that domain and writing software. So you do what you can. There is a reason that code written by EE's is often derided as terrible.
Nobody I've met thinks that there are a set of people that believe there are "developers that write code 100x faster than other developers" but when people write comments on HN they act like this is a really common belief and only they are able to spot that it's not sane...
Everybody that I've met considers technical prowess more along the lines of: the ability to write complicated code which others would find difficult to do, the ability to simplify a problem in order that it can be solved without complexity, the ability to optimize the performance of something in order that it uses less resources, the ability to come up with an innovative design that others wouldn't have thought of, the ability to explain technical ideas to their colleagues in a way that enables others to achieve more, the ability to balance short-term goals against a long-term plan, etc.
Deleted Comment
Technically great? Great leaders? Great thinkers/architects/high level people? All of the above?
Sometimes this meant being an expert on a certain technology to better leverage it (especially important on teams that need to go deep such as video encoding, CDNs, television hardware, etc). Or looking at needs and pain points across teams and building high level solutions that raised productivity across the board. A willingness to question things and push for better ideas and really seeing them through. This could be at a technical or human level. Some people were really good at improving team cohesion and empathy, causing teammates to work more effectively. Others pushed hard for internal education and sharing learnings to help raise everyone's game. The culture of the company helped enable all of this. Some people excelled at improving culture, which has a leveraging effect as well.
I have seen the above at just about every company I've worked at. But I would say that at Netflix people took it further and were more successful than I've seen elsewhere.
That's just my experience, I've only worked at a handful of companies. I have no doubt many companies have employees that do all of this.
I assume the broad buckets of continuous effort are "get the right content to the right users", "add more content" (which may involve some engineering support via e.g. analytics), and "scale it up to effectively reach more users". It seems like Netflix has fully shifted from a chaotic "zero-to-one" innovation state to a more mature "continuously aggregate marginal gains on top of a solid foundation". Is that a fair characterization?
The only conceivable "problem" with the above from the engineer's POV is that (1) individual contributions might feel less exciting and (2) it becomes progressively harder to find ways to move the needle. Though I would assume this is a problem at virtually any mature technology company. On the bright side, a marginal gain applied at a massive scale probably feels pretty rewarding.
My first 3 years were on the consumer side, working on the TV client. I'm a bit more out of touch here. But I'd still say interesting engineering is happening here. I agree sometimes it is "marginal gain at massive scale", but that can be really satisfying and challenging in its own right. There are many different teams focusing on a lot of different things here. The consumer side is pretty much entirely driven by A/B tests. So teams might take on a big idea, but it can be hard for those to beat out the established norm sometimes. That may be a factor in why you feel the product is "static". Also the wide range of devices and internet connections can segment engineering. Many efforts apply across the board, but other projects might only apply to say high end game consoles for example.
Regarding "get the right content to the right users", I don't have much experience with that. That's more in the domain of backend teams. I do know they also do A/B tests to guide innovation, but that's about all I can confidently say there.
Like Jeff Dean or Sanjay Ghemawat?
As for the culture. It's not nearly as cutthroat as people assume it is. But it's true that Netflix wants you to perform well. This gets balanced out with good communication from management and your peers. Netflix emphasizes candid feedback, so you pretty much always know where you stand. At least, in my experience. It's a big company, so mileage may vary.
For better or for worse, this lead to discussions about salary, negotiating practices, and to people looking elsewhere.
I sometimes speak with people that work in other fields and many of them have zero clue about these topics, whereas in most IT-related discussion boards (whether it's HN, reddit or whatever) there's a related thread in an almost periodic cadence. We in IT are kinda obsessed with these topics (we're discussing this on a VC-owned discussion board after all).
On a different topic: is there any data for salaries in other fields for the same companies (FAANG and similar) ? It'd be interesting to see how much earns, for example, a lawyer in such companies.
My buddy is a nurse in Bay Area with a CRNA, it’s pretty much understood you make 225k plus any overtime so there’s not much more to discuss.
https://www.biglawinvestor.com/biglaw-salary-scale/
However, in our field you end up with people who have sat around in their same SWE job at DuPont/Lockheed or some other boomer company for 10 years and are making $80k while new grads are hitting $150k+ TC going into Google and 7 years experienced engineers can hit $450k TC at the big tech companies.
A tech company with a good moat can easily extract millions in value out of the work of SWEs building more crap for them. That's why they are willing to compete for competent engineers. If they didn't bring in that kind of cash, the companies just wouldn't pay for it, period.
Employees talking money with each other has zero bearing on what a company is willing to offer. I worked at a hotel in high school and everyone knew the hourly pay of every position in the hotel. It didn't get us raises.
The skyrocketing wages for engineers are because until recently, tech companies were illegally conspiring to not compete for competent engineers.
It's true that some market forces and potential value of what is created are factors else nobody would pay for the premium, but he generally scarcity rules here.
For a contrived example, why is caviar astronomically more expensive than bread? It's not the cost of production. It's not the fact that people like it more than bread.
It's just scarce.
The government requires that companies publicly report salary data for H1Bs. You can google for that data. Here's one site https://h1bsalary.online/
In my opinion a huge role in the raise of tech salaries is simply constrained real-estate in the bay area. Just looking at rents and homeprices, I wonder if cost-of-living adjusted salaries have actually gone up much in the bay area.
However...it does set the bar for the country overall, which is good for everyone.
Secondly, i'm not sure about brag but I think tech companies have realized that skin-in-the-game has resulted in shared success. This is also great for everyone -- companies, and workers.
Deleted Comment
On my LG tv their app is the best, by far. I wish all the other services just served their content through Netflix. All new content has 4K HDR with Dolby vision/atmos and streaming is quite fast on my 200 Mbps fiber connection.
HBO Go is pure garbage. The app is clunky and has way worse UX than Netflix. The streaming quality is absolute crap. There's banding everywhere and the image seems to pause for a frame or two every second or so. This is extremely annoying when the camera pans. Game of Thrones doesn't even have 5.1 sound. No English subs (for those shows where sound is not so great). Last time I checked there was no 4K HDR.
The Amazon Prime app has better UX than HBO Go and has much better streaming quality, but the experience is still quite mediocre. The whole UI seems from 10 years ago. When you're binging a show they always insert ads in between episodes and the app forces you to skip recaps and the show intro every time. The quality of the streaming degrades quite often for a couple of seconds. Also, no English subs. They also have an HBO channel but it suffers from the same quality issues as HBO Go.
I haven't tried Apple+ and Disney is not available yet.
Netflix works great with a slow or intermittent connection, they've clearly optimized it.
My rank for engineering quality (not UX) are:
(1) Netflix, (2) Amazon Prime, (3) Disney+, (4) HBO Go (I get a stop-the-world spinning icon every minute at times)
HBO Go is so bad that I have to get out a mobile device and "save offline" and cast it to the TV just to watch something.
(I don't use Hulu.)
Apple TV app on macOS Catalina is a disaster zone. iTunes was pretty bad but the new app manages to be just as confusing, with fewer features, and worse of all it crashes immediately and reliably if you do something totally unexpected, like plugging your laptop into a TV via HDMI. Ridiculous.
I never owned an Apple TV but my 1st gen Nvidia Shield TV was super solid. I only stopped using it because it didn't support Dolby Vision and the apps I use are on my LG tv anyway.
A silly strawman. I'd firmly put someone like this in the bucket of "not that effective."
Early in my career I had someone that kept telling me "we don't write documentation because nobody will read it". I'll never put up with that again. You can take 30mins to write a confluence page describing the context, the solution, and comparison to other solutions and why this one was picked. It will save the company many hours later when someone else has to pick up your stuff.
It's arguments like these that make me very skeptical of the claims that 10x developers don't exist, as I've yet to hear such an argument that doesn't fail at basic critical thinking.
That being said, I fully agree with the article's framing of this view as simply saying that talented developers need a healthy working environment in order to reach their potential.
The flip side being, a talented developer might not want to join a company where an engineer like that has been the top dog (and the people below haven’t been around enough to have an idea what being a senior engineer is about). It just ends in tears and frustration for the ”talented developer.”
At the same time while youtube offline video watching always works for me on my iPad Pro, Netflix often ,,forgets'' the downloaded content.
If I look at the storytelling/direction itself though, I find HBO better than Netflix (especially with politics ruining the stories). Can somebody tell me a new Netflix serie that comes close to House of Cards?
I enjoyed HOC, especially the earlier seasons. A few shows (none of them new though) available on Netflix that I found equivalently good, each got better as they went:
Bloodline[0] - starts slow & builds, I didn't expect to like it as much as I did. Very under the radar, very good.
The OA[1] - similar to bloodline, in that I didn't expect to like it & it got better with each episode/season as the story progressed.
Colony[2] - got cancelled so ends on on cliff-hanger (an exhilarating one), but if you like sci-fi/aliens it'll deliver.
[0] https://www.imdb.com/title/tt3520702/
[1] https://www.imdb.com/title/tt4635282/
[2] https://www.imdb.com/title/tt4209256/
If you get into it, Netflix also carries a bunch of good Korean dramas, which tend to have a lot of episodes and honestly just seem to have much more effort put into them than most American TV. Signal and Itaewon Class are two of my current favorites.
As for designated survivor it was a nice copy of house of cards, but lacked the level of storytelling that went into house of cards.
Had I written what OP said, I would be clarifying that I mean "pushing personal politics via messaging in the show." HoC is remarkably a-political in that respect. They portray the power struggles and corruption fairly equally across the board regardless of party affiliation. More so than party though is simply they show how hollow the beliefs really are. It's about power and manipulation, not so much about policy. Of course such wide statements are nearly guaranteed to be wrong applied to some politicians, but as someone who has been all over the map politically throughout my life, they absolutely nail the main themes that I've noticed nearly everywhere.
I have an essay I wrote a while ago lying around that talks about the Intermediate Programmer - Rick sounds like a perfect example. The IP is the one that has the gumption to try out various inventions and experiments, usually focusing on the trying to solve a problem with a perfect Beautiful Machine, but that doesn't yet have the perspective to know how code needs will change in the future, and how to design code to make it easy to change.
I've had people on my teams that can code circles around me in various ways, and whose gorgeous intricate multi-level generics-heavy code was also regularly deleted a few weeks/months later in favor of something literal, boilerplate, small, and easy to understand and change. (Don't get me wrong, multi-level generics-heavy code is GOOD in some cases, but you have to know when.)
The good IPs learn from these lessons without letting their ego get in the way, and eventually become advanced programmers. The bad ones claim they are advanced and cause problems. Sounds like Rick was a 0.5x developer or less.