I feel like a lot of the tech industry misses the forest for the trees. They try to hire based on signals unrelated to the actual work - which is due to a combination of poor incentives, wrong skills and poor leadership that defines a hire/employee.
Here are all the poor incentive systems in tech companies:
1. Technical sourcers look for keywords in resumes - they are already biased towards prestige such as top schools or past employers. Root Cause: Recruiters are incentivized to meet a hiring number. They don't want to take chances. They just want to meet their quarterly quota. Poor incentive system. No ownership among anyone in management to improve this.
2. Hiring process looks for leetcode ability - biased towards people who have time to practice these problems. These problems are completely unrelated to the actual work. Hiring managers have no incentive to do any better. Heck, managers are not skilled enough to do any better. Poor incentives. No ownership of this among hiring managers.
3. Performance reviews based on poor definition of performance - biased towards whatever garbage management is measuring, often secretly. Management is not skilled enough to understand projects, so they rely on proxies such as lines of code, number of commits. Engineers know these are poor proxies.
Companies try to take biases out of this process by inserting hiring committees - who use these same properties to identify a new hire, or make a promotion decision. All they did was add a layer of bureaucracy by removing the power of hire/promo away from the actual manager.
Ultimately, this industry is so delusional that they forget to ask simple questions such as "Is this person the hire we need? Will they be able to contribute? Do they have the potential to contribute?"
And for performance reviews, asking questions such as, "Are our projects going to yield the right outcomes for the company? Have we staffed people into working towards these outcomes? Are they on track to achieving these outcomes? If they achieve it, can they be promoted for performing well?"
That's all there is. But it requires good "leadership" that I have found to be missing in tech companies.
We hired an open source maintainer with no degree and no work experience at our startup, and they're singlehandedly the best developer in the company. Meanwhile I've been doing Leetcode everyday for the last 2 years and have nothing practical to show for it (but I can sure crack any interview!)
I agree, but for me I've gotten to the point where I dislike the "talent" paradigm in general. People are treated as marble objects, as if context in the past and future doesn't matter at all. I wish more focus were put on how someone would fit in a team, and what both the existing team and the hire would bring to one another.
We can nag about it but there is no real solution for management not having skills or will to double down.
You know you cannot just hire "best of the best of the best" you most likely can hire best of your market and only if you have budget/resources for that.
This counts also for management.
Get a company of 100 employees, I don't see a realistic scenario where you could simply hire and retain competent enough people to have all of them on "perfect skill level" or "above average".
For a company of 1000 employees, just hiring and building up to 1000 employees is years of work and people come and go.
For a small company of 10-20 people it is super hard to get anyone because lots of above average people look at a big brands to work for.
"Make time to learn" and "make time to practice specific problems" are not at all the same thing; the conflation of grinding leetcode with growing understanding is a problem.
> the conflation of grinding leetcode with growing understanding is a problem.
It's understanding something, even if it's not the job skills. Can you imagine someone who performs well at these kinds of challenges being a bad hire?
> Can you imagine someone who performs well at these kinds of challenges being a bad hire?
I've gotten way better at these problems from practice. Am I suddenly an amazing programmer as a result? I wish that were the case, but sadly I don't believe my job skills are improved at all.
That suggests we're measuring something fairly independent.
> It's no better than any other evidence of effort
I think one thing that's better is it has a hard IQ floor that can only be compensated with a huge amount of memorization and practice, but that's a worthwhile skill on it's own.
The best summer intern that I ever hired did not have any programming experience. He was a Berkeley student who had recently decided to change his major but hadn't started taking any programming classes.
When we interviewed him, it was clear that he was a serious student, he was very smart, and that he would work very hard if we gave him the internship. As the hiring manager, I turned him down because of the lack of programming experience.
I was overruled by our CTO. Apparently, the candidate was a family friend of the CTO and the CTO had strong confidence that he would learn programming very quickly.
The Berkeley student was given the paid internship. In an 8 week period over summer, the candidate learned ios programming, identified a problem that was impacting customers, proposed a fix, and was able to release the fix to customers. When he demonstrated the issue and his fix to the engineering team, it was clear that he had spent long hours working with the app.
My lesson from this is that the best candidate may not be the one who appears the best on paper. More important is a very smart candidate who is willing to work very hard.
Who cares. They found a star. Steph Curry, Kobe Bryant, JFK & RFK, countless more were megastars and they had unbelievable legs up in their profession. But at the end of the day they performed like crazy.
Nepotism is bad when it promotes idiots to positions they can’t handle. It is GOOD when it ensures talent gets cultivated.
That the CTO was family friends with the kid was terrific luck. Everybody won.
The important part is that started from zero and went through all the steps to production in 8 weeks.
And I assume it is not the only thing he did, presumably he did that in addition to what he was hired for. When he found that bug, he probably did a good enough impression so that the company let him work on it.
Most interns introduce more bugs than they fix, and are usually assigned internal tools and other noncritical code for that reason. A net 1 bug fix is already a good score.
> The important part is that started from zero and went through all the steps to production in 8 weeks.
Why is that important? That may be personally impressive, but it's unclear how the company benefits from the intern starting from zero.
> And I assume it is not the only thing he did, presumably he did that in addition to what he was hired for. When he found that bug, he probably did a good enough impression so that the company let him work on it.
That's a lot to assume with no evidence. None of this was stated by the OP.
> An internship is just a glorified interview process. They found a good future employee
Why are you assuming that? The OP said nothing about the intern become an employee, much less a good employee. You'd think that would be mentioned if it were the case.
It is the definition of an internship. They’ve de-risked this hire. Now they can do things like offer a more competitive offer or otherwise close the candidate with high confidence
Short-sighted companies with high turnover probably won't see the benefits, companies that actually give their employees careers definitely will. It is all about potential, what is 8 weeks of internship if you expect your employees to stay for a decade or more? It may not be the culture of Silicon Valley, but the Silicon Valley culture is more the exception than the norm (at least for decent companies).
No, nepotism is covering someone who's _failing_ at their duties, yet retaining them due to familial connections.
Otherwise, what are you really mitigating by refusing to hire your CTO's nephew? If he's a strong candidate, it's not pathological and calling it nepotism is pointless at best. Otherwise if CTO's nephew turns out to be a weak candidate and is let go then again, it's completely normal. If CTO's nephew is a bad hire, yet he's retained, then it's nepotism.
> supports that the CTO was a better judge of the candidate.
No, it doesn't, because the hiring manager's choice never got a chance to show what they could do. Besides, the fact that the nepotistic hire worked out could have been just dumb luck. After all, hiring is a crapshoot, especially hiring interns.
Regardless, this was clearly nepotism, and the question isn't whether the CTO could judge the candidate, the question is whether favoritism was shown toward a family friend, which is indisputably the case.
That is a factor in why nepotism is so endemic - people are much better judges of the character of people in their family. This is a clear-cut case of nepotism, although personally I don't see a problem here. Nepotism isn't a bad thing in small doses. This instance is a good example of why not.
For me it would be nepotism if CTO would hire a family friend that was totally unqualified or somewhat unqalified and would cover his ass to keep him in company.
Story in here is not nepotism, it is just that guy had more opportunities than others but that is just the way life is. That is why for example going to university is important - not for knowledge or lectures - but for getting to know people who will most likely be working in the same field.
No, nepotism is covering someone who's _failing_ at their duties, yet retaining them due to familial connections.
Otherwise, what are you really mitigating by refusing to hire your CTO's nephew? If he's a strong candidate, it's not pathological and calling it nepotism is pointless at best. Otherwise if CTO's nephew turns out to be a weak candidate and is let go then again, it's completely normal. If CTO's nephew is a bad hire, yet he's retained, then it's nepotism.
(is kin) -> (insider knowledge that they're better than expected) -> (preferred for job)
Specifically,
(insider knowledge that they're better than expected) -> (preferred for job)
would make complete sense and would not be looked down upon. The source of that knowledge is problematic on a societal scale, but not on an individual level.
Person A and B are equally great for the role but cannot do a triple summersault to land on a beam, so neither can get past the interview stage
But… A’s uncle who went to Harvard with a high-up says “that boy is good” so they hire him on that. B posts on HN about getting no feedback and submitting their CV to 100 firms.
Nepotism has happened.
Later A may/may not succeed, turns out he does in this N=1 case.
This debate about definition is sort of irrelevant to the broader question. Should knowledge that someone is good be ignored if the knowledge was gained through prior personal knowledge of a candidate? Even if that was possible, it would seem to me an absurd a route to take. Surely the better question is how those without prior connections can be allowed to sufficiently demonstrate their competence.
This is what nepotism is. It does not have to be that the person benefiting from it is incapable. Most of them are normal capable, some better then average some worst.
> It's like saying that grocery store's owner's daughter shouldn't be hired at their grocery store.
We're all here trying to tell you that the grocery store's owner hiring his own daughter is literally, indisputably, paradigmatically nepotism, but somehow you don't seem to get it.
I don't think anyone is arguing the owner (as an individual) is immoral. Denying the daughter that won't change anything, and teaching his daughter life skills is an even higher responsibility.
Rather, we are lamenting the inherent unfairness that is often overlooked or not acknowledged.
> In an 8 week period over summer, the candidate learned ios programming, identified a problem that was impacting customers, proposed a fix, and was able to release the fix to customers. When he demonstrated the issue and his fix to the engineering team, it was clear that he had spent long hours working with the app.
This is actually faint praise that this was the right decision. Finding and fixing a bug (there is no mention of how tricky or complicated it was) is often the warm up project for an internship to get them familiar with the code base before doing something more ambitious.
The fact that the presentation demonstrated “spent long hours working with the app” and not some particular insight or ability is also telling.
As others have mentioned this whole story smells of nepotism.
How does one filter for candidates who are very smart and willing to work very hard without having a trusted person already at the company to vouch for them?
> How does one filter for candidates who are very smart and willing to work very hard without having a trusted person already at the company to vouch for them?
Experience? ;-)
"As the hiring manager, I turned him down because of the lack of programming experience."
This candidate was already filtered out, but the CTO put him back in.
Let me put it this way: if companies can't figure out who to hire, then the fairest selection method wouldn't be nepotism, it would be random. Give everyone an equal chance to prove themselves.
>if companies can't figure out who to hire, then the fairest selection method wouldn't be nepotism, it would be random
Companies don't optimize for fairness, they try to maximize quality on their end. And many, including myself, would argue that nepotism as flawed as it is, is still superior to random selection.
1. Figure out which personality traits work in the job and select for them in the first set of interviews
2. Then refine those candidates per skill sets as if they have the right personality sets than training can fill the skill gaps but if personality does not match the job no amount of training will change that bad fit into a good one.
Perhaps attitude might make more sense then personality, as your personality can change over time/environment. Environment affects a lot of personality and how it's perceived, and expressed. A toxic workplace will make a lot of difference but people with more healthy attitudes will likely leave quickly, those with poor views on life or self image will likely stay. This would of course effect training and improving skills.
One of my best employees, ever, was "B-team." He was my second choice, after #1 turned us down.
I now think that he was much more qualified, on many levels, than #1.
He was not particularly qualified, on paper, but his extracurricular stuff showed great initiative (or "agency" as the article likes to mention). Choice #1 had all the right qualifications, but they probably thought they could do better, elsewhere. They were probably right.
My company didn't pay particularly well, so I spent a lot of time, looking for "raw material," and my management style was one that was geared towards keeping people for a long time.
It seemed to work.
I think a big "blocker," in misaligning talent, is "gatekeepers with a template." These could be HR, middle management, and, quite often, other team members, who are often asked "Could you work with them?".
We have a "template," and reject anything that falls outside that.
Here's an example, from me:
I'm retired, and was looking to find ways to help others, coming into the field. There's a fairly well-known, and successful NPO that helps disadvantaged folks to become techhies. I really liked that, and thought it would be a perfect fit.
I'm probably one of the better Swift programmers, around these parts, and have also had many years of experience doing seminars and short-form training exercises. People seem to like the way I teach. I don't really have any ego wrapped in it, and I'm not the world's best public speaker, but I also go to fairly extreme lengths, to ensure that my training is complete, well-supported, leveled to the student, understandable, and scoped.
They wanted me to proctor JavaScript LeetCode tests.
I was disappointed, and said "Thanks, but no thanks." It's not an ego thing. I would be a lousy JS proctor. That's not my area of expertise. There are, literally, tens of thousands of local folks that are better than me at that.
It’s not a job. I’m not going to fight for it. If they don’t want me, they won’t get me. Simple.
We'd just make each other unhappy.
I can understand if JS was all they taught, but I already knew they would have definitely been able to use what I had.
As it turned out, not doing that, cleared the decks for something much better. As a bonus, I’m actually able to mentor a couple of younger folks through the ins and outs of releasing software.
Here are all the poor incentive systems in tech companies:
1. Technical sourcers look for keywords in resumes - they are already biased towards prestige such as top schools or past employers. Root Cause: Recruiters are incentivized to meet a hiring number. They don't want to take chances. They just want to meet their quarterly quota. Poor incentive system. No ownership among anyone in management to improve this.
2. Hiring process looks for leetcode ability - biased towards people who have time to practice these problems. These problems are completely unrelated to the actual work. Hiring managers have no incentive to do any better. Heck, managers are not skilled enough to do any better. Poor incentives. No ownership of this among hiring managers.
3. Performance reviews based on poor definition of performance - biased towards whatever garbage management is measuring, often secretly. Management is not skilled enough to understand projects, so they rely on proxies such as lines of code, number of commits. Engineers know these are poor proxies.
Companies try to take biases out of this process by inserting hiring committees - who use these same properties to identify a new hire, or make a promotion decision. All they did was add a layer of bureaucracy by removing the power of hire/promo away from the actual manager.
Ultimately, this industry is so delusional that they forget to ask simple questions such as "Is this person the hire we need? Will they be able to contribute? Do they have the potential to contribute?"
And for performance reviews, asking questions such as, "Are our projects going to yield the right outcomes for the company? Have we staffed people into working towards these outcomes? Are they on track to achieving these outcomes? If they achieve it, can they be promoted for performing well?"
That's all there is. But it requires good "leadership" that I have found to be missing in tech companies.