Layoffs are financial and political decisions. Sometimes people layoff idiots when given the chance, other times they layoff the smartest people to protect their friends. I consulted at a bank where a SVP would reorganize non-core business units into his org specifically to meet his reduction target while minimizing business impact. Those people were cannon fodder from day 1.
Hiring is the same way. If you only hire pristine resumes without gaps, you’re selecting for survivors - not the same as performers. It’s more of a statement about the hirer-er than hire-ee.
You never know when you need a sacrificial lamb, eh.
Yep. Before the IPO the task came up to increase our development team size to 200 people, cause “people would rather invest money in 200 developers than in 30”. We would hire anybody who was able to say anything sapient about the task “insert an element into a double-linked list” (and were amazed when 80% of applicants were unable to pass this simple barrier).
On the other hand - when layoffs came they were rather reasonable and the worst people were let go. (None of them were among the people who passed the above-mentioned barrier though).
I’ve been programming professionally for 20+ years and I had to look this data structure up. Granted, once I reviewed it, node insertion is trivial, but I hope you gave applicants that opportunity. Or perhaps your line of work commonly deals with stuff like this.
I’ve spent my career in web and mobile product development, usually with a business focus of some kind, and it still surprises me sometimes how little I’ve used certain topics from college, like mathematics. I think most of the math I’ve used I likely learned by grade 6.
More importantly, having the general problem solving skillset to reason through this problem in 20-30 minutes seems super important to many aspects of front-end development...
At most places I've interviewed, each interview question is a 25 minute - 30 minute session. Since white-boarding the solution takes perhaps 5-10 minutes max, in this case, there's plenty of budget to refresh definitions and provide a clean interface from which the actual task begins.
Critiquing "insert into DLL" as an unreasonable question does a disservice to the "less leetcode" position :(
Exactly! We were not looking for A+ CS students, we were looking for people we can work with.
My high school did not offer CS except as an independent study (you could technically do anything as an independent study, so "offer" is shorthand for "convince a teacher to let you sit in their classroom during planning period and find a way to sit for the AP CS exam").
There have existed high school CS courses since the 80s. (The AP CS exam was introduced in 1984.)
I took AP Computer Science in High School in 2012. The whole curriculum was based on this “Grid World” Java program where a Grasshopper extends JumpingBug extends Bug or something like that, no not as an analogy for OO, the classes were literally named like this. And, the AP test asked specific questions about Grid World's implementation, so you had to learn about it even if you understood the underlying computer science concepts.
I wish we learned about linked lists. I didn’t get that until college.
Linked lists were much more fundamental (and covered much earlier) when they were using C++.
Wasn’t too much learning about double linked lists going on in that class.
We couldn’t - there was no Google at the time of our IPO. (More importantly there was no mobile Internet). But the reaction “please clarify what are you talking about” is absolutely sapient, so you would have passed. But note that this:
> node insertion is trivial
- is much less sapient. In my alma mater “trivial” meant that you are able without a pause to write down a proof - without a single error. And this particular task is not designed to be rushed through, there are a couple of potholes. Anyway, hire / no hire was not based upon the absolute correctness of the code. It was mainly based upon the applicant’s reaction to me pointing some “obvious” error in their code. We were not looking for A+ students, we were looking for the people we can work with.
Hard agree.
I've hired high performers from dumb layoff situations like start-ups going belly-up, companies resizing, contracts getting prematurely terminated, etc. I wouldn't consider a layoff a negative metric unless the interviewee outright admitted "they were trying to get rid of me."
I'm always shocked when people bring it up as signal vs. noise in regards to interviews.
And it's also possible they were actually high performing in their last role but they managed to bruise someone's ego and wound up first on the layoff list as a result.
There is just way more to firings and layoffs than performance.
Mind you. Companies can do more with internal development/retraining and institutional knowledge is a thing especially with large organizations. But, at some point, no one's going to be happy.
I remember, many years ago, being tasked with teaching PHP to the mainframe COBOL team - we’d retired the mainframe, and all our COBOL apps with it, but we’d kept the team, and management had struggled with finding them something else to do. It was a painful experience, they were getting it, but very slowly. Didn’t help that I wasn’t the best teacher, I had to slow myself down a lot and found that a struggle - but I was young and inclined to say “Yes” to everything.
Eventually, they were all laid-off - and pretty much straight-away found new COBOL jobs (with a higher salary too). I think, in the end, they were happier that way.
On the other hand... grinding LeetCode is way more measurable. ;)
Sometimes, people are fired for "performance," when what that really means is "new manager/tech lead didn't like them." Interview enough people and you'll see this at some point. Sometimes, low performers in one environment are star performers in another. This is what happens when founders are replaced by more experienced executives, among other scenarios. Sometimes, people with impressive credentials (PhD + significant publications + previous experience, for instance) will completely bomb your interview because they can't figure out which of their language of choice's container types is suitable to the task. I literally interviewed that candidate once. Sometimes, people are fired for straight up illegal reasons that have nothing to do with performance. (This literally happened to me at a big company you've probably all heard of and used their product.)
As a company and an interviewer, the best thing for all involved is for you to have a structured process with which to evaluate all candidates for a given position, and follow it. No interview process is perfect at either selecting good candidates or rejecting bad ones, but if you have and follow a structured process, at least you should get consistent results out of your interview process, and you can calibrate your hiring bar from there. I don't want to go into much more detail regarding "structured processes," but if you search on HN for u/tokenadult's hiring comment cum copypasta (albeit an informative copypasta), most of what's there still holds true according to the best and most current research on hiring.
I was at my org for roughly 9 months, I came in as part of a large class of new hires across the entire org.
The last 4 months we were in crunch mode trying to land a big client that leadership continued saying would be a game changer for us. My eyebrow was already raised, because if one company is that much of a game changer, what happens if we don't get that client?
Sure enough, as I was texting with a friend who was spared, he let me know as soon as the last person left the office that day from layoffs, company had the weekly all-hands and announced sure enough, they didn't get the client.
Given that this is the status quo, employees should adopt the same attitude. When working for an ethical employer, I'll work 48h/day if the situation requires it, but for everyone else, I'll bill them for the "quick question over the phone" outside of my agreed upon working hours; and I'll quit when someone else makes a good offer. Once a (spectacularly unethical) employer tried to pull the "think about the others in your team" stunt only to be amazed when I found them better jobs within a week and everyone else quit, too. I cannot say he learned from that experience, but I equally cannot say I regret my decision.
To add a differentiator between laid off and fired, I've been fired twice in my life, once after I quit (toxic manager), and once when I refused to do something clearly illegal (another toxic manager).
You can be at the top of the layoff list for nothing more than voicing your criticism of company strategy at some random meeting.
I’ve seen very talented VPs go from “hero” to “zero” in the span of a month when the CEO decides to change direction and concludes those people aren’t “aligned with the new direction of the company”.
I was laid off recently along with many others because an entire experimental project was killed because the market shifted (crypto, I know). Prior to that I’d received top performance marks and had been promoted to team lead. They gave me a great recommendation for the next gig.
It’s as easy to get a low performer who’s on a PIP and employed, as a high performer in a risky company. Hard to tell which one you’re interviewing.