"But the first assumption alone is enough to prevent the developer job market from being a market for lemons. If you can tell that a potential employee is great, you can simply go and offer them twice as much as they're currently making (something that I've seen actually happen). You need an information asymmetry to create a market for lemons, and Joel posits that there's no information asymmetry."
Not necessarily. Suppose you can identify good developers after you have worked with them. Then, as in the used car model, lemons will be discarded ("resold") and good developers will be kept and driven.
> At the last conference I attended, I asked most people I met two questions:
> 1. Do you know of any companies that aren't highly dysfunctional?
> 2. Do you know of any particular teams that are great and are hiring?
> Not one single person told me that their company meets the criteria in (1).
Reminded me a lot of Ribbonfarm on the Gervais Principle:
"Hugh MacLeod’s cartoon is a pitch-perfect symbol of an unorthodox school of management based on the axiom that organizations don’t suffer pathologies; they are intrinsically pathological constructs."
Not that the Gervais Principle is wrong, but you gotta think bigger.
If you're at a conference where no one knows of a functional company with good teams that are hiring... maybe you're at the conference that attracts all the people stuck in a world of terrible teams and dysfunctional companies? I mean, doesn't it make sense that if you can't identify good teams or good companies, you'd also suck at identifying good conferences? ;-)
Interesting piece. Two things:
1. How do these few absolutely spectacular developers blossom into such impressive specimens of the lot? Why not get them before this happens and help them over the greatness threshold?
2. Isn’t there a kind of giant group of buried truffles that don’t fit the trad idea of what a great dev smells like? — so much so that you could identify this set with a couple of simple queries— a kind of sifting activity that would yield lots of truffles per square foot?
1 is why large companies have massive cohorts of interns. They don't expect to get much/any useful work out of them, they just fill up the interns on Kool-Aid, identify the ones that aren't completely hopeless, and hire them full-time as junior devs.
Right, but then every company would just grow uberdevs and be chock full of awesome at some point, but it seems like that isn’t happening w these interns as often as would make the intern thing “worth it” for identifying future wonderdevs.
A hypothesis could be that these great developers became what they are due to an extreme internal drive at a young age; they already have tons of experience and the right attitudes/thinking patterns when joining the work force. If they continue learning (and why shouldn’t they, given their internal drive), how can anyone compete with them?
This intrinsic motivation implies that companies really can’t “grow” great developers, nor “pick them before they’ve blossomed”; what they can do is step aside and not create obstacles.
This industry spends way too much time thinking about top producers (IE, the mythical 10x developer) and not enough about the support to turn one of those competent but humble developers into a top producer. Are there a few legitimate "The One" developers in the world? Yes, I'm sure there are. But you can take an average player, put them in a super supportive environment with good tools and make them look like a super star way easier than you can find or pay, or in some cases put up with the prima donna antics of a "super star." Put in the wrong environment too, you can turn a super star into a lemon super quick.
Honestly, the longer I work in this industry the more I think the 10x developers are real and just so valuable. 90% of devs just aren’t worth that much.
>Honestly, the longer I work in this industry the more I think the 10x developers are real and just so valuable. 90% of devs just aren’t worth that much.
I don't disagree with this, but I also came to the conclusion that it is just raging against the machine to think that it is fixable. So long as there is money to be made, no barriers to entry, and no economic incentive to improve the situation, it will only continue to get worse. I'm of the same opinion now that I was in the 90s - the fix is to mature the discipline to a true profession of licensed, qualified, software engineers. But, it's a pipe dream to think that will ever happen in a meaningful way.
I think current corporate culture is just toxic. It requires people to work in inadequate environment, in large dirty cities, without basic infrastructure like transportation, security and accomodation. 90% people would not be productive in this job.
I disagree with your statement but agree with your point.
I believe that's due to being curious and slightly introverted when young, so these people just have lots and lots of experience. Such people could be manufactured by training them on many different programming disciplines over many years. It's just that for almost any company, investing so much into training is not feasible. That employee might leave once training is over.
In my own career, I've had moments where everything just flowed and I was incredibly productive. I've also had moments where I was absolutely worthless. The difference was all about the constraints of the environment. For example - yes, if you have great tooling that makes it easy to produce, then that's cool. But, if you don't have great tooling but you have the organizational support to bring in the tools and processes you need, then you are halfway there.
On the other hand, if you don't have the organizational support - which often isn't about budget so much as actual verbal, emotional, political, psychological kinds of support - then your productivity will likely be very low. When I've been in places with management or clients that were repressive in their behaviors, well... they reaped what they sowed and out the door I went asap. Normally someone will pop up and say something about the risks or the security or something driving that kind of behavior or process - yes, I've worked in some high-risk environments, but there is a difference between a process designed to minimize faults and one that is just repressive because of ignorance, egos, etc. If you treat people badly, they will not produce at a high level.
>Nah. There are some people who can fix any bug and build any system from scratch. You can’t manufacture those people.
There are unique individuals like this, but I've noticed that the ones I've seen in the wild... this wasn't their first time building such a system. In another thread today someone was talking about building video conferencing systems and someone said "it's only easy for you because you've been doing it for years!" If it's the third time you've built that particular kind of subsystem, chances are you've made a lot of mistakes and know what you are doing, and now you can make it look easy.
This is not to say that there aren't some who are more talented than others, but as another poster in this thread noted - it's more like a 90/10 or 80/20 split, where we could get rid of a big chunk of people who just aren't qualified.
There are mechanics that can build a car from scratch, and even forge the spanners they use from iron ore, all without reading a manual. But do you need that person to service your car.
Your last point is a huge one too. I read something ages ago which stuck with me ever since - a scalpel is sharper than a bread knife, but that doesn't mean it's better. Sometimes you just need to cut bread.
A lot of companies chase highly skilled, creative, motivated developers and then stick them with routine, grindy jobs until they quit or lose the will to live. It doesn't matter how sharp your scalpel is if they're being wasted maintaining some enterprise CRUD app.
Without trying to push the analogy too far, I think the point holds without ascribing superiority to any particular job (or cutting tool).
Case in point, I have a nice Japanese knife set. My chef's knife (your scalpel) sucks at cutting bread compared to the set's serrated bread slicing knife.
Both of those knives such at spreading peanut butter and jelly to make a sandwich.
The right tool (or person) for the job is what matters.
All jobs turn into a routine after a while, but IME when it becomes a problem is usually not because of the job itself, but because you loose motivation to do it anymore. And that (to me at least) usually happens because of the bad management and/or unpleasant team environment, not the work itself. Give me the sense of purpose and I'll fix CRUD api for the rest of my life, no problem. That's what adult life is about anyway IMHO, not everyone gets to launch rockets or cure cancer, some of us work to pay bills and that's OK... and beside launching rockets and curing diseases includes a lot of grindy work, too. But if I feel unappreciated or the work seems pointless then I just disconnect from the project and don't care anymore, and then any work becomes just grinding, until you're ready to quit.
...except you have to ask yourself, if you had a team of talented software engineers, how is it that their primary work remains building the same CRUD apps time and again? A good software engineer would recognize they're doing the same thing over and over again and write some software so that they didn't have to. Maybe there'd still need to be some minor adjustments to get things right, but it'd take up a modicum of their time.
You probability just never met one of the 10x-ers. To the outside, them enforcing a productive environment might look like diva behavior.
For example, I know someone who insists on having the exact same chair, screen, keyboard, mouse, and IDE at every job. I believe he's been called arrogant for that. But his explanation was that all of that is necessary to make past muscle memory translate. Like this, he can type fully blind at an impressive speed and navigate every project purely with shortcuts.
If thinking is not your bottleneck, then it makes a lot of sense to optimize for typing speed.
>You probability just never met one of the 10x-ers.
You might be right. But I spent 23 years in industry and can think of just a couple people who I might consider to be 10xers... and that's not enough to build all the software that has to be built in the world.
>To the outside, them enforcing a productive environment might look like diva behavior.
Your examples of chairs, screens, etc - I don't have any beef with that; that's not what I mean by prima donna behavior. What I've tended to see are people who definitely are not 10xers who have somehow got the organization in a stranglehold of toxicity.
In my opinion, most software these days looks like it's built with a lot of duct tape and the bare minimum level of skill necessary. For example, the Slack client could probably be built at 10% the RAM usage, 1% the disk space, 20% the CPU usage, and still be twice as fast. But I totally understand that Slack didn't want to "waste" their A team on an app that's already good enough.
Try arguing at FAANG that you'll need your own quiet office for your stuff plus a window and some potted plants to help you stay awake and concentrate. I think you'd be thrown out for "refusing to be a team player".
And yes, in my 18 years in IT I have also met toxic hostage keepers. But my impression was that those were people who were highly skilled and have in-depth knowledge of the system. And then somewhere along the way they had a fallout with management and wanted to leave, but the company couldn't hire any suitable replacement. So now both company and employee are stuck in an abusive relationship, for fear of being alone otherwise.
>In my opinion, most software these days looks like it's built with a lot of duct tape and the bare minimum level of skill necessary.
Somewhere over the past few years, I came to peace with this point. Because production software tends to be really gross, for complicated but legitimate reasons. In fact, I think the beauty is in keeping something that looks really mangled operating with any degree of success - that is in fact the mark of a successful and functional team, if they are able to keep it all working with any degree of sanity.
This is not to say that your second point, about bare minimum level of skill necessary, isn't also incredibly valid. But, I don't blame this on individual workers, but rather on the system (IE: don't hate the player, hate the game). Incentives are to make your money in a phase of the moon and move on. Incentives are to move up or out. Incentives are not to build quality, but to build good enough. So long as that's how the incentives are structured, it's how the game is going to go.
> For example, I know someone who insists on having the exact same chair, screen, keyboard, mouse, and IDE at every job. I believe he's been called arrogant for that. But his explanation was that all of that is necessary to make past muscle memory translate. Like this, he can type fully blind at an impressive speed and navigate every project purely with shortcuts.
>
> If thinking is not your bottleneck, then it makes a lot of sense to optimize for typing speed.
...and that's not a 10x developer, because if your limiting factor is how fast you can type and how often you can navigate shortcuts, you're a keyboard monkey, not a software developer.
Just think of the ongoing operational headache from all the code someone would generate if they were typing non-stop, as fast as they could, all day. Even if it is really good code, if you need that much code, you're already screwed.
The 10x doesn't come from typing more and generating more code. It comes from all the typing you don't do.
If typing is your bottleneck, then it makes sense you aren't putting a lot of thought in to what you are doing.
"10x developer" is meaningless and unmeasurable. We have to try and measure somehow so we know what grade people are and what to pay.
But really most people are working for a business not research. And in such cases the productivity could be measured in affect say revenue or profit. That's hard to measure for a lot of things.
And it takes teamwork, and a lot of human factors.
I doubt typing speed really comes into it. If you can do 40wpm or more it's fine IMO. Hunt and peck is OK.
An "idiot" using NodeJS writing it all in one big ugly index.js file might make the company a million with an idea or subtle change that the Linux Kernel genius missed.
Not really sure how you measure 10x.
The only way to do it is to confine what it means. "Can they implement this given problem in 1 hour? Then they are 10x"
But... software by it's nature is about implementing problems that are even hard to define in the first place and spotting opportunities. The right decisions - what NOT to develop, or what tech to use could make such a big difference. It might be hidden in an inane looking decision to use C# for example, that doesn't make you "look" like a 10xer.
Thinking about this a bit more, I think a 10x is like one of those maths proofs that says "I can prove it exists, but I can't tell you what it is!"
I "10x" was originally intended as a hypothetical talking point.
There probably are 10x people in a team. The 10x status could change rapidly as circumstances change, team dynamics and company goals change. Someone else might take the invisible 10x crown once they get to work on a project that aligns with their strengths.
At any time you don't know who to 10x is. You need some system to decide what is a fair salary and who you want to try hard to keep. A good manager should have a feel for who that is in their team. If that person moves into another company they may not be that person anymore in the new team.
So 10x probably exists (as defined as ratio of best to worse). If it didn't exist it means that most people are pretty much performing the same, which I don't believe. But I doubt anyone is permanently a 10x contributor, and I doubt many people (include the 10x-er themselves) can tell who it is.
Projects end, especially great ones and the people from them move on. Developers get better from exposure to different people, different technology and domains.
1) Great devs want to work with other great devs. If you want to blast forward you don't want to spend days debugging really crappy code someone else wrote, or explaining ideas to someone who's significantly slower than you. (We've all been on both sides of that particular situation - the good ones put in the work to get faster.)
2) People don't quit jobs, they quit managers. Also, at least for everyone I know, people generally quit jobs first, and look for jobs later, meaning that if they have a good team to work with and a good manager, you're never going to get them.
This means that the great developer is not a standalone creature; great developers will cluster under a great manager, and then that unit will be immensely productive and inseparable. Building that should be a tech CEO's goal.
I agree on your second point. Bad managers were the reason why I either quit or got fired (after stoping to care and just doing the minimum amount of work possible) because I could not see any change being made to the development methods used which relied heavily on people instead of software tools that could speed things up for me and minimize the amount of bugs that I was adding to the codebase.
Bad managers which are set in their ways from 10 years ago and unable to change are really bad for business.
Whenever I read something written from Joel Spolsky I think back to the time I attended the first CalHacks hackathon. Joel gave the keynote talk which I pushed into as a starry-eyed young technology enthusiast. He told us to work hard so we dont end up like the construction workers out there (referring to the construction happening outside of the Berkeley stadium at the time). Oh. I had hardly entered the software industry and that was my first moment of being jaded about the out of touch characters the bay/valley had to offer. I better get coding or else I'll have a shite life like those construction workers...
I can get some interviews and get through some rounds. But no one here is talking about LeetCode which is all that really matters.
Using a throwaway because obviously I'm mediocre and I don't want to end up woefully hopeless like those horrible people applying to every open job in Palo Alto.
This article and this discussion is about people competing for $200k cash + $200k equity annually jobs or something similarly far out of the ordinary.
So I'd assume that by applying to lots of normal jobs and doing normal job, you'll still be able to have a good normal life. I mean IT is well paid, even in the more junior positions.
It just won't be enough for a yacht ;) which is what the 10x crowd is aiming for.
> When I worked at a small company, we regularly hired great engineers from big companies that were too clueless to know what kind of talent they had.
This is an easy trap to fall into when you’re online a lot. Everyone around you is always doing something fantastic something you wish you thought of something new and amazing and innovative.
But remember: most people are normal, just about average. You’re just surrounded by outliers online because average doesn’t spread.
I think What we really need is a piece about a tree full of lemons trying to sell a bunch of secondhand cars that they don’t actually own. Possible suggestion for the lemons: the LinkedIn-based recruitment agencies.
Oh dear, I think I’ve stretched that analogy too far.
"If it's so easy to identify prospective great developers, why not try to recruit them?"
1. Who says that companies don't try. We can only observe that they are not too successful at it. But that might also just mean that there's many companies competing for few employees. And if you can get the same salary somewhere else, who would still go to Facebook?
2. Great at work doesn't mean great character. I'm pretty sure that the original team building Android was highly skilled. But their personalities also appear highly controversial. Not every company can stomach the fallout from hiring someone like that.
3. There is an incentive to keep quiet if you succeed. Once you publicly announce that you succeeded in hiring a truly outstanding employee, you are pretty much guaranteed to have recruiters try to steal your employee away from you.
4. The best jobs for these people are research and prototypes for future products. As such, you can be sure that companies will have draconian NDAs in place to prevent their top employees from taking about what they do. So they'll be mostly invisible on the internet.
5. If you look around in indie circles, you'll find many companies where one person does legal, marketing, and all product development. I'd guess those are the 10x-ers who value freedom higher than money.
>5. If you look around in indie circles, you'll find many companies where one person does legal, marketing, and all product development. I'd guess those are the 10x-ers who value freedom higher than money.
This point and to some degree your #4 point are really key: Being a potentially great worker* is relative to the company, product, project, IE: the environment. An indie may not have been a very successful developer at BigCo, but when faced with sink or swim, will strive to find ways to be ultra productive.
* I didn't write developer, because I've seen this phenomenon with testers, with technical consultants, with project managers...
>> The great software developers, indeed, the best people in every field, are quite simply never on the market.
This is flat out wrong. It's not true. It's false.
I've recruited hundreds and hundreds of people and they were ALL on the market and I know for an absolute fact that many of them turned out to be really really outstanding developers.
So it's wrong.
In my experience as a tech recruiter and some-time searcher for employment in development - the real lemons are the recruiting processes of many companies. Vast numbers of people/companies simply do a flat out bad job of assessing and interviewing and selecting developers.
Yeah I used to believe there were "great" developers as if every developer could be given a score of greatness.
I was a bit naive in that assessment.
Every person is different. Not everybody that knows the big O of all sorting methods by heart is the person you need. Or even want.
There are multiple dimensions, technologies, experiences of fitting someone in a company. Some people move more slowly but surely, some move faster and are more hands on.
(That being said, I've met a - thankfully small - number of people that were a net negative in team productivity)
The software job market is "interesting". You have companies complaining about it being hard to find developers. Then they pass on really good ones. I think one reason is that these companies started in a time where it was easy to find developers and developers was basically working for free as it was also their hobby.
51 comments
[ 2.6 ms ] story [ 108 ms ] threadNot necessarily. Suppose you can identify good developers after you have worked with them. Then, as in the used car model, lemons will be discarded ("resold") and good developers will be kept and driven.
> 1. Do you know of any companies that aren't highly dysfunctional?
> 2. Do you know of any particular teams that are great and are hiring?
> Not one single person told me that their company meets the criteria in (1).
Reminded me a lot of Ribbonfarm on the Gervais Principle:
"Hugh MacLeod’s cartoon is a pitch-perfect symbol of an unorthodox school of management based on the axiom that organizations don’t suffer pathologies; they are intrinsically pathological constructs."
https://www.ribbonfarm.com/2009/10/07/the-gervais-principle-...
If you're at a conference where no one knows of a functional company with good teams that are hiring... maybe you're at the conference that attracts all the people stuck in a world of terrible teams and dysfunctional companies? I mean, doesn't it make sense that if you can't identify good teams or good companies, you'd also suck at identifying good conferences? ;-)
This intrinsic motivation implies that companies really can’t “grow” great developers, nor “pick them before they’ve blossomed”; what they can do is step aside and not create obstacles.
I don't disagree with this, but I also came to the conclusion that it is just raging against the machine to think that it is fixable. So long as there is money to be made, no barriers to entry, and no economic incentive to improve the situation, it will only continue to get worse. I'm of the same opinion now that I was in the 90s - the fix is to mature the discipline to a true profession of licensed, qualified, software engineers. But, it's a pipe dream to think that will ever happen in a meaningful way.
I believe that's due to being curious and slightly introverted when young, so these people just have lots and lots of experience. Such people could be manufactured by training them on many different programming disciplines over many years. It's just that for almost any company, investing so much into training is not feasible. That employee might leave once training is over.
On the other hand, if you don't have the organizational support - which often isn't about budget so much as actual verbal, emotional, political, psychological kinds of support - then your productivity will likely be very low. When I've been in places with management or clients that were repressive in their behaviors, well... they reaped what they sowed and out the door I went asap. Normally someone will pop up and say something about the risks or the security or something driving that kind of behavior or process - yes, I've worked in some high-risk environments, but there is a difference between a process designed to minimize faults and one that is just repressive because of ignorance, egos, etc. If you treat people badly, they will not produce at a high level.
There are unique individuals like this, but I've noticed that the ones I've seen in the wild... this wasn't their first time building such a system. In another thread today someone was talking about building video conferencing systems and someone said "it's only easy for you because you've been doing it for years!" If it's the third time you've built that particular kind of subsystem, chances are you've made a lot of mistakes and know what you are doing, and now you can make it look easy.
This is not to say that there aren't some who are more talented than others, but as another poster in this thread noted - it's more like a 90/10 or 80/20 split, where we could get rid of a big chunk of people who just aren't qualified.
There are mechanics that can build a car from scratch, and even forge the spanners they use from iron ore, all without reading a manual. But do you need that person to service your car.
A lot of companies chase highly skilled, creative, motivated developers and then stick them with routine, grindy jobs until they quit or lose the will to live. It doesn't matter how sharp your scalpel is if they're being wasted maintaining some enterprise CRUD app.
Case in point, I have a nice Japanese knife set. My chef's knife (your scalpel) sucks at cutting bread compared to the set's serrated bread slicing knife.
Both of those knives such at spreading peanut butter and jelly to make a sandwich.
The right tool (or person) for the job is what matters.
For example, I know someone who insists on having the exact same chair, screen, keyboard, mouse, and IDE at every job. I believe he's been called arrogant for that. But his explanation was that all of that is necessary to make past muscle memory translate. Like this, he can type fully blind at an impressive speed and navigate every project purely with shortcuts.
If thinking is not your bottleneck, then it makes a lot of sense to optimize for typing speed.
You might be right. But I spent 23 years in industry and can think of just a couple people who I might consider to be 10xers... and that's not enough to build all the software that has to be built in the world.
>To the outside, them enforcing a productive environment might look like diva behavior.
Your examples of chairs, screens, etc - I don't have any beef with that; that's not what I mean by prima donna behavior. What I've tended to see are people who definitely are not 10xers who have somehow got the organization in a stranglehold of toxicity.
Try arguing at FAANG that you'll need your own quiet office for your stuff plus a window and some potted plants to help you stay awake and concentrate. I think you'd be thrown out for "refusing to be a team player".
And yes, in my 18 years in IT I have also met toxic hostage keepers. But my impression was that those were people who were highly skilled and have in-depth knowledge of the system. And then somewhere along the way they had a fallout with management and wanted to leave, but the company couldn't hire any suitable replacement. So now both company and employee are stuck in an abusive relationship, for fear of being alone otherwise.
Somewhere over the past few years, I came to peace with this point. Because production software tends to be really gross, for complicated but legitimate reasons. In fact, I think the beauty is in keeping something that looks really mangled operating with any degree of success - that is in fact the mark of a successful and functional team, if they are able to keep it all working with any degree of sanity.
This is not to say that your second point, about bare minimum level of skill necessary, isn't also incredibly valid. But, I don't blame this on individual workers, but rather on the system (IE: don't hate the player, hate the game). Incentives are to make your money in a phase of the moon and move on. Incentives are to move up or out. Incentives are not to build quality, but to build good enough. So long as that's how the incentives are structured, it's how the game is going to go.
...and that's not a 10x developer, because if your limiting factor is how fast you can type and how often you can navigate shortcuts, you're a keyboard monkey, not a software developer.
Just think of the ongoing operational headache from all the code someone would generate if they were typing non-stop, as fast as they could, all day. Even if it is really good code, if you need that much code, you're already screwed.
The 10x doesn't come from typing more and generating more code. It comes from all the typing you don't do.
If typing is your bottleneck, then it makes sense you aren't putting a lot of thought in to what you are doing.
I have also met people who write overly complicated and lengthy code, but that doesn't mean everyone does.
The rails app that he built for my employer is still in production use 5 years later and it has turned out to be well organized and easy to maintain.
If typing is your bottleneck, then you're either careless and overly verbose... or you are insanely knowledgeable about what you do.
But really most people are working for a business not research. And in such cases the productivity could be measured in affect say revenue or profit. That's hard to measure for a lot of things.
And it takes teamwork, and a lot of human factors.
I doubt typing speed really comes into it. If you can do 40wpm or more it's fine IMO. Hunt and peck is OK.
An "idiot" using NodeJS writing it all in one big ugly index.js file might make the company a million with an idea or subtle change that the Linux Kernel genius missed.
Not really sure how you measure 10x.
The only way to do it is to confine what it means. "Can they implement this given problem in 1 hour? Then they are 10x"
But... software by it's nature is about implementing problems that are even hard to define in the first place and spotting opportunities. The right decisions - what NOT to develop, or what tech to use could make such a big difference. It might be hidden in an inane looking decision to use C# for example, that doesn't make you "look" like a 10xer.
I "10x" was originally intended as a hypothetical talking point.
There probably are 10x people in a team. The 10x status could change rapidly as circumstances change, team dynamics and company goals change. Someone else might take the invisible 10x crown once they get to work on a project that aligns with their strengths.
At any time you don't know who to 10x is. You need some system to decide what is a fair salary and who you want to try hard to keep. A good manager should have a feel for who that is in their team. If that person moves into another company they may not be that person anymore in the new team.
So 10x probably exists (as defined as ratio of best to worse). If it didn't exist it means that most people are pretty much performing the same, which I don't believe. But I doubt anyone is permanently a 10x contributor, and I doubt many people (include the 10x-er themselves) can tell who it is.
1) Great devs want to work with other great devs. If you want to blast forward you don't want to spend days debugging really crappy code someone else wrote, or explaining ideas to someone who's significantly slower than you. (We've all been on both sides of that particular situation - the good ones put in the work to get faster.)
2) People don't quit jobs, they quit managers. Also, at least for everyone I know, people generally quit jobs first, and look for jobs later, meaning that if they have a good team to work with and a good manager, you're never going to get them.
This means that the great developer is not a standalone creature; great developers will cluster under a great manager, and then that unit will be immensely productive and inseparable. Building that should be a tech CEO's goal.
Bad managers which are set in their ways from 10 years ago and unable to change are really bad for business.
I can get some interviews and get through some rounds. But no one here is talking about LeetCode which is all that really matters.
Using a throwaway because obviously I'm mediocre and I don't want to end up woefully hopeless like those horrible people applying to every open job in Palo Alto.
So I'd assume that by applying to lots of normal jobs and doing normal job, you'll still be able to have a good normal life. I mean IT is well paid, even in the more junior positions.
It just won't be enough for a yacht ;) which is what the 10x crowd is aiming for.
This is an easy trap to fall into when you’re online a lot. Everyone around you is always doing something fantastic something you wish you thought of something new and amazing and innovative.
But remember: most people are normal, just about average. You’re just surrounded by outliers online because average doesn’t spread.
https://iang.org/papers/market_for_silver_bullets.html
Oh dear, I think I’ve stretched that analogy too far.
1. Who says that companies don't try. We can only observe that they are not too successful at it. But that might also just mean that there's many companies competing for few employees. And if you can get the same salary somewhere else, who would still go to Facebook?
2. Great at work doesn't mean great character. I'm pretty sure that the original team building Android was highly skilled. But their personalities also appear highly controversial. Not every company can stomach the fallout from hiring someone like that.
3. There is an incentive to keep quiet if you succeed. Once you publicly announce that you succeeded in hiring a truly outstanding employee, you are pretty much guaranteed to have recruiters try to steal your employee away from you.
4. The best jobs for these people are research and prototypes for future products. As such, you can be sure that companies will have draconian NDAs in place to prevent their top employees from taking about what they do. So they'll be mostly invisible on the internet.
5. If you look around in indie circles, you'll find many companies where one person does legal, marketing, and all product development. I'd guess those are the 10x-ers who value freedom higher than money.
This point and to some degree your #4 point are really key: Being a potentially great worker* is relative to the company, product, project, IE: the environment. An indie may not have been a very successful developer at BigCo, but when faced with sink or swim, will strive to find ways to be ultra productive.
* I didn't write developer, because I've seen this phenomenon with testers, with technical consultants, with project managers...
This is flat out wrong. It's not true. It's false.
I've recruited hundreds and hundreds of people and they were ALL on the market and I know for an absolute fact that many of them turned out to be really really outstanding developers.
So it's wrong.
In my experience as a tech recruiter and some-time searcher for employment in development - the real lemons are the recruiting processes of many companies. Vast numbers of people/companies simply do a flat out bad job of assessing and interviewing and selecting developers.
I was a bit naive in that assessment.
Every person is different. Not everybody that knows the big O of all sorting methods by heart is the person you need. Or even want.
There are multiple dimensions, technologies, experiences of fitting someone in a company. Some people move more slowly but surely, some move faster and are more hands on.
(That being said, I've met a - thankfully small - number of people that were a net negative in team productivity)