Given HN's demographics, I'm probably older than most here. I've worked with and personally invented quite a few great products, usually spanning Product, UX, and Engineering work. It's a joke to pretend ageism isn't a thing, and asking questions that only a recent CS grad is going to remember is not a tacit form of filtering for age. There's not many technical questions a fairly smart, non-lazy person with some experience can't either find with a Google search, a conversation with a peer, or a bit of hacking to figure it out. It's been a LONG time since I had to write the code to invert a binary tree, but I've done stuff orders of magnitude more tricky and valuable than that countless times, as have many others. What makes a great engineer? I've lost count of how many times I've had to rewrite the code of many engineers who aced the 'whiteboard shuffle', then wrote hopelessly over-complex and unmaintainable garbage. Most of software engineering is not that hard from a 'learn the things or look them up to get stuff done' perspective. What's hard is working well with others and consistently emitting tight, semantic, legible code that's fun to look at and extend.
You say that as if you were born perfect. As someone of elder years myself (and not just by SV standards), what you are saying is quite obvious to anyone with experience. But when you're young and know everything, it's not so obvious. We too, were brave believers of complex == good in our youth. Well, I sure was.
It's also important to learn by failing (aka learn by doing). Like parenting, there are many things in organizational behavior that can't be learned until you experience it for yourself. Few of us can be told "don't do that" and will internalize it to the degree necessary, without experiencing personally what happens when you do "do that". These people graduating from top schools and going straight into FAANG are doing themselves a disservice of the worst kind, by missing out on important organizational learning experiences.
On that note, I recommend everyone either get fired from a job, or work for a company so bad you quit, at least once. I also recommend it at most once. :)
As for inverting a binary tree, with your experience you must realize that the very large majority of applicants are poseurs. You need to filter them with easy things like inverting a binary tree. Most companies need "doers" not "thinkers". Even at the highest levels of pseudo-management (staff and above IC), you really better be able to do this kind of easy stuff.
I'm sorry if I made it sound like I was born perfect. That wasn't what I was trying to convey. Yes, we learn by making mistakes, and I've sure made at least my fair share of them. My point is that horking out algorithms on demand is definitely not the same thing as being a competent software engineer, nor is it particularly predictive of the likelihood of developing those skills. Also, I measure my success by the people I've helped and the impact I have on the business. For instance, figuring out how to eliminate 500,000+ lines of code from a codebase strikes me as way more valuable than hopping about at a whiteboard like a trained monkey. Ask better questions, get more impactful employees.
Agreed!! Sorry I didn't mean to accuse you of anything.
I share your criticism for poor interview practices. But not that basic knowledge whiteboard questions are asked -- sadly, it's a requirement -- rather that most don't get beyond that. Or dwell on the classic "OMG how could you not know this piece of trivia that we only learned here at our org after 12 years refining the solution".
Anyway I adore that kind of interview. It lets me know I don't want to work there! I call those interviews successful. Most candidates (or at least most discussion of interviews from the candidate POV) seem to think the entire purpose of an interview is to prostrate yourself to the all powerful company, that they may see you as worthy, oh master. It's the wrong perspective.
So while I share your criticism, I am not dismayed by it.
As someone of younger years (by SV standards), hearing the authenticity in this thread is refreshing. What path in the world of tech will put one around peers who intentionally focus on real impact on people and business?
I've got close to a 100% success rate at take home coding challenges. I usually get pulled in because I'm an Architect that codes, so I ask for an end to end thing to solve.
I already know I'll never get into a FAANG, so I don't bother looking there. Also, I look at the team photos on startup websites, and if no one looks over 40, I don't bother with that either. Otherwise, it's just down to finding a place that has problems to solve that are hard enough to be interesting.