120 comments

[ 0.26 ms ] story [ 202 ms ] thread
That is because they are all old white men and are being replaced by women getting into the industry. Don't need to be bitter that the SJW crowd has replaced you.
I'm so tired of hearing programmers complain about how useless programming interviews are.

I'm currently in the process of preparing for interviews. I'm almost 50. I'm currently talking with FANG and other well-known Silicon Valley unicorn startups so I don't feel any ageism yet. I hate it, though. But it's the reality of the industry right now. I don't pretend I'm above it, so I will do whatever I need to get a new job.

Yes, I hate them with a passion. Today I had a phone screen with a company and I was so nervous, I think I'm suffering from PTSD from how completely random the question will be, and how random the evaluator's perception of me will be based on said question. But I accept it for what it is. I'm auditioning for a role as "senior programmer", just like an actor would. That's the reality, and if I'm going to get myself a job that pays ~$400,000/yr in total comp, I will jump through whatever hoops I need to.

The OP was saying he was doing one programming question per week. Really? I'm doing 5 per night, and even more on the weekends. As I get closer to onsites, I'm going to be studying 8 hrs a day on weekends and leaving my kids to my wife.

I appreciate your differing perspective. But just because you're willing to make those sacrifices doesn't mean it's right or that everyone should have to.
You don’t have to, but you won’t get a job at FAANG.
Yep that's probably true. But boy oh boy is FAANG overrated in my opinion. To be fair, some people might like the opportunity to double their salary by working twice as much. But I'm not convinced any of them are making the right choice of what to do with their time here.
It’s closer to double for about the same amount of work if my friends back home are any indication (and I work for the frugal FANG)
So if you're talking 200-300k for 35 hours a week of fully remote low stress work then yeah, I'm all mixed up on this topic.
(comment deleted)
Well not remote, but pay and hours very reasonable at G specifically. I do a little more for a bit less but I’m satisfied :)
I know that Amazon doesn’t require their AWS Solutions Architects to do leetCode. I doubt that Microsoft or Google do.
My first interview in my last amazon loop was a canonical popular leetcode question (Alien Dictionary).

The rest weren’t, however. I surely got points off in my interview for pointing out how practiced Alien Dictionary was for anyone studying for an interview.

I hate that problem. I would have walked. I get ticked off every time I work some leetcode because that's what we're being reduced to and problems like Alien Dictionary are the ones that really set me off. It's just stupid. Insultingly so.
What are other popular canonical coding questions/puzzles?
From my experience, "Solutions Architects" are closer to "Sales Engineering" vs pure software roles. YMMV.
Exactly. Pre-sales, post sales, and proofs of concepts. Technical Account Managers seem to lean more on the software/proof of concepts side.

Third party AWS partners can have consultants who are more software architects.

But SAs are all over the map between pure sales => infrastructure (lift and shifters) => "cloud native" architects/developers.

I'm ok with this.
(comment deleted)
My point is that it's the reality. Change and adapt or die along with the COBOL programmers. I watched the COBOL programmers get laid off in droves after Y2K and the dotcom bust so it's a lesson I won't forget. Sure there are some COBOL programmers making mint as consultants but the total number were laid off with prejudice.
Okay I can appreciate that point. I guess why I disagree is that while I agree that you need to adapt to new technologies, you should never need to adapt to absurd hoop jumping in terms of working nights and weekends just to get hired. Ie. I do not accept the idea that, "well x hours of interviews and code trivia is normal so you need to just go do that."

At that point I would rather die than adapt. I'll go do demolition with Peter Gibbons and see my kids evenings and weekends.

I wish I had other options, but the only thing I've ever done in my life is code. I can't even put together IKEA furniture very well, so I'm effectively useless everywhere else.
That is incredibly sad to hear. I wouldn't hire you based on your inability to adapt and learn new things. You may get through the coding questions but with an attitude like that (without lying) you aren't going to get threw the interview. Not to say that you ACTUALLY wont... I really hope you do but just keep in mind they are looking for more than a robot.
I'm totally okay with you not wanting to hire me. Even at my age, I get about a 50% acceptance rate from my onsites. I would rather take a coding job that pays me well than start from the beginning in any other industry. If all it takes is a few months of studying, I'll take it.
That sounds like a perfectly valid approach to me.

What I often get caught up on, and really hope to see more people in this field consider, is that there's more than one way to live a life worth living. And often to find that, it means walking away from a high-stress, long-hour FAANG-like job, even if your salary suffers.

I've known a few people who gave their 20s to Silicon Valley and didn't have a whole lot of joy to show for it after.

But again, this doesn't mean it's wrong to make the conscious decision to stay in that life. Especially if you've found a way to make it all work and you're happy.

Adaptation does not require shutting up and being silent about faults of the thing you are adapting to.

It does not mean one needs to pretend everything is super great.

You're assuming the current rules are somehow fundamental reality, they're not. There's no law of nature that says technical interviews are axiomatic. Part of the adaption process can be forcing the abstract silly rules to adapt.
The problem here is that you are just wrong. You are speaking in universals that don't apply universally. I've been in software for near 25 years and have never interviewed anywhere that shared the practices you describe. Sure it's just a personal anecdote, but so is yours.
No, you are wrong. The OP was talking about his experiences in Silicon Valley. I was also talking about my experiences in Silicon Valley not about yours outside of it. I can guarantee if you are in Silicon Valley, this is par for the course.
The OP mentions SV but doesn't restrict its comments to it. It states "But it's the reality of the industry right now." not "..reality of the industry right now in the valley."

I have no problem with your claims when restricted to the valley. They are pretty much spot on for it and a good reason not to live there.

Have you started remote coding interviews yet?
I've done phone screens with coderpad/hackerrank if that's what you're talking about. That's the industry norm for several years now.
Kinda. How many phone-screens do you do before an onsite is scheduled?
Just one. I'm in SV and I can often get onsites skipped because I know someone and get a direct referral.
Nice. I would really like to talk to you more about your experiences through this process.
Counterpoint. I’m 45. A hands on developer, an occasional team lead and have never had to do a leetCode style interview, never studied “Cracking the Code”.

Most of the local startups are recruiting me to be the “adult supervision” and were asking me architectural questions.

More power to you. I personally haven't not seen a leetcode-style interview in at least 15 years in Silicon Valley. There's also system design questions these days and I was told Google does "Computer Science Fundamentals" and Facebook does "Distributed Systems Design" specifically.
What metro area are you being recruited in?
While ageism is real, I like your spirit and somewhat agree.

Probably the hardest part of looking for and getting a FTE gig is starting over clearing a space for yourself I think. It's tough to switch from being the local expert to just another FNG.

Personally (like anyone cares, but this is the internet after all) I'd like to find a really interesting job and I don't give a rip about the money. I suppose there's always open source, but working for free violates all kinds of my internal makeup.

I've had over 10 jobs in my career so starting over, making new friends, learning new code bases from scratch etc is old hat to me. I wish interviews would test for that instead of leetcode.
Agree with everything else, but what company (even in silicon valley) is paying $400k total comp in the first year to a senior engineer?
400k TC is about average (if not low) these days for staff-level positions in SV. Getting those jobs requires studying hard, though.
Maybe after a few years with a lot of stock appreciation. I don't know of any company that will offer it straight-up. If you do, let me know and I'll consider switching right away.
Facebook, Google, Airbnb, Uber, Lyft. All of them easily offer 400k to L5s.
Yes, 400k is easily attainable as an L5/E5 at FANG. That's 200k base salary, 30k annual bonus, and $175k yearly RSU vesting (or about 750k initial grant). Those are definitely possible. Staff-level (L6) is about $250-300k, $50k bonus and $300k yearly vest at FANG. Senior engineers at Netflix make $600k or more per year in base salary only.

I'm not smart enough or ambitious enough anymore for staff but L5 is definitely doable.

Is Google really that much of a jump from L4 to L5? Their L4 packages are reportedly in the ±270k area (and my offer last year was well into the minus part of that range).

Also, and possibly related if the point above is the case, I have read from various Googlers recently that getting hired from outside at L5+ is really hard.

Low-end L4 vs High-end L5 probably is like that.
270k is somewhat low for L4. You can get hired as an L3 at like 225k
(comment deleted)
Most senior level jobs don't even break 200k. Sure for a faang job it should be expected to play this game no matter how silly it is. But for 99% of positions out there it's absurd.
The reason to complain about a bad thing, is because in the entire history of the world, nothing ever got better because people accepted things as they were.

You benefit right now, in countless ways, from past versions of those exact same people you are so tired of hearing. Awesome gratitude, and way to pay it forward.

And what's your suggestion to make it better? Giving us the definition of complaining... well thanks.

There is a correlation between these horrendous interviews and quality of candidates otherwise, if they were full of false positives, we would stop doing them.

The problem is they produce false negatives and how do we go about fixing that? Is it even that big of a problem? These are all debatable. We haven't hit the point where hiring is SO expensive that we can't handle false negatives, we may in the future, then we'd work much harder at addressing the current situation.

>if they were full of false positives, we would stop doing them.

Or the alternate explanation. Hiring is incredibly difficult, everyone is bad at it, and the best solution people can come up with is to cargo cult Google's hiring process.

From experience I know there are many companies that have absolutely no evidence to support their hiring process, they just do it because it's the current fad.

And I assure you whiteboard interviews are full of plenty of false positives. Particularly now that people are spending so much time prepping for the interviews. You know the saying about metrics ceasing to he useful

It will be a big problem if your false negatives become your competitors.
But hiring IS crazy expensive because of the hours of effort spent by existing employees on the hiring side of the process, and the difficulty of finding "good" candidates who are willing to spend those hours plus even more of their own on the being hired side.

In other industries people just don't talk about spending 6-8 hours a week every week interviewing applicants--not even in high-turnover industries. That's an incredible cost, but it's not counted as a line item, just yet another annoyance of the annoying hiring process.

Agreed it's expensive.

My claim is it's not expensive enough yet for decision makers to actively explore alternatives. Will it get there as supply of quality engineers decrease? Maybe. Probably.

In my experience the companies I worked at tracked it very well, and we knew exactly how many hours were spent on hiring related work and how much it was costing us. We still used the current industry standard whiteboard, full day approach.

Yes, but those hours aren't actually a line item when salaried employees do it, so the expense isn't as visible as other expenses.

I think the perception of a lack of quality engineers in the market is just a symptom of the problem: the expense in time and annoyance of changing jobs and the risk (or experience) of becoming a false negative reduces job mobility and heavily slants the resume stack towards the true negatives rather than the experienced people who would be more actively looking around in a saner market.

I haven't heard of a better explanation for the notion, seemingly unique to software, that so many people floating around the industry are so abysmally unqualified to work at another company in the same industry. There are historical factors, but they don't seem adequate to explain this perceived fraud problem.

I've been employed since the 1990s, and I've seen the world pre-Internet. I'm exactly one of the people that have seen the changes in the industry, including in hiring practices and have been forced to adapt.

I've interviewed at Microsoft when they asked me how to find the fake coin based on N number of weighings. I've gone to Silicon Valley Brass Ring job fairs during the Dotcom Boom where they interviewed onsite and I was asked to code on the spot. During that era, various companies asked me things like what the largest number was for a 2^64 number or what the current Linux kernel version was, or what the default TCP timeout was.

And since Google came on the scene with their focus on algos, the entire industry has changed again. Every year the interview process in Silicon Valley has gotten harder and harder. That's the reality. Crying about it won't change it.

If I had the power to change it, I would hire fast and fire fast, like Netflix. But that comes with its own problems as well, so there is no best solution. All you can do is adapt and change with the industry. I know I'm not smart or ambitious enough to ever make it to the highest echelons of a company to affect culture so I'm happy getting paid as much as I can until I retire.

Some of my former co-workers are STILL stuck in the same company 16 years later. I still have lunch with them at least once a year, and they are petrified to change companies even though this current company keeps laying people off and replacing them with offshore workers. They don't have the guts to buckle down and study and adapt, so they're waiting to get laid off, which is sad to me.

A while ago I was contacted by a FAANG recruiter and so I said, sure, I'll interview with you. Then I started looking at all the material they send to prepare you. And I started looking at all the sites dedicated to passing the interviews. I started working the leetcode problems, but the more I did the more pissed off I got that this is what it comes down to.

> I'm doing 5 per night, and even more on the weekends. As I get closer to onsites, I'm going to be studying 8 hrs a day on weekends and leaving my kids to my wife.

I'm not going to do this. No job is worth that much stress to me.

The kids can have these jobs. There are plenty of other interesting development jobs. They pay well, just not FAANG well.

> But it's the reality of the industry right now.

It really, really isn't. Thanks for the reminder of why I would never live/work in SV. I have never encountered anything like this in many years of working and taking new jobs. Mostly they look at my resume, we talk about stuff I've done, there's maybe a couple simple technical questions specifically related to things I've done and things that the position will involve, and that's about it.

> I'm auditioning for a role as "senior programmer", just like an actor would. That's the reality, and if I'm going to get myself a job that pays ~$400,000/yr in total comp, I will jump through whatever hoops I need to.

Your will power, mental flexibility and cognitive endurance -- should deserve nothing but praises.

I am going to add an additional assumption here, is that throughout your work, you were able to impress people you worked for and with, in the same way.

So you have built a network of 'admirers' so to speak, of your skills.

With that, you should, evaluate if these types of capabilities deserve more, than what you will be getting.

When you sign up to work for a company that does not particularly value your experience, your network -- but instead demands up-to-date / or needle-in-haystack interview skills -- you are trading reduced risk (of a salaried employee for a large corp), in exchange for reduced financial reward.

Other venues your own startups, your own contracts, may be joining ad-hoc contracting gigs.

$400,000/yr in SV is peasant wage. One slip on the career ladder, and you'll be shooting up smack in a tent city like everyone else over there.

In a country where most people live like kings, why is everyone so determined to become a peasant?

I don't know how you can get anything out of or the time to work through 5 problems per day, have a day job, and a life (going to the gym, family, friends, eating, taking care of my life). I guess it's possible, but sounds almost like you might be setting yourself up for total burnout. I've tried that and after a week or 2 of that I'm extremely tired and have difficult time doing much when it comes to coding and problem solving or even work.

I have a couple onsite at FAANG coming up in the next few weeks and I decided to buy a year of InterviewCake to work through the problems. I'm trying to do at least 1 per day or so and more on weekends. I'm about 2/3 of the way through the course and will go through again when I'm done and supplement with Cracking the Coding Interview, High Scalability blog, and probably some LeetCode problems. Otherwise, I have a job right now I'm very happy with and comfortable. I can always try again if I want to give it a shot.

Lol, your user name 'docker_up' reminds me of a hard-ass man espousing the masculinity trope of 'manning up' or 'MAN UP!' to some sniveling coworkers in an alternate business domain, but basically having your same attitude.
I have used online tests for programming ability. I like them. The ones I have used are not hard, and are easy to look up the answers to in documentation (encouraged!). It’s a great way to filter out people who have no idea what they’re doing. I’ve gotten middle scores in tests for languages I don’t use, and I think that’s great. You cannot differentiate top performers with these kinds of tests. You can successfully weed out people who have no idea what’s going on. You should be able to pass on baseline individual competence if you’ve got it.
We're hiring for around 17 Senior or Principal level software engineers, and we don't have any stupid tests. We are Rally Software, in Broomfield, CO. Now we're owned by Broadcom.

https://broadcom.wd1.myworkdayjobs.com/en-US/External_Career...

Are you offering $400k TC?
It's certainly not bad. The stock is fantastic, my annual bonus can be over 20%. So, with healthcare, unlimited PTO, an onsite gym and cafeteria, etc, it's not a bad deal at all.

Yes, the housing in the immediate area is expensive (Boulder County, CO), but there are many more affordable places to live within commuting distance.

What is “unlimited” PTO?
I'm in Arvada and have been doing web dev a long time but don't tick some of those boxes, specifically have never worked in Java. Pretty much just PHP and its frameworks. Do you think I should bother applying?
I would take a look at all the jobs on our board in Broomfield, CO. Not all are Java or Full stack. We write the job descriptions for ideal candidates, but we are specifically looking for Sr/Principal level engineers, and will pay accordingly (10-15 years experience).
> and we don't have any stupid tests

What's your hiring process look like?

What does Rally Software make? Edit: Ah, ok, found it. Nice.

Hey! I'm using your software right now at work. Small world
Do most companies do this? My impression was that it's only the FANG-like companies and others centralized in SV.

If you want a specific type of company, you're gonna have to play the game.

(comment deleted)
London companies are quite fond of this bullshit too, unfortunately.
> Do most companies do this? My impression was that it's only the FANG-like companies and others centralized in SV.

Also maybe FANG wanna-bees that are cargo culting interview practices.

I’ve interviewed at companies big and small, new and old, none in Silicon Valley, and most of them had whiteboard questions.
(comment deleted)
Agree with the conclusion, this is just the way it is and will be for the foreseeable future.
I've got an Anki deck that I use for prepping for interviews. It covers a lot of algorithms, dynamic programming, complexity, etc. I open this deck every few years, whenever I need to interview, and otherwise never use it.

Programming interviews are some weird cultural hazing ritual that apparently you just have to do until somebody figures out a better way and it catches on.

+1. I think Anki is a very underrated/underused tool for programming interviews.
Any chance you could share your deck? It would be mighty helpful.. :-)
So glad to see a plug for Anki!

I use it quite a bit, for spoken language learning, programming language learning, and more.

I helped a friend get set up for Anki, and it was quite a pain, so I wrote a guide to using Anki for programming practice.

If it's helpful to anyone else, cheers!

https://josh.works/anki-spaced-repetition-system

I found my way into programming via a civil engineering background (lots of GPS and GIS), but I used to be a sysadmin. I also can't invert a binary tree on a whiteboard.

Oh well, I guess I'm not employable! (I'm currently a remote web developer).

Well, since nobody actually knows what "invert a binary tree" means, you've got a reasonable excuse...
I always assumed this meant

Allocate an array sized by the number of leaves. Store all leaves. Reverse all pointers. Former head points to null.

It's a dumb data structure

I believe it's more along the lines of just traversing a tree and setting left nodes to the right nodes and vice versa.
I don't think senior developers are in demand anymore. There are too many, and senior means 3-5 years at many companies so the pool is even bigger. The number of developers required is getting smaller as frameworks/serverless are/is getting bigger. The importance of their work has been reducing..
> You now have a larger pool of great developers you can add to your team but, on the downside, this has drastically increased the number of applications you have to sort through in order to find the right candidate. Could you imagine sifting through 500 applications for a single position?

Maybe the problem isn't 500 applications, but rather an organization that is trying to hire too fast by not being specific enough to hiring personnel and services. Shotgun approach is a very effective way to generate spam.

Regardless, any job for which an automated online test can reliably be used to filter candidates is a job that's at most a few steps away from automation.

Coding exercises are just coding exercises. Sure some maybe stupid, but most are perfectly fine. I’ve been surprised by both who passes and fails them. And yes, I know good engineers I personally worked with and would vouch for fail them. They are an imperfect test, but usually not an unreasonable one.

Occasionally (usually at smaller companies), you’ll get some exercise that’s completely inappropriate for the time allocated, or requires knowing some unobvious trick.

One exercise I think of was the time a startup company you know, asked me to write both an IRC server and client in like an hour and a half. The interviewer and I spent a surprisingly long time googling how to open up a port in Python (something I have never had to before or since, and something I hadn’t done at all since maybe 1999), and trying debug terminal settings about why terminal was receiving things twice. None of that is related to the problem at hand, and all could have been solved with a skeleton. Needless to say, this went poorly, and I wasn’t very impressed with them either.

However, the only interview I ever refused was with HomeJoy. The interviewer said, “Why don’t you come and spend the day with us, and wow us with what you can do with our data.” Seriously. “Wow us”.

No. I’m not going to spend 8 hours on something completely ill defined, subjective, and biased towards a meaningless visualization. It’s not a serious interview, and proposal confirmed my impression of the company form the phone screen.

Yeah, that's kind of where I am with all this - if you're going out of your way to try to stump me, you'll probably succeed, but you're probably going to stump most everybody else, too, and end up not hiring anybody.
At a previous job, we were interviewing people, and my manager at the time came up with some interview question and would fail people who didn't get it. I don't remember what it was exactly. You would go through some data multiple times, and calculate some answer. If you were somewhat clever, you could do it in two passes. But there was a trick, where you could do it one.

About half the people tested could do it in two passes. I never saw someone do it one. I told my manager his criteria was bullshit and he should stop expecting a one pass solution for a passing mark. Of course, he got all up in arms and said I was stupid for saying that. We grabbed another person on the team, and him do the question. He got a 2-pass solution, and couldn't see the 1-pass solution. So my manager started to explain it, and his explanation was going nowhere. Eventually, we got the entire team around looking at a whiteboard listening to him to try explain this 1-pass solution. Fifteen minutes and seven engineers later, he succeeded, and unironically declared, "I told you it was simple."

Funny I happen to be looking for a new job right now and have run into the programming challenge just last week. In my case I passed and now tomorrow I have my next interview with the them. This time I'm doing a web-ex with two developers who want to talk shop and take a peak at a 'recent side project'. I work with 10 other programmers and none of them have side projects to show; fortunately I have a few including one that makes a little bit of money. Should be fine but you never know what kind of random stuff they toss out and expect you to know.

Before this one I had a company ask me to write a sample iOS app with a list of data + a second page with specific validation rules for the form. I wrote that 3 weekends ago and sent it in, still haven't heard back from them, I guess they get 100's of applicants a week (it's a full remote job).

I used to interview Senior Devs when I worked for Amazon. It's strictly part of the interview training process not to ask purely algorithmic questions (and yet some still do). I chose not to and it gave me much better data points.

I chose my next role because they didn't ask me those questions and instead asked how I'd tackle problems.

Engineers have enough market power to change this if we choose. For some reason, we just choose not to.

I think it's a character and pride issue.

You know you can solve such problems (sometimes even enjoy them) but the conditions you're solving them under aren't at all remotely reasonable. Giving up admits defeat and what makes you a skilled engineer, part of your identity/character, is that you rarely, if ever, give up on a problem and love a challenge.

I think we should view this as a different challenge all together instead of the one presented. Let's understand the presented challenge is silly and look at the problem as a need to change the presented challenge to something all together different utilizing our skills.

What do you mean by purely algorithmic? You still had a code challenge as part of the interview yes?
Contrarian opinion, but I wouldn't want to work with anyone who couldn't pass a technical screening, and I wouldn't trust any architect who couldn't implement their own designs. Wrangling APIs and knowing which technologies are hot right now don't make a senior software engineer (emphasis on engineer). Maybe at certain companies it does, but if you're building any sort of product you need to be able to DFS and BFS and sort and map from muscle memory.

So I don't understand why people think there's a disconnect between Leetcode problems and day to day work. Even in web development, the fundamental skills that Leetcode tests for come up daily. Something as simple as manipulating the DOM, for instance, requires that you know about tree data- structures and algorithms.

I agree. I have noticed there are a lot of people who really struggle when they are put out of their comfort zones of X framework in Y language working on mostly the same or similar code bases.

There are lots of companies that just need a guy who knows Spring design patterns or something, and they shouldn’t be giving tough algorithmic challenges, but at certain tech companies paying highly for people to work on very diverse sets of problems, many of which are technically complicated, it makes complete sense to prefer people with very strong fundamentals.

Technical screening is purely a waste of time if you are not sitting right there with the applicant watching them write the code. (How do you know they wrote the code, otherwise?)

And if you are sitting there watching them write the code, it's still a waste of time. An applicant's relative level of skill can be ascertained in five minutes of talking with them instead of 30-60 minutes of watching them write FizzBuzz or something equally useless.

Hiring in literally every other engineering discipline works this way. New hires include a 90-day probation period just in case someone can talk the talk but can't walk the walk. Good software shops function similarly.

I think the answer is, use your network. Contact people you have worked with, or people who have worked with people you have worked with. This is another sort of credibility beyond that of a programming test (and covers some of the areas that a test can't, like ability to deliver and communication).

That is what worked for me in my last job search (1 year ago).

Programming tests are what generally have me shying away from finding another job. It really makes me feel like I'm back at school trying to prove myself for a test, when in fact my portfolio on github or whatever I've included with my resume to the hiring/hr/interviewer should suffice.

But a whiteboard test? It's almost insulting.

Problem is that against many other people, most of the hiring board doesn't know if you or some resume-stuffing placement service actually did all the work you said. Plagerism and faked credentials are way more expensive to susse out than an hour or two interview.
This is seriously f'd up. When I was hired by IBM years ago, they also had a test called the IPAT (Initial Programming Aptitude Test) but, guess what?, there was no programming in it! Instead, the test was designed to see if one had the basic reasoning and logic skills which would be necessary to solve a wide variety of programming-related problems -- not one stupid, specific problem in a particular language. That's just asinine.

Making sure that developers have the "needle in a haystack" solution that you're looking for almost guarantees that you'll weed out the most talented folks -- the ones who are programming generalists that can reason about and solve any kind of programming problem.

It's sad, the problem is that the people creating and implementing these tests are doing it because their lazy and ignorant. They know, given a straight-forward interview, that they would be incapable of determining if the interviewee is capable or not. They also want walk-on developers that require little to know start-up/training capitol on their part. They want and want and want and they don't know what their missing with the weeding out process but hey ignorance is bliss right? Right, except when you find out the only people who can pass these tests are people high on the autistic spectrum. People who most likely will not make it through the face-to-face interview process or people who cheat.
I see a lot of talk about 400k a year. That's a silly number.
Last interview I did involved coding up factorial, solving the 25 horses logic puzzle, and debugging some intentionally awful code (that no-one would ever have written in the first place.)

As soon as the logic puzzle came out, the job was a no-go for me.

The answer is to first say you're walking, then ask the interviewer to solve it in 5.

You should not be asking questions you're not qualified to answer.

The programming tests are a variant of this. If your own programmers who do the job right fail at them, you should skip them in hiring. It means the test fails validation and you will get a number how much it fails. If you accept a test with 2 in 3 failure rate, then do not complain nobody is there to apply.

If the test is aspirational, you have to still verify how successful your people are in solving it.

(comment deleted)
My main problem with programming interviews is that I can’t use external references to do them, which is totally not how I work. Even if I know how to solve something off the top of my head, I generally do a search to make sure there aren’t better ways of doing something that I don’t know about, and also to build confidence in my chosen solution. This is how I have discovered most best practices over my career.

If I’m given a task to solve some weird algorithmic CS problem, the first step would be to go to google and research the problem. If it’s solved, I implement that solution.

When there is no solution, I will put pen to paper and work it out myself. But that could take an unpredictable amount of time, and doesn’t help if someone is constantly watching me work or forcing me to explain what I’m thinking, because I think much faster than I can explain, and some lines of thoughts lead to dead ends, which can make people grow impatient with pointless explanations of things that will never work.

Of course, in an interview you can’t just use Google to solve everything, because interviewers will snigger and say “tHiS gUy DoEsN’t KnOw sHiT”, never mind that this is probably how 99% of developers work given the amount of questions and code reuse that is out there. It’s just not realistic.

Is there a market for a licensing body for this stuff? If you believe what you read on Blind, the top companies all test the same material, e.g. leetcode, CTCI, design system primer, Designing Data-Intensive Applications, etc.

Why can't I prove that I passed this screen once, then take a piece of paper to each of my FANG interviews and skip the technical part. Then maybe retake it every 5 years if you're interviewing.

This is the structure the industry appears to be begging for with their current processes.

Professional licensing, unionization, and or startups that directly compete with them that avoid this hiring trend entirely.

I think that Engineers are forgetting that practiced skills are easier than experienced skills. being tested on a bunch of weird-ass algorithms and data structures requires an experienced programmer with a traditional education perhaps a few short weeks of studying.

this doesn't make these problems hard, it just makes them inconvenient and a poor measure.

there are only a handful of Advanced algorithms that I have had to implement from scratch in industry. data structures on the other hand are usually the bottleneck where I find myself needing to be more creative.

this is possibly the same category as white boarding, this is not hard just inconvenient. I would even argue that whiteboarding is much more necessary than algorithms problems, as a measure of ability to communicate over a technical Topic over a live edited interim document.

the biggest problem against these algorithms and data structures tests, is that they discriminate against those without a traditional academic background. if your company does not often enough run into inability to solve these problems, then you're testing for the wrong thing

two things I have found useful in this space, for every interview I ask in advance whether I'm going to be asked to these questions, and I am very specific about what I have experienced in. If any questions are asked outside of my experience I can lay claim, and reference my resume for a lack of note. Every time that I have expose myself as unexperienced in a topic during an interview, the interviewer has changed the question for me

At 54, I work at a FANG company (after >25 years mostly at startups and a couple of more traditional big companies). I mention that only to establish that I've run this gauntlet successfully, so I know it's possible.

Sure, these kinds of interviews have problems, some of which might disproportionately affect older programmers. Sure, our industry (and FANG companies in particular) are rife with ageism. It's usually not overt, but I could practically write a book about the "soft" ageism of work environments and evaluation processes that disproportionately affect older workers (high overlap with those that affect workers with families or with disabilities BTW). There's definitely reason to complain.

That said, there's also some question about how valuable older workers are in newer companies. I don't particularly suffer from imposter syndrome, but I do sometimes wonder about the value of my experience. Sometimes having known other ways of doing things is an obstacle. I find myself fighting tools that have been built with a different philosophy. I find myself at odds with coworkers who have different views about things like designs, tests, and code patterns. Even if I'm "right" these minor conflicts are sometimes more of a drag than they're worth. There's value in having people be on the same page. I adapt as best I can, as well as anyone I know, but a lot of things still don't come as naturally to me as to the kids two levels "below" me who grew up with all this.

Sure, having some folks like me is good both because of the lore we carry and to prevent monoculture, but how many at 1.5x the cost of our younger colleagues? Not too many, I think. The world has always needed fewer senior developers than junior ones. The reduction in demand has always been faster than the reduction in supply, which is why so many have always "graduated" into other roles (especially management) instead of remaining individual technical contributors. That is only becoming more true as the industry grows and technology accelerates. Nobody can rest on their laurels. The onus is on the individual to make themselves more competitive as they become more senior.

(comment deleted)