Hacker News new | ask | show | jobs
by ianbutler 4 days ago
I don't think this is really entirely true. Everyone who isn't a FAANG or Frontier Lab seem to be absolutely starving for good talent. It's far more often that I hear "we interviewed someone we thought looked good and they couldn't even write a for loop, where are all the good engineers".

I think you have far more leverage than you think in most places still.

8 comments

> * Everyone who isn't a FAANG or Frontier Lab seem to be absolutely starving for good talent.*

I think this is largely a pay gap problem. There’s a bit of prestige involved (why work for random corp’s dev dept when you could work at FAANG) but a huge part is that most those random corps are paying way less. The best talent generally goes where the money is.

It's not just pay gap. A lot of FAANGs treat employees as very disposable and fire people with an email, but at least provide learning opportunities, growth, have budget for projects... other companies can be much worse.
Maybe it’s not this way anymore, but VC backed companies played as good or better than FAANGs 10 years ago but it was a mixed bag of talent. I ended up at a place where the engineers hard largely come from a non-FAANG, but storied engineering culture that was different but had many analogous solutions to common problems.

The biggest problem with VC startups is their geographic concentration, but sometimes remote is available.

I think a much better metric is the results of the compensation, not the peak dollars earned for some narrow window of time. The differences in the cost of living and local economic inflation can become that significant in the long run.

I'm not sure I would call an appetite for risk a "talent", or even a natural consequence of talent.

If we look at the average case, there are plenty of millennials now turning 40 who have higher net worth and a better work-life balance precisely because they never worked for a FAANG. Can't argue with the results of sticking around somewhere and climbing the ladder the traditional way versus enduring all the job hopping, glass ceilings, and layoffs.

I'm skeptical that this is true with respect to net worth, given that I have worked at both FAANG and non-FAANG companies and I know what I got paid at one vs the other.
What factor(s) would cause you to go to a non-FAANG, having experienced both?

Pay means a lot; pay doesn’t mean everything.

Sounds like we could fix this if we did a better job of holding FAANG accountable for the sorry state of technology. So many needless social problems have been introduced by technology and it happened on their watch. That prestige... we could poison it.

Maybe working at FAANG should be something to be embarrassed of.

The prestige is the total comp not the company. Nobody gives a fuck you worked for Facebook or Google but they do care you made 700K doing it.
Oh I can guarantee you there are many places where people give many fucks. Maybe you don’t because you have never reached a place where coming out of those companies is considered a fast track to whatever.
Yeah, maybe - but you know what one of the perks of not working for FAANG is?

Not working for FAANG.

Some people prefer having a spine over selling their integrity. There’s heaps of opportunity for doing interesting work in a less toxic environment in places other than Silicon Valley, if you accept a little less pay.

> I don't think this is really entirely true. Everyone who isn't a FAANG or Frontier Lab seem to be absolutely starving for good talent

I don't think the management at most companies could identify good talent if it poked them in the eye. Good talent wants to have agency and freedom to act, the average manager wants to breathe down your neck at all moments

I'm inclined to agree with this. If management can't personally code, and they don't know how the big companies acquire talent, the company ends up in a deadspin of not paying enough, not adequately examining coding skills during interview and probationary periods, and having mediocre seniors who have been around long enough to understand the eccentricities of the stack but still aren't actually any good controlling the hiring and training pipeline and selecting the new architecture.
I don't think I have ever encountered anyone who could not write a for loop that got a job as a programmer.

I encounter plenty that used a for loop when something else would have been advisable.

I hired a data engineer who was unable write a for loop in their primary language (python).

The task was to write a simple sum of a list, but they had to convert the list to a pandas dataframe and then call some series of arcane functions. I originally thought this was just a preference but when I asked them for the simpler version while standing over their shoulder they were unable to do it.

They had ~8 years of claimed experience at the time and were from a country notorious for faked credentials. Turned out to be an ok hire overall (friendly, hardworking) but definitely lacking 80%+ of their supposed competencies.

Data engineering started off as just another discipline in software engineering, but then the BI people got jealous and anyone who used sql started calling themselves DE. The term is fatally cheapened.
You hired someone for a programming role who could not write a FOR loop? Oh dear.
I think he was being a little hyperbolic, but the core concern (that programmers look competent right up until you have them write a FizzBuzz) is very real.

(Source: I've helped hire lots of programmers.)

Fizzbuzz is interesting because it relies on either the candidate remembering the modulo operator, or the interviewer allowing them to write a modulo function. I can understand why a candidate could forget how to find the remainder from an integer division.

The bigger issue is not having seen fizzbuzz before, really.

I've always wondered how people who write code could possibly be unaware of the modulo operator. In the 8-bit and 16-bit CPU era, or even just when working with data types of that width, one has to be aware of wraparound / overflow if the value gets too large and that's what modulo is. Is it just developers who came of age in the 64-bit CPU era that have this gap?
>I've always wondered how people who write code could possibly be unaware of the modulo operator.

Worked for 25+ years in regular business software - banking , insurance etc. I never recollect using the modulo operator.

When one's primary handling of numbers comes down to either linear (single-dimensional) lists or money, then you won't use modulo very much.

But any time you're walking over a discrete multidimensional list packed into a linear list, or walking over any discrete periodic signal (one very common example would be walking a linear array of screen pixels, walking over pcm samples in an audio waveform, literally 100% of GPU programming and 90+% of SIMD programming) you will want to be able to translate between "how far from the start am I" and "how far into the current cycle am I", and modulo handles that.

Similarly for almost anything involving time calculations (and for the same reason: because they are periodic). Modulo is literally described as "clock arithmetic" after all.

Here you can find Tempestt Bledsoe singing about it, lol https://youtu.be/fqtzqcJ6agE?t=570s

So you are absolutely correct that there do exist avenues in programming which can dodge this particular raindrop, I hope you aren't opposed to the idea that they are at least few and far between? ;)

Fizzbuzz is not the least bit interesting on a technical level. It's interesting because even though it's trivial to "cheat" (you can just learn/memorize Fizzbuzz specifically), it still works because people so incompetent they can't even write something as trivial as Fizzbuzz are unlikely to have heard of it.

Fizzbuzz is used to confirm an already present suspicion of complete incompetence, not to assess skill (ability to pass is not a meaningful signal).

I said "interesting" but I really meant "bad". You might as well test someone on whether they remember bitwise operators.

I feel that you did not address the specifics of what I wrote. It's a silly test because it's meant to cover the bare basics but it still relies on knowing/remembering the modulo operator, which junior hires might reasonably not have seen. If everyone didn't already know about fizzbuzz it would be even more stupid.

I’ve personally experienced devs who could not sum a collection of ints, “in any language of your choice”.

I’m not talking about devs who got hung up on integer overflow issues (or even off-by-one errors), but rather “just couldn’t get started at all”. I have no idea what they did before or what they expected to do if they got the job, but I doubt it would turn out well.

Yep, I've seen that too. I start with "sum an array of ints" due to the known problems using fizzbuzz, and there are software engineer candidates who can't or won't do it. Nobody believes you until they see a candidate like this themselves.

My pet theory: A lot of companies are very, VERY big, and a clever person who doesn't know how to do their job but can identify a weak manager, can simply get lost in them. Hiding away getting the paycheck, but doing nothing except convincing their manager they're doing things. I've definitely met a few people in my career that I believe were doing exactly that.

Yeah, I've seen that too, even in pre-LLM times.

I don't have a good explanation for how candidates with zero ability to write code can make it through a hiring funnel to sit in front of you. Maybe they don't know what they don't know.

No, fizzbuzz trips people who already have a job because they make two for loops, make too few IFs, or generally don’t have a logic mindset and get out of the interview saying “This is not something that’s asked for in the job!”
Sadly I have run into people like that. To this day I am convinced they paid someone to stand in for the interviews.
I'm probably the person ya'll are hating on. Writing code and writing code under pressure while you have a full blown anxiety attack are not the same thing. I'm lucky if I can accurately tell you what I had for breakfast once that triggers..
If you program daily, but were nervous during an interview, I would have been able to tell and always tried to get candidates comfortable before getting into any programming - talking about something they liked or were passionate about, reframing my questions in terms of something we talked about or was on their resume.

I found most of the people who couldn’t program were not the nervous ones, but were smooth talkers who probably didn’t write much code. Maybe they did at one point, maybe they never did, it was hard to know, but I couldn’t get even logical steps to solve straight forward problems out of them. Those were the worst interviews, not because the candidate wasn’t a fit for the role, but because then I had to panic to try to keep the experience positive, constructive, and collaborative. When I expected to fill 20-40 minutes talking through a problem with someone who can’t solve problems, let alone produce anything remotely looking like code, I always found that painful.

The questions I asked could be solved by non-programmers (my wife, who was an elementary teacher and even my kindergarten son could come up with reasonable solutions, but of course not code). That was probably the biggest issue I ran into with nervous people - they didn’t think about the problem first, they’d try writing code before really thinking through. That was usually easy to correct and I didn’t fault anyone who could handle correction and guidance.

I don't know, at least in Europe it's impossible to get a job right now unless you're well connected

companies seem really eager to just decline applicants before they even get interviewed

Oof, so it's not just me.
We really need to let go of the notion, that FAANG necessarily has especially skilled engineers. Their products indicate, that this is not the case. Look at what kind of shitshows Google search and YouTube are for example. Or how FB is only bots now. Do these things still rake in money? Yes. But that's rather due to history and entrenchment, than sheer quality of these platforms/tools. Something all of FAANG have failed at is content moderation. Their quality actually sucks.

Also I would like to add, that companies in general are quite clueless about how to hire good engineers and set up hiring processes, which reward talkers and liars, rather than good engineers. Someone not able to write a loop will be found out, but that doesn't mean they won't hire other types of mediocre engineers, instead of good ones, that they gave a pass. Don't forget, that often not even any engineer is involved in taking a look at someone's application or its contents. Often it is HR going off of checklists, which leads to them ending up with the people, who have fake CVs ticking all the boxes.

I wish companies were able to distinguish better, because then your point would stand, that talented engineers had far more leverage. Lately though, I have lost my faith in that.

> which reward talkers and liars, rather than good engineers

Part of that is also about who management and HR are socially comfortable with and candidates that may have connections with people in the company. It's often not a level playing field because of cronyism, nepotism, and many other -isms.

That's also why a good engineer, confident in their skills and value, needs to read the room or figure out what's going on. If the situation is not to their liking, then jump to another company or start their own business, whenever the chance presents itself.

Unfortunately their hiring practices are bonkers.

Of course knowing how many golf balls fit into a plane will help when it comes to fix that nasty bug on a Vulkan driver.

Or having to solve a data structures and algorithms question as if just left university, completely disregarding the 30 years in between.

Naturally we all do cool algorithm problem solving before getting into bed, and can't wait for the next Advent of Code.

Then they complain they can't hire anyone, go figure.

A few years ago I was tasked with doing the technical interview for an operations team in the Chicago area. The job was mostly restarting services on windows and Linux. Running variously automated processes. Rebooting stuff. Be a resource on outage calls. Everything was documented, it was pretty entry level.

I interviewed over 100 people. The number of people who didn’t even know how to search with Google was mind boggling. Some wouldn’t even make an attempt. The people who knew their stuff laughed at the end of the interview and said, “is that it?” But even the most basic questions, that some found laughable, knocked out 80% of applicants. Many people who claimed to know Linux, interviewing for a server support role, had never touched the CLI.

It was rough. By the end of the hiring window, they were just making offers to anyone, so they didn’t lose the positions. I wasn’t happy about that.

> I think you have far more leverage than you think in most places still.

In some sense this is true, but in my view it's not whether a person theoretically has leverage or opportunity, but whether it's feasible to practice or to explore it. If enough people believe that programmers shouldn't have leverage, and in-practice if there's only negative repercussions from trying, then it's not meaningful. Broadly, in any profession, it seems like it comes down to a whole lot of luck whether you have real, practicable leverage. Barring some exceptions for somehow intentionally positioning oneself to be solely responsible for an uncommonly important system in an uncommonly lucrative business, but that seems to me to also be dependent on a lot of luck.

Overall, it seems that if you really have leverage, you effectively can't economically be replaced, and everyone knows it, but otherwise you'll be on the chopping block for not doing exactly what your narcissistic boss wants on a moment to moment basis.

>It's far more often that I hear "we interviewed someone we thought looked good and they couldn't even write a for loop, where are all the good engineers".

Absolutely insane claim to make coming from the other side of the process. You get FAANG-style Leetcode Hard assessments, day-long takehomes with no pay and complete nonsense rejections even for very run-of-the-mill companies. The kind of feedback you're usually getting is so unfounded it can't even be considered in the category of wrong or right. But that's not a problem, since most of the time you're just getting ghosted. And all of that is assuming you're landing interviews, which in an optimistic scenario is going to take you weeks, sometimes over a month.

Anybody who claims they "can't find engineers" either has a broken hiring pipeline or enormously big self-esteem - based on my conversations with founders and people responsible for hiring, it's usually both.