News for hackers. Stuff that matters.
Re:Stop Interviewing with Leet Code by brandall10 on Thursday June 09, 2022 @08:33AM (#31680390)
Every unicorny startup I've interviewed w/ that had a standard big-tech interview loop (1 LC style screener + final w/ 2-3 rounds of LC + 1 system design) was chock full of ex-big tech engineers and managers, replete with stories about wanting a faster paced / dynamic environment.

So yes, that absolutely is who they are recruiting. It probably comes down to no more than believing big tech companies have the very best in the industry (ie. like being in an Ivy League school) and standardizing the hiring bar w/ other companies they're actively in competition with. More than obedience, it probably is the aspect that they're smart and determined to succeed.

Re:Stop Interviewing with Leet Code by s17n on Thursday June 09, 2022 @08:46AM (#31680532)
> More than obedience, it probably is the aspect that they're smart and determined to succeed.

Yup that's what it's about!

The problem with trying to test how good you are at the job is that you simply can't do it in a 1 hour (or even a 1 day) interview. You can however assess how smart somebody is, which is definitely correlated to job performance. It's also connected to growth potential - even if it were somehow possible to accurately measure how good a programmer a candidate is at the moment they are applying for the job, companies would still want to try to predict how good they are likely to be over the next few years.

Re:Stop Interviewing with Leet Code by biztos on Thursday June 09, 2022 @11:30AM (#31682483)
> You can however assess how smart somebody is

Are you saying the Leetcode-style interview assesses how smart someone is?

Re:Stop Interviewing with Leet Code by adsfoiu1 on Thursday June 09, 2022 @12:32PM (#31683316)
Not OP, and I don't think it directly indicates how smart you are, but it does show you are at or above some smartness threshold (i.e. smart enough to get the answer).

If you don't get the answer, you might still be above that smartness threshold, but didn't get it for some other reason (didn't have time to study, didn't sleep enough the night before, interview anxiety, etc.).

Re:Stop Interviewing with Leet Code by l33t2328 on Thursday June 09, 2022 @01:12PM (#31683930)
Yes, being able to understand and apply algorithms and data structures requires some intelligence.

I know we try to stay away from the “we’re smarter than you” vibe here because it’s gross, but pretending leetcode style questions don’t require some degree of complex thought is absurd.

Re:Stop Interviewing with Leet Code by cmiles74 on Friday June 10, 2022 @09:14AM (#31693642)
Personally, I need to practice leetcode style questions pretty regularly in order to perform reliably without reference materials. If more than a couple of months go by, the details of particular algorithms begin to fade.

I think it's unreasonable to expect people to spend their off time practicing these sorts of problems, in the same way we think it's unreasonable to require everyone interviewing to be working on personal development projects over the weekend. I suspect most working people simply do not have the time.

Re:Stop Interviewing with Leet Code by memonkey on Thursday June 09, 2022 @05:33PM (#31687200)
You can memorize a lot of them and forget everything in a year.
Re:Stop Interviewing with Leet Code by dilyevsky on Thursday June 09, 2022 @08:18PM (#31688564)
If enough people are doing it higher iq folks will bubble up in calibration
Re:Stop Interviewing with Leet Code by nowherebeen on Thursday June 09, 2022 @10:52PM (#31689425)
Which at the end of the day still doesn't test that you can do the job.
Re:Stop Interviewing with Leet Code by dilyevsky on Thursday June 09, 2022 @11:01PM (#31689482)
Ok but it does tho - all other things being equal and you better believe it they do have other type of interviews not just lc
Re:Stop Interviewing with Leet Code by nowherebeen on Thursday June 09, 2022 @11:05PM (#31689501)
Ok, tell me what other types of interviews do they do other than system design, leetcode, and behaviorial for engineering?
Re:Stop Interviewing with Leet Code by dilyevsky on Friday June 10, 2022 @01:41AM (#31690473)
Lol yeah apart from sanitation, the medicine, education, wine and public order what have the romans ever done to us? In your view that’s not enough to make an informed eng hire?
Re:Stop Interviewing with Leet Code by nowherebeen on Friday June 10, 2022 @04:07AM (#31691349)
Lol. So you can't give me any concrete examples. Got it.

Nothing tells me more about someone that is full of it than simply being dismissive of others. I ask for an example to support your argument, instead you chose to be defensive and give me attitude.

Re:Stop Interviewing with Leet Code by l33t2328 on Friday June 10, 2022 @03:23AM (#31691131)
Exactly. If you have a candidate who can design good systems, solve complex algorithmic problems, and play nice with others, then I’d say that’s a pretty strong candidate.
Re:Stop Interviewing with Leet Code by weatherlite on Thursday June 09, 2022 @12:36PM (#31683366)
> You can however assess how smart somebody is

Why not just give candidates a standard IQ test then? They are probably more reliable than Leetcode...

Re:Stop Interviewing with Leet Code by synergy20 on Thursday June 09, 2022 @01:04PM (#31683803)
IQ does not tell determination/hard-working-attitude at all, in fact many with high IQ ended up being nobody, as high IQ makes learning relatively easier, most got used to that and just let the 'grit' go.

leetcode is the SAT for coding, not perfect, but at least it's close to fair play.

Re:Stop Interviewing with Leet Code by deckard1 on Thursday June 09, 2022 @01:46PM (#31684399)
> IQ does not tell determination/hard-working-attitude

this is what everyone said a college degree was for. Or experience. Neither of which matter when a senior dev with 10 years of experience and two kids still has to find an hour or two a day for three months in a row to grind out textbook algorithms to fake problems. Just to switch their fucking job. Thanks to cargo-cult insanity, god help those stuck in miserable jobs that just want out.

Re:Stop Interviewing with Leet Code by rmbyrro on Thursday June 09, 2022 @03:49PM (#31685906)
To be fair, most are real problems, just phrased in a contrived way.

Yes, they're rarely encountered in most day-to-day jobs. But that doesn't make them fake...

Re:Stop Interviewing with Leet Code by Dudeman112 on Friday June 10, 2022 @04:16AM (#31691406)
I mean, if the actual solution in a work environment is "use existing solution from people who already did it" but you have to do solve it by route memory then it's a fake problem.

The actual solution for encountering a differential equation at work is wolfram alpha, not getting a pen and paper to apply heuristic knowledge on solving differential equations

Re:Stop Interviewing with Leet Code by corrral on Thursday June 09, 2022 @01:27PM (#31684157)
> leetcode is the SAT for coding, not perfect, but at least it's close to fair play.

It would be amazing if leetcode were like the SAT, and you could just get one good score and then never think about it again.

Anything like that would make it much lower-friction to switch between FAANGs (and friends), though, which I suspect is a big part of why they've settled on doing things this way.

Re:Stop Interviewing with Leet Code by jxramos on Thursday June 09, 2022 @03:13PM (#31685511)
That’s a fascinating idea. Get companies to accept some form of standardized testing and have it be transferable. That would greatly increase the motivation behind its studies I would presume.
Re:Stop Interviewing with Leet Code by corrral on Thursday June 09, 2022 @03:17PM (#31685558)
I, for one, will probably never subject myself to a FAANG-type interview, but absolutely would study for and take a similar standardized test if it unlocked the same kind of opportunities, and I didn't have to re-take it with every interview.
Re:Stop Interviewing with Leet Code by synergy20 on Thursday June 09, 2022 @04:01PM (#31686029)
This is a startup idea in fact, wait, someone is doing that: https://codesignal.com is one that I just learned yesterday, but it's not 'standardized' like what SAT does.

In fact I believe software should have some qualification tests, e.g. general coding, database, cloud computing, etc. Like CPA for accountants. Each test should be valid for a few years in each category.

Re:Stop Interviewing with Leet Code by corrral on Thursday June 09, 2022 @04:16PM (#31686213)
The hard part's not creating some kind of certification, it's getting desirable employers to accept it as a replacement for the most-painful parts of their interview processes. I suspect a lot of top companies don't want to make it easier to jump between them.
Re:Stop Interviewing with Leet Code by s17n on Thursday June 09, 2022 @11:21PM (#31689601)
The "most painful" part of any interview process is just the part that you happen to be the worst at. Personally, I don't find leetcode to be painful at all and would be much more enthusiastic about something that eliminates any part of the interview where you have to talk about yourself.
Re:Stop Interviewing with Leet Code by weatherlite on Friday June 10, 2022 @12:44AM (#31690142)
What's the problem with talking about yourself? You can just memorize a few sentences since the questions are always the same.
Re:Stop Interviewing with Leet Code by Apocryphon on Thursday June 09, 2022 @05:58PM (#31687451)
Yeah, witness Triplebyte's lack of success in getting companies to use them as a substitute for anything more than the initial phone technical screen.
Re:Stop Interviewing with Leet Code by wyclif on Thursday June 09, 2022 @09:35PM (#31688990)
Sure it's a great idea and hiring culture would be so much better if it happened, but I think the parent is correct that companies want friction at that point. None of them want to make it easier for talent to jump ship and transfer.
Re:Stop Interviewing with Leet Code by spelunker on Thursday June 09, 2022 @04:01PM (#31686030)
you could even call it certification!
Re:Stop Interviewing with Leet Code by rrrrrrrrrrrryan on Thursday June 09, 2022 @08:39PM (#31688696)
Certification is generally binary, though - you're either certified or you're not. This might be a good thing though, as it establishes a decent floor for technical competency and can save everyone from having to deal with at least some of the technical interview nonsense.

What some of the people in these comments seem to want though is some sort of standardized score/ranking system, which I suspect might lead to even more nightmarish outcomes than the current leetcode-y interview processes. (e.g. Employers setting absurdly high cutoff scores, choosing one applicant over another because simply because they scored a couple points higher, applicants grinding unimaginable amounts of unpaid hours to bump up their scores a bit, etc.)

Re:Stop Interviewing with Leet Code by heretogetout on Thursday June 09, 2022 @05:11PM (#31686950)
I've done first party certification and it was always a joke -- they need you to pass so you can get your employer to use their services. Are there trusted third party certification services that are willing to fail half or more of their customers?
Re:Stop Interviewing with Leet Code by synergy20 on Thursday June 09, 2022 @04:05PM (#31686090)
true, the keyword is 'standardized' at national level, even 'global' level.
Re:Stop Interviewing with Leet Code by visarga on Thursday June 09, 2022 @04:58PM (#31686790)
You're going to hear complaints about bias in selecting the types of problems.
Re:Stop Interviewing with Leet Code by synergy20 on Thursday June 09, 2022 @05:11PM (#31686951)
for SAT or GRE, my understanding is they have a huge pool of problems, before the test they're picked and assembled somehow. I hear no one complains about SAT or GRE selections of problems, so it might be less of a concern.
Re:Stop Interviewing with Leet Code by Jistern on Thursday June 09, 2022 @05:33PM (#31687197)
I can't tell if you are being facetious or not. I hope you are being facetious. I really do.

As many other comments have indicated right here on Hacker News, professional licenses are commonplace for occupations such as plumbers, electricians, doctors, lawyers, and even many types of engineers.

I suppose that central governments (such as the US federal government) should offer licenses for myriad types of software engineers, hardware engineers, software architects, hardware engineers, and so on.

Wouldn't it help companies if they could choose to interview only candidates who were licensed as, say, a level three penetration tester (intermediate penetration tester) or a level five database architect (expert database architect)?

The whole "Let's reinvent the wheel mentality" surrounding software, The Internets, and hardware simultaneously bemuses and frightens me.

"The eye never has enough of seeing, nor the ear its fill of hearing. What has been will be again, what has been done will be done again; there is nothing new under the sun." King Solomon, Ecclesiastes.

and

"I only wish that wisdom were the kind of thing that flowed ... from the vessel that was full to the one that was empty." Plato, Symposium

Why don't we simply allow unqualified, blind, inebriated people to drive automobiles on public roads at whatever speed they would like? Why don't we let a guy who watched a bunch of YouTube videos call himself a brain surgeon, and perform brain surgery on people who don't even need brain surgery in the first place? Hey, wait, i've gotta gureaat idear: y botherr haviing aany ruuules at al! Sheesh.

Without rules, men simply return to a state of nature where life is short, brutish, and mean (Hobbes).

I just found this on Google...

****** Origin of Life is Nasty, Brutish, and Short

This expression comes from the author Thomas Hobbes, in his work Leviathan, from the year 1651. He believed that without a central government, there would be no culture, no society, and it would seem like all men were at war with one another. ******

The “Wild West” mentality of folks who seem to believe that rugged individualists (not federal agencies such as the US Department of Defense) built Silicon Valley, is perched atop the same type of popular, yet nonsensical, mythology (falsehood) as Horatio Alger's famous character who was actually named Ragged Dick. (Really, Ragged Dick was the character's name, I am not being facetious) who metaphorically pulled himself up by his bootstraps to rise from street urchin to CEO (who was a wealthy industrialist).

Imagine a military, any military, anywhere, anytime in human history, that didn't have ranks, titles, and gasp... tests which members had to pass to move up the ranks. How well do you suppose a military without ranks and without tests would fare in combat? Obviously, such as military would be in a state of hopeless disarray.

Licenses are not a necessary evil; they are a good, and proper way to identify and reward qualified professionals, while simultaneously enabling "the rest of us" to know, for example, who's a mere private, whom we can walk past without batting an eye, and who's a colonel, whom must stop and salute.

Imagine a hiring manager say, "Hey, this kid never went to college, but he's a freshly minted level one software engineer, I say we bring him in for an interview."

Why should every company need to create their own initial screening tests? Imagine a trucking company that needs to hire a truck driver with a particular type of commercial driver's license (CDL). In the employment advertisements they post, such companies almost invariably include verbiage such as, "Class A CDL required" or "Must have a Class B CDL." See? The candidate must have already passed an initial screening test, by acquiring a particular type of license, prior to being granted an interview.

This is obviously a huge benefit to both candidates and companies alike because it saves both sides a lot, and I mean, a lot, a lot, a lot... of time!

These days it is comically inane that tech candidates are normally expected to take an endless stream of initial screening tests to prove their mettle to each and every prospective employer (unless they were referred, famous, or for some other reason exempted from the requirement).

Imagine a CPA (certified public accountant) being required to pass a basic auditing test before he was granted an interview for a new job. Why would a company ask a CPA to take such a test? If a candidate is a CPA, then (unless, for example, he cheated on his CPA test, or suffered some sort of memory loss) he has already proven that he has a substantial amount of knowledge about auditing.

Yes, of course companies should administer their own tests. But professionals licenses can, and do, enable both candidates and companies to avoid the sort of initial screening test which companies commonly require of software engineering candidates. Currently initial screening tests, such as LeetCode, are a response by hiring companies that are typically deluged with a sea of unlicensed (and almost entirely unqualified) candidates, all of whom claim to be qualified.

Re:Stop Interviewing with Leet Code by iostream24 on Friday June 10, 2022 @07:05AM (#31692412)
Nice rant. It’s full of logical holes, of course, as there’s no common definition of tech roles and their titles, let alone a common understanding of the included tasks.

There are React Boot Camp folks who can whip up a frontend in no time who are arguably more competent at this task than a PhD in Comp Sci, and there are PhDs in Comp Sci who never wrote a lick of code in their life.

Technology in software IS Political, and 30 years of development experience shows me various parallel worlds that are arguably better than our current one.

Someone who grew up coding and loves hacking as close to the bare metal as possible is worth more than a dozen of your certified software engineers.

Let me know when the world standardizes on a Comp “Sci” curriculum.

Actual computational science has very little to do with computers and software development, which is a thesis statement I will be happy to support if pressed. For now, I end my rant

Re:Stop Interviewing with Leet Code by weatherlite on Friday June 10, 2022 @01:02AM (#31690246)
> but at least it's close to fair play

How is it fair, it favors young graduates and people with lots of time to prepare tremendously. Would it seem sensible to you that every time a doctor applied for a job, even if he has 20 years of experience, he'd need to compete with recent medical school graduates on some first year medical school exam?

Re:Stop Interviewing with Leet Code by zo1 on Thursday June 09, 2022 @02:39PM (#31685132)
Because people are under the impression that it's illegal. That and I think a lot of people will make its use be about race, so people avoid it.
Re:Stop Interviewing with Leet Code by weatherlite on Friday June 10, 2022 @12:52AM (#31690194)
I was just entertaining OP, I don't think IQ correlates that well to SW engineering job performance. It's only one of many many factors (albeit probably the easiest thing to test for - testing curiousity, emotional intelligence, motivation, work ethic and resilience is much much harder).

But if we're saying Leetcode is simply testing for IQ and not really for software engineering ability, why not just test for IQ? IQ tests are designed in a way that after a certain threshold it's pretty hard to improve in them - they actually test some innate ability. Leetcode tests how well you are prepared for Leetcode, and perhaps how well you do under stress. It correlates only slightly with intelligence and even less slightly with programming ability.

Re:Stop Interviewing with Leet Code by MrCalico on Wednesday June 15, 2022 @03:56PM (#31758577)
I think the fact that leetcode needs to be studied incorporates work ethic/motivation/resilience alongside IQ. Also, at some stage in the interview process you have to interact with people which will expose your social skills/emotional intelligence to some degree.
Re:Stop Interviewing with Leet Code by dilyevsky on Thursday June 09, 2022 @08:19PM (#31688572)
Bad optics
Re:Stop Interviewing with Leet Code by chris11 on Thursday June 09, 2022 @01:26PM (#31684143)
And algorithmic questions are a straightforward way to get a scalable, structured interview round. It's difficult to entirely replace algorithmic rounds with questions that are both scalable and structured.
Re:Stop Interviewing with Leet Code by danaris on Thursday June 09, 2022 @09:39AM (#31680991)
Leetcode doesn't measure "smart and determined to succeed". It measures "has enough extra time and energy to devote to practicing pointless brainteasers for weeks."

In other words, whatever it's intended to do, one of its primary functions in practice is to screen out people who are bright, driven...and poor, working long hours and trying to keep themselves and/or their families going.

Re:Stop Interviewing with Leet Code by brandall10 on Thursday June 09, 2022 @09:55AM (#31681172)
Weeks? There are stories on Blind and the LC forums of people taking upwards of a year with pretty hefty real-life constraints. And why wouldn't they, given the opportunity to essentially double comp over standard industry jobs? That's a life changing opportunity if you're in a somewhat unfortunate life situation.

That it's a bit of a sacrifice is the point. If you're naturally smart enough this stuff comes quickly, great. If not, you're going to have to work for it - that requires discipline most people don't have.

Better put, smart and/or determined to succeed.

Re:Stop Interviewing with Leet Code by danaris on Thursday June 09, 2022 @04:13PM (#31686181)
Did you, like, read my second sentence at all?

Whether you realize it or not, you're advocating for keeping people who aren't already mid-to-upper-middle-class (among others) out of these kinds of tech companies. Anything that's designed to make you work hard extra, outside of work to learn separate skills just to pass interviews is guaranteed to make it disproportionately harder for people who are, for whatever reason, unable in practice to devote many hours of their free time to fairly complex technical studying.

No matter how "disciplined" they are, people already working 80 hours/week just to put food on the table don't have the luxury to be doing that. No matter how "smart and/or determined to succeed" they are, people raising 2 kids by themselves would be irresponsible to be doing that.

Now, maybe you think that kind of person should be denied an opportunity to join the super-1337 hackaz' club that is FAANG or whatever. Personally, I think that kind of classist gatekeeping is disgusting.

Re:Stop Interviewing with Leet Code by visarga on Thursday June 09, 2022 @05:21PM (#31687050)
> designed to make you work hard extra, outside of work to learn separate skills just to pass interviews

Ah, you're talking about those programming jobs that never require thinking about algorithms?

Re:Stop Interviewing with Leet Code by danaris on Thursday June 09, 2022 @07:41PM (#31688354)
While I certainly wouldn't presume to claim that no programming jobs are remotely related to Leetcode—I'd be perfectly willing to believe that you, personally, have to engage mentally with "classic" algorithms on a daily basis—from everything I've read about them, I doubt very much that more than a minuscule fraction of programmers and other tech workers do anything on a day-to-day, or even month-to-month, basis that would be close enough to Leetcode that they could be considered similar skills.

I've been working as a programmer—largely PHP, Java, Objective-C, and Swift—for over 20 years now, and never, in my work, have I been asked to invert a binary tree, reverse a singly-linked list, or any similarly contrived scenario.

There's a huge difference between "thinking about algorithms" in the most general sense of that phrase (which means basically any programmer who does any of their own design work) and in the sense of the particular "algorithms" that we learned in CS classes and are featured in Leetcode problems.

Re:Stop Interviewing with Leet Code by iostream24 on Friday June 10, 2022 @07:12AM (#31692463)
In no circumstances did I ever make algorithmic decisions in an informational vacuum and then cowboy code my way forward, or rather, one seeks to avoid the mistakes of one’s youth.

Search engine: read material about the heart of the problem from domain experts, try different approaches and then decide.

Leet Code exercises are a blight on our industry.

If you want a shibboleth just say so.

Re:Stop Interviewing with Leet Code by dekhn on Thursday June 09, 2022 @11:45AM (#31682654)
Took me about 5 years to get even modestly proficient with medium-level leetcode questions. I'm a slow learner.
Re:Stop Interviewing with Leet Code by redisman on Thursday June 09, 2022 @11:52AM (#31682756)
I never did a CS degree so much of the learning was decently useful but it also took me years
Re:Stop Interviewing with Leet Code by dekhn on Thursday June 09, 2022 @12:01PM (#31682881)
I only took 1 CS class in college- Cybernetics with Huffman. I failed! So clearly, that was a strong predictor for my future 12 year career at google (where I failed to do quicksort, or virtual ants problems). Nowadays I take a lot of extra time to come up with questions that aren't in leetcode, are easier than leetcode, and give far more signal than any leetcode would, for anything except for a 10X Staff Engineer.
Re:Stop Interviewing with Leet Code by cadr on Thursday June 09, 2022 @12:16PM (#31683107)
Can you share what kind of things these are that give far more signal?
Re:Stop Interviewing with Leet Code by dekhn on Thursday June 09, 2022 @12:29PM (#31683277)
To be honest? every programmer needs to be able to pass FizzBuzz. Beyond that, I add some more basic work around byte representations of data (I have 4 symbols... how many bits do I need to encode a symbol?). I will typpically also include one major bug in a piece of code and ask the user to identify it (with hints).

I once interviewed a guy- a CTO at a biotech- and he wouldn't answer the question "I have a million DNA sequences and want to count the number of occurrences of each sequence" (could be hash table, could be any number of other solutions; he just balked and exited the interview).

Only if the person can get all that right would I even consider asking something more complicated.

Re:Stop Interviewing with Leet Code by akhmatova on Saturday June 11, 2022 @10:46AM (#31704812)
I once interviewed a guy- a CTO at a biotech- and he wouldn't answer the question "I have a million DNA sequences and want to count the number of occurrences of each sequence" (could be hash table, could be any number of other solutions; he just balked and exited the interview).

Maybe he's just been around the block a sufficient number of times to have gotten tired of the standard SV "here's a hoop, jump through it, now do it again, and again and again" ritual that it likes to call "interviewing" for some reason.

Seriously - your questions are fine for junior or mid-level roles, but beyond that, you should have more important thinks to talk about. And both of you should be able to tell if the other is a bullshitter and/or a lightweight within about 30 minutes at most (and often far quicker than that) of a normal, focused technical conversation -- without having to specifically grill the other person, or otherwise put on the pretension that you're one whose bona fides are established beyond question, and they're the one who needs to jump through a sequence of hoops to prove that they are worthy of your time and attention.

Just cut the crap, get down to brass tacks, and talk what needs to be done as if they're a peer. That's all you have to do.

Re:Stop Interviewing with Leet Code by cadr on Thursday June 09, 2022 @12:45PM (#31683497)
I agree liking to ask simpler stuff first. But what about this more complicated stuff? My problem is that when we talk about stuff having more "signal" - how are we determining if those questions are giving us more signal?
Re:Stop Interviewing with Leet Code by dekhn on Thursday June 09, 2022 @02:15PM (#31684810)
My question is fairly open and allows me to continue asking significantly more complicated questions. So far, nobody has (for example) asked enough clarifying questions to determine that a bloom counting filter could potentially solve the problem- most people just store ASCII string keys in a hash table, which wastes tons of memory and requires a lookup for every string.

So usually I end up after 45 minutes finding that the candidate has more or less tapped themselves out at "make a hash table of string keys, use it to store counts" (OK for a very junior programmer) or "make a perfect minimal hash" (I help them get there if they don't know what those are) or "use a probabilistic counting filter". This is about all I need to make a determination.

Re:Stop Interviewing with Leet Code by lazyant on Thursday June 09, 2022 @05:50PM (#31687377)
The problem with this question is that outside the junior people who won't understand the hints, many good programmers would pass or fail just based on whether they have seen a similar problem or know what a Bloom filter is. CS is so broad that you may have been working for many years and never come across one topic that the interviewer deems standard.
Re:Stop Interviewing with Leet Code by dekhn on Thursday June 09, 2022 @07:16PM (#31688177)
I don't fail people who don't suggest a bloom filter. What I meant was: knowledge of probabilistic data structures and knowing this is a situation where they could be used is a sign of a more experienced programmer (likely one who's worked in clickstream processing).

If all you do in my interview is know that a hash table or other associative data structure is good for maintaining counts, that using a full ASCII byte to store symbols from { A G T C } is wasteful and compress the letters to 2 bits each, you can pack multiple 2 bits into bytes, and can write a function that codes and decodes such data, I'm happy and you get a pass. I'm even happy to sit there and help people through nearly all the steps of the codec. Not trying to trick anybody or select for obscure CS knowledxge.

To me the real question is, how much hinting is reasonable for the coding and decoding function? Many programmers (including senior ones) struggle to implement:

x <<= 2 # left shift the int to make room for the next item x |= pattern # or the new 2-bit item into the accumulator.

Since I never use bit munging in my day job (it's 90% python data science) should I really ding somebody for not knowing about left shift or or-assignment?

What I really don't get is why people immediately jump to trying to implement huffman coding, RLE, or lookbacks as a solution to reduce the size of the DNA string. I still wonder if how I present the question is giving everybody a fair chance to shine.

Re:Stop Interviewing with Leet Code by mbrodersen on Friday June 10, 2022 @09:25PM (#31701128)
I am 100% certain that your questions are not giving everybody a fair chance to shine. You have to start with the area of expertise they have already worked in and not the area that you happen to have experience in or be interested in. I could (for example) ask “simple” dynamic optimisation questions that are “easy” for me and I know that 95% of great experienced developers would fail. So obviously I don’t do that. I want to hire smart developers who can learn. Not developers who happens to have the same experience/interest that I do.
Re:Stop Interviewing with Leet Code by mbrodersen on Friday June 10, 2022 @09:20PM (#31701101)
I hope you realised that your questions are extremely narrow and in no way filter for competent developers. Imagine yourself going to an interview and being asked similar narrow specific questions but in a different area you have no previous experience in. You would probably fail. For example: how would you represent a lambda closure when compiling a functional language to machine code? It is a super easy question for me but I know most people would fail. So I don’t ask questions like that when interviewing.
Re:Stop Interviewing with Leet Code by gregors on Sunday June 12, 2022 @11:18AM (#31715133)
This sounds like a perfect question for a company that's hiring engineers who want to focus on optimizing DNA storage. If that's your goal you should just put that in the hiring criteria. You'll get more candidates that know those type of algs. If your goal is know if the candidate knows about bloom filters a better question might be "What do you know about bloom filters?" Definitely seems like you'd get answer in less than 45 minutes.

I think "key/value counts" is absolutely the correct starting answer. Anything after that is optimization. In the real world optimization comes at length through research, learning, grokking, reading, benchmarking, sleeping, mulling things over. The only way to short change that is knowing about those optimizations in advance, so might as well just ask about those algs specifically.

All that being said, I think it's an enlightening question. Thank you for sharing it! You've educated me. I've been coding a loooooooong time and didn't know about bloom counting filters specifically.

Re:Stop Interviewing with Leet Code by cadr on Thursday June 09, 2022 @02:48PM (#31685229)
But have you had a chance to look back and see if those questions worked out? Like, are they a good predictor for how the person actually performed in the job?
Re:Stop Interviewing with Leet Code by dekhn on Thursday June 09, 2022 @03:30PM (#31685707)
I've only been directly involved in hiring five people and it worked out well for all of those
Re:Stop Interviewing with Leet Code by cadr on Thursday June 09, 2022 @04:51PM (#31686685)
cool. Thank you!
Re:Stop Interviewing with Leet Code by visarga on Thursday June 09, 2022 @05:15PM (#31687003)
Bloom filters have collisions. How would that work with counting sequences?
Re:Stop Interviewing with Leet Code by dekhn on Thursday June 09, 2022 @07:06PM (#31688105)
Because (and this is absolutely a clarifying question I would love to get), approximate counts are acceptable.

https://bmcbioinformatics.biomedcentral.com/articles/10.1186...

Re:Stop Interviewing with Leet Code by Bayko on Thursday June 09, 2022 @12:16PM (#31683094)
Exactly. I honestly think no one is entitled more than software developers. Not even that chick from Mean Girls. Hell which other similarly paying field can you double compensation in like three or four months. Six months if you are slow or have a demanding life. Lawyers? Hahahaha. Doctor? Hahahaha. At least with LC there is an end goal. Those 75 questions. Or well I think 150 questions. I hate LC personally but also am able to recognize that it is a silver platter handed to me. The article above mentions all the negatives. Ya bro who didn't know them?
Re:Stop Interviewing with Leet Code by Apocryphon on Thursday June 09, 2022 @01:03PM (#31683797)
At least with those professions you have one test you pass, and maybe you retake it once every few years to renew your credentials.

With Leetcode, you have to retake the test multiple times every few years when you change jobs for each company you apply to.

Leetcode would be a lot more tolerable if it was administered more like the bar exam or like medical exams. Whatever happened to DRY?

Re:Stop Interviewing with Leet Code by deckard1 on Thursday June 09, 2022 @02:05PM (#31684663)
yep. And you typically do change jobs every few years just to get a raise or promotion.

Which means... Always. Be. Leetcoding. Do the bare minimum at your job and then do LC the rest of the time. Because your job is just your job, but your career is LC. These companies don't yet realize they are optimizing for mercenaries that have no loyalty to the code nor the company.

On a slight tangent, some of the people over on Blind would sell their own mother for a tiny bump in TC. That mentality used to be limited to Wall St. or maybe Big 4 accounting firms, etc. But now it's the whole tech industry. I remember having a software job was a lot more fun, back around 2007ish. That culture is so foreign to me now.

Re:Stop Interviewing with Leet Code by Apocryphon on Thursday June 09, 2022 @02:35PM (#31685075)
It's what happens when an industry is awash in dumb money. Startups are seen as either half-baked schemes trying to get a cut of the VC funding pie, or cheap R&D labs for the big tech companies in search for inevitable acquisitions. The big tech companies who originally made their money delivering goods or services of real value, squander that goodwill through oligopolistic rent-seeking, engaging in shady anti-competitive or anti-consumer behavior, and endlessly building derivative, short-lived products that users don't actually want in hopes of inflating their moats. In a milieu such as this, engineers become mercenaries because "making the world a better place" has become a tired old cliche, both false and naive. Just a lot of cynicism all around.
Re:Stop Interviewing with Leet Code by corrral on Thursday June 09, 2022 @01:36PM (#31684260)
I'm quite certain that making people dread interviewing is part of the point. Else why keep making people who've already passed multiple times, do it again? First FAANG to start routinely letting people who've already passed a couple similar interviews at peer companies in without repeating the leetcode-hazing, then the other companies have to do it, too, now suddenly the rate-of-increase of software developer pay's even faster than it already is, which none of them want.

Even having to pass such a test on a very aggressive set schedule—say, every 5 years—but only at those set times, would be better—for developers. Not for the companies hiring them.

Re:Stop Interviewing with Leet Code by bberrry on Thursday June 09, 2022 @01:03PM (#31683798)
Being able to quickly come up with an efficient algorithm to a complex problem is not a "pointless brainteaser".
Re:Stop Interviewing with Leet Code by danaris on Thursday June 09, 2022 @04:05PM (#31686098)
Being able to quickly come up with efficient algorithms to domain-relevant problems are not pointless brainteasers.

Being able to quickly invert a binary tree and that kind of nonsense belongs in library code (at best). It's not something that the average developer should ever need to worry about the actual implementation of, let alone have to implement from scratch in under 30 minutes.

Re:Stop Interviewing with Leet Code by DragonStrength on Thursday June 09, 2022 @12:24PM (#31683206)
Yes, I agree they're relying on post-hoc reasoning to justify their own place in the industry. All of the grade inflation stories about Ivy League and similar schools and personal experience in the industry with these types don't give me a lot of confidence in the present value of those school names if the dynamics of VC funding change a bit.
Re:Stop Interviewing with Leet Code by jmvoodoo on Thursday June 09, 2022 @08:48AM (#31680561)
I wonder which came first? Did they hire those people because they implemented leetcode style interviews, or did they implement those interviews because they originally hired or were founded by ex-bigco folks that simply did what they knew?
Re:Stop Interviewing with Leet Code by jboy55 on Thursday June 09, 2022 @11:34AM (#31682531)
Perhaps there's another collectively shared work experience that also created leetcode style interviews. That is dealing with someone who has a degree, can speak well of what it takes to code, but who cannot code to save their life. I have known more than a dozen such "engineers". That's the reason you code during an interview, I think the emphasis on optimal O(N) is just a set of engineers who don't believe it should be "that easy" and doesn't really help produce more of a signal.

My coding question, for example,

You have a music player that should be playing a 900 song list randomly. You notice that you keep hearing a song being repeated during your drive and you are curious if its truly random. You also keep hitting skip in the hopes a particular song comes up. Write a piece of code that simulates this.

You should tell me three things; 1) the number of songs played before a repeat occurs 2) how many songs needed to be played before you played them all 3) after you succeed in playing them all, how many times has the most common song been played.

You can use libraries if you know them, and you can use the built in sort method in the language, I will google it for you if you don't remember the syntax.

Re:Stop Interviewing with Leet Code by drugstorecowboy on Thursday June 09, 2022 @12:32PM (#31683312)
But.. why? Does that reflect anything close to the job they would be doing? Is handicapping someone in every way (You will google it for them), putting them on the spot in an already tense situation and expecting them to code while you watch the way that literally any software job works?

This is the insanity to me, "Here, do this contrived task that doesn't represent anything you will be doing... to prove that you can do the job"

I once had a whiteboard interview for a senior engineer position where they demanded that I write it in syntactically correct python, indentions and all, on the whiteboard. I'm trying to talk about code at a high level with them meanwhile they are deducting points because I assigned a dictionary key directly vs. using the dictonary's method. It turned me off to the company as a whole and the entire interview went downhill from there.

Re:Stop Interviewing with Leet Code by krisoft on Thursday June 09, 2022 @02:01PM (#31684609)
> But.. why? Does that reflect anything close to the job they would be doing?

Yes? Yes. Figuring out how to make a computer solve problems is very much the job of a software developer. They will only encounter harder and less well defined tasks in their actual job. If they can’t do this and you hire them that is like hiring an opera singer who is mute, or a baker who is deadly alergic to flour.

> putting them on the spot in an already tense situation and expecting them to code while you watch

There are mitigating factors one can do. We make sure our hiring managers let the candidates know that there will be a coding challenge. We ask the candidates if they prefer to chat while they work through the task or prefer to be left alone and we acomodate what they choose. We let them know that whatever style they prefer it won’t change anything.

> meanwhile they are deducting points because I assigned a dictionary key directly vs. using the dictonary's method

That sounds very unpleasant. Sorry to hear that. Interviews are a two way street. You are interviewed and at the same time you are interviewing them. I think you were right in judging them, and you dodged a bulet there.

By the sound of it you are a talented, and capable developer. It might be that you can’t imagine it, but there are people who apply for developer jobs, has a really good ability to talk about the job, they seemingly have the right experience, yet somehow they can’t program even super simple tasks. Even after you give them every acommodation immaginable to humankind. If you haven’t seen this yet you won’t believe it. If you have seen it you want a filter against this particular kind of candidate.

I’m not saying that this filter goes always well. Every filter ever invented had both false positives and false negatives. We might lose a briliant developer because some quirk of the task throws them. It is sad. We are trying to minimise the chances of this, but it certainly happens.

Re:Stop Interviewing with Leet Code by drugstorecowboy on Thursday June 09, 2022 @05:08PM (#31686908)
I can certainly understand that there are unqualified people who apply, what I'm disputing is your assertion that there is a correlation between doing the contrived problems under unrealistic conditions and future job performance. It sounds like your goal is just to filter out the absolute worst of the worst, and I'm sure its effective at that, but I believe you might be filtering out more of the top end than you realize.
Re:Stop Interviewing with Leet Code by krisoft on Thursday June 09, 2022 @06:20PM (#31687684)
> It sounds like your goal is just to filter out the absolute worst of the worst,

Yes.

> I'm disputing is your assertion that there is a correlation between doing the contrived problems under unrealistic conditions and future job performance.

You are projecting something here. You are saying, without any supporting evidence, that the problems are contrived. They are not. They are really the core of what me and my coworkers do day in and day out.

You are also saying that the conditions are unrealistic. What makes you think that?

Re:Stop Interviewing with Leet Code by drugstorecowboy on Friday June 10, 2022 @08:58AM (#31693439)
If you and your coworkers are solving the problem you posted "day in and day out" just hire me and you can get rid of them :)

You are right though I have no evidence they are contrived other than your example problem. The unrealistic working conditions though is indisputable, do you typically relay your google search's for syntax through your boss? Do you often work under extreme time pressure on problems you have never seen before? Perhaps you do, but I can tell you with certainty that it's not the norm in the industry to work in that way.

Re:Stop Interviewing with Leet Code by MrCalico on Wednesday June 15, 2022 @04:21PM (#31758929)
Not the guy you responded too, but is there a good way to avoid a time pressure? A limit has to be set as to the time spent per candidate from the company's pov.
Re:Stop Interviewing with Leet Code by sokoloff on Friday June 10, 2022 @06:26AM (#31692169)
> It sounds like your goal is just to filter out the absolute worst of the worst

Indeed, this is a holy grail of the applicant funnel. If a tech-for-interviewing company comes up with a better way to remove the worst 50-ish% of applicants efficiently, they’ll have no worries about their future. (The overall applicant pool is significantly adversely skilled as compared to the have been or will be quickly hired pool.)

Re:Stop Interviewing with Leet Code by jackblemming on Thursday June 09, 2022 @12:58PM (#31683712)
There is a class of engineer who have little performance anxiety by nature. They simply don’t care and are normally blunt types who love algorithms.

And they are, frankly, pretty bad at writing code because they have little empathy for the reader and greatly inflated sense of self worth. They’re the kind to use complicated C++ features or algorithms for little reason. Essentially, smart idiots.

They also believe in silly things like LC being a fair and rational way to evaluate candidates and don’t see the bias at all. “Eugh she’s an ugly woman, I think I’ll give her the LC hard and little help.”

There is another class who realizes how stupid LC is, but are happy to play the game to quickly accumulate power and prestige. They usually have psychopathic tendencies and aren’t great coworkers.

LC is great at hiring these types. Feel free to stick to it if you enjoy having them as coworkers.

Re:Stop Interviewing with Leet Code by cmiles74 on Friday June 10, 2022 @09:23AM (#31693809)
This fear of hiring inept people kind of surprises me. Can't they just let people go who interview very well but are poor performers on the job? If they don't care to follow up on the performance of new hires, I have to wonder if it really matters one way or the other.

I'm outside any major metro area, when we've needed to hire there haven only been a handful of people responding. When people come in for an interview it's been pretty easy to tell if they really can't code at all without making them actually code. I haven't found this to be challenging.

I suspect the issue is interviewing a large number of people in a short period of time. If you don't have 45 minutes or so to spend on each person, using automated leetcode style problems probably starts to seem like a pretty attractive way to weed people out.

Lastly, usually one or two people from my team would take part in interviews. If there aren't any developers available at interview time (i.e., it's a manager and a someone from HR), I can start to see how people without any real coding experience can make it through the process. Again, this is probably a place where automated testing looks like a reasonable solution.

Re:Stop Interviewing with Leet Code by sokoloff on Friday June 10, 2022 @09:26AM (#31693847)
> Can't they just let people go who interview very well but are poor performers on the job?

Eventually, yes. But it takes time for them to start, time and money to onboard them, evaluate how they’re ramping up, then if not acceptable, to follow whatever performance management process is indicated by the company and local law, then transition whatever work they were doing. This could be several months and tens of thousands of dollars just to get back to a worse state than when you walked into interview that candidate.

Interviewing even slightly better than last year can pay large dividends.

Re:Stop Interviewing with Leet Code by hereyougo on Thursday June 09, 2022 @04:12PM (#31686167)
Here you go

  # You have a music player that should be playing a 900 song list randomly.
  # You notice that you keep hearing a song being repeated during your drive and
  # you are curious if its truly random.
  
  from collections import Counter
  import random
  
  r             = random.Random() 
  songs         = range(1,900)
  unplayed      = set(songs)
  
  # You also keep hitting skip in the hopes a particular song comes up. 
  # Write a piece of code that simulates this.  You should tell me three things;
  # 1) the number of songs played before a repeat occurs
  # 2) how many songs needed to be played before you played them all
  # 3) after you succeed in playing them all, how many times has the most common song been played.
  
  counter         = Counter()
  firstrepeat     = None
  totalplays      = 0
  
  while unplayed:
      song = r.choice(songs)
      unplayed -= set([song])
      if firstrepeat is None and song in counter:
          firstrepeat = len(counter)
      counter[song] += 1
      totalplays += 1
  
  print(f"""
  Number of songs played before a repeat:             {firstrepeat}
  Total number songs played:                          {totalplays}
  Most common song:                                   {counter.most_common()[0][0]}
  How many times has the most common song was played: {counter.most_common()[0][1]}
  """)
Sample run

  $ python3 foo.py

  Number of songs played before a repeat:             50
  Total number songs played:                          7263
  Most common song:                                   375
  How many times has the most common song was played: 17
Re:Stop Interviewing with Leet Code by visarga on Thursday June 09, 2022 @05:07PM (#31686900)
I'm wondering why would the music player implement sampling with replacement and not without replacement? Sampling without replacement would shuffle the list and then play the tracks in shuffled order, no repeats until all songs are played once.
Re:Stop Interviewing with Leet Code by jboy55 on Thursday June 09, 2022 @10:08PM (#31689186)
This is what I was thinking, as I was driving in, and heard the same song. It was an iPhone, and it was my impression that this is how the iPhone worked. Now, my iPhone did something else weird, it randomly dropped songs from being downloaded, so songs 'disappeared'.

One other thing, I just got a new car, and this was the first time I was using 'next' using bluetooth. So, as I was driving in, I was in my head trying to figure out whether the phone now only had 100 songs downloaded, or whether this bluetooth 'next' function on shuffle was picking a random song from the list, rather than 'next' on a shuffled list.

Re:Stop Interviewing with Leet Code by jboy55 on Thursday June 09, 2022 @10:09PM (#31689190)
That would have been perfect. That's what I would have wanted checked in. I would have quickly turned to telling you how awesome the company was.
Re:Stop Interviewing with Leet Code by fuzzythinker on Thursday June 09, 2022 @04:25PM (#31686342)
Nice. I would add % of it played vs. median and how many std.deviations from it.
Re:Stop Interviewing with Leet Code by akhmatova on Saturday June 11, 2022 @11:02AM (#31704928)
I will google it for you if you don't remember the syntax.

You might as well just stand behind them and breath down their neck for added effect.

Seriously, that's way too claustrophobic, and not to mention a huge practical annoyance -- for the added latency of having to ask you to google stuff for them and then give you the result somehow, instead of just letting them do it themselves, when all they want to do is get past this trite exercise and start having a real conversation.

Re:Stop Interviewing with Leet Code by brandall10 on Thursday June 09, 2022 @09:02AM (#31680693)
I notice quite a few early stage startups that recruit w/ large initial funding rounds (ie. a $20-40M series A) almost invariably have a note about how their founders are ex-FAANG. I can't help but believe it helps a ton w/ funding, professional networks, team building, etc.

Again, no different than having an Ivy League education. There are big advantages to scope/reach/opportunities in the industry.

Re:Stop Interviewing with Leet Code by exdsq on Thursday June 09, 2022 @09:17AM (#31680788)
Signaling is definitely a thing!
Re:Stop Interviewing with Leet Code by dekhn on Thursday June 09, 2022 @11:44AM (#31682642)
The predecessors to leetcode questions were being asked, for example, in PhD defense dissertations as well as some that were highly specific to the company in questions (sort 2MB of data 1MB RAM). Many of the problems are basically late-undergrad, early-graduate CS student problems.
Re:Stop Interviewing with Leet Code by astrange on Thursday June 09, 2022 @04:08PM (#31686122)
Do PhD defenses actually involve asking random tech questions instead of what's in the dissertation? Seems like if they're going to fail that, you already have bigger problems.
Re:Stop Interviewing with Leet Code by dekhn on Thursday June 09, 2022 @04:17PM (#31686223)
My PhD was in biophysics and the questions ranged widely outside my dissertation (in my case, you actually do a defense to proceed to work on your PhD, then write your dissertation and give a final talk; there's no way, unless your advisor rejects your dissertation, that your phd wouldn't be awarded. Other programs rear-load the process and have a real "defense" at the end, which is crazy if you think about it.

At one point in my thesis defense, I derived several equations I hadn't seen before, on the fly, such as "What is the time resolved fluorescence of a fluorophore in 4-dimensional space?" and finally understanding ergodicity (https://en.wikipedia.org/wiki/Ergodicity).

My defense wasn't about determining if I was an expert and qualified to write a dissertation in my field (my questioners already knew that), but to determine if I was a well-rounded general intelligence capable of out-of-task prediction.

Re:Stop Interviewing with Leet Code by arcanus on Thursday June 09, 2022 @10:53PM (#31689429)
This sounds like the qualifying examination.

In my phd experience in the USA we had oral qualifying examinations which involved whiteboard derivations. The thesis defense after writing was really mostly focused on probing the results in the thesis.

Re:Stop Interviewing with Leet Code by bodge5000 on Thursday June 09, 2022 @10:32AM (#31681659)
> More than obedience, it probably is the aspect that they're smart and determined to succeed.

Depending on your definition of success, I'd say determined to succeed could well be the same thing as obidience.