Remix.run Logo
samiv 5 days ago

The LC interviews are like testing people how fast they can run 100m after practice, while the real job is a slow arduous never ending jog with multiple detours and stops along the way.

But yeah that's the game you have to play now if you want the top $$$ at one of the SMEGMA companies.

I wrote (for example) my 2D game engine from scratch (3rd party libs excluded)

https://github.com/ensisoft/detonator

but would not be able to pass a LC type interview that requires multiple LC hard solutions and a couple of backflips on top. But that's fine, I've accepted that.

MarcelOlsz 4 days ago | parent | next [-]

5 years ago you'd have a project like that, talk to someone at a company for like 30m-1hr about it, and then get an offer.

Voloskaya 4 days ago | parent | next [-]

Did you mean to type 25? 5 years ago LC challenge were as, if not more, prevalent than they are today. And a single interview for a job is not something I have seen ever after 15 years in the space (and a bunch of successful OSS projects I can showcase).

I actually have the feeling it’s not as hardcore as it used to be on average. E.g. OpenAI doesn’t have a straight up LC interview even though they probably are the most sought after company. Google and MS and others still do it, but it feel like it has less weight in the final feedback than it did before. Most en-vogue startup have also ditched it for real world coding excercices.

Probably due to the fact that LC has been thoroughly gamed and is even less a useful signal than it was before.

Of course some still do, like Anthropic were you have to have a perfect score to 4 leetcode questions, automatically judged with no human contact, the worst kind of interview.

nsxwolf 4 days ago | parent | next [-]

I literally got my first real job 26 years ago by talking about my game engine, for a fintech firm.

saagarjha 4 days ago | parent | prev | next [-]

I don’t know if this has changed or perhaps was not representative but my entire loop at Anthropic involved people reviewing my code.

Voloskaya 4 days ago | parent [-]

Might depend on the specific position you applied to. Was it a pure SDE role or more on the research side ?

saagarjha 2 days ago | parent [-]

Basically pure software engineering

Voloskaya 2 days ago | parent [-]

Interesting, maybe they stopped doing this then. It used to be that you received a link for an automated online test, with 4 progressively harder questions, and you needed to score 1000/1000 to go the next step and speak to a human.

MarcelOlsz 4 days ago | parent | prev [-]

There's an entire planet of jobs that have nothing to do with leetcode. I was talking about those, not FAANG stuff. Unfortunately I am not FAANG royalty.

>Of course some still do, like Anthropic were you have to have a perfect score to 4 leetcode questions, automatically judged with no human contact, the worst kind of interview.

Should be illegal honestly.

camdenreslink 4 days ago | parent | next [-]

5 years ago non-FAANG companies were fully in leetcode mode for interviews. Maybe 10-15 years ago you could totally avoid it without much problem.

pjmlp 4 days ago | parent [-]

In most European companies that isn't a thing.

Thankfully not everything from SV culture gets adoption.

aidenn0 4 days ago | parent | prev | next [-]

It might be illegal; certainly if you can show that LC is biased against a protected class, then there would be grounds for a lawsuit.

thaumasiotes 4 days ago | parent | next [-]

> certainly if you can show that LC is biased against a protected class, then there would be grounds for a lawsuit.

That wouldn't be hard to do. Given the disparate impact standard, everything is biased against a protected class.

eek2121 4 days ago | parent | prev [-]

Only if there is enough evidence. Yes, I can say that the inability to account for things like the ADA in the US can place an employer in hot water, however, since LC doesn't make those decisions, they are immune. The accountability is placed upon the employer. Don't hate the players or the game. Maybe just figure out how to fix it without harming everyone, be popular enough to make said idea into law, and get into a position of power that allows you to do so. If that sounds hard, congrats, welcome to the reason why I never got into politics. Don't even get me started on all the people you will never realize you are hurting by fixing that one single problem.

aidenn0 4 days ago | parent [-]

I never meant to imply that LC would be violating the law.

esseph 4 days ago | parent [-]

Good legal disclaimer!

almostgotcaught 4 days ago | parent | prev [-]

> Should be illegal honestly.

I can't imagine this kind of entitlement. If you don't want to work for them, don't study leetcode. If you want to work for them (and get paid tons of money), study leetcode. This isn't a difficult aristotelian ethics/morals question.

MarcelOlsz 4 days ago | parent [-]

I meant no human-in-the-loop wrt hiring, which is what I thought you were getting at.

almostgotcaught 4 days ago | parent [-]

It's the same exact thing - if some company makes you jump through hoops to get hired that you find distasteful just don't apply to company.

antonvs 4 days ago | parent | next [-]

Not all of us are market extremists. The “invisible hand of the market” doesn’t care about human rights.

almostgotcaught 3 days ago | parent [-]

I don't understand what you're saying. We're not talking about the market exploiting labor because before you are hired by the company you're not labor for the company. Is this really that difficult to understand?

MarcelOlsz 4 days ago | parent | prev | next [-]

You don't know their interview process unless it's one of the big tech companies though.

matheusmoreira 4 days ago | parent | prev [-]

No. Certain things just harm basic human dignity and should be outlawed. Judgement comes from our peers, not from machines.

hn_go_brrrrr 4 days ago | parent [-]

But sometimes also machines. ACLs are enforced by machines, and everyone is fine with that.

spike021 4 days ago | parent | prev | next [-]

Not sure if that's a typo. 5 years ago was also pretty LC-heavy.

Ten years ago it was more based on Cracking the Coding Interview.

So i'd guess what you're referring to is even older than that.

MarcelOlsz 4 days ago | parent [-]

Talking about general jobs not FAANG adjacent.

SJC_Hacker 4 days ago | parent | next [-]

Nearly everyone is FAANG adjacent

Apart from those companies where social capital counts for more ...

spike021 4 days ago | parent | prev [-]

I rarely apply for or interview at FAANG or adjacent companies...

eek2121 4 days ago | parent | prev | next [-]

I read this, and intentionally did not read the replies below. You are so wrong. You can write a library, even an entirely new language from scratch, and you will still be denied employment for that library/language.

lll-o-lll 4 days ago | parent | prev | next [-]

> 5 years ago you'd have a project like that, talk to someone at a company for like 30m-1hr about it, and then get an offer.

Based on my own experiences, that was true 25 years ago. 20 years ago, coding puzzles were now a standard part of interviewing, but it was pretty lightweight. 5 years ago (covid!) everything was leet-code to get to the interview stage.

lovich 4 days ago | parent | prev [-]

I have been getting grilled on leet code style questions since the beginning my of my career over 12 years ago.

The faangs jump and then the rest of the industry does some dogshit imitation of their process

MarcelOlsz 4 days ago | parent [-]

I'm lucky I'm in the frontend webdev sphere then I guess instead of like being a pure backend guy. I've had a couple of those live ones and just denied them. I did manage to implement a "snake" algorithm once but got denied because I wasn't able to talk about time/space complexity.

lovich 4 days ago | parent [-]

As someone who’s hired 10s of engineers across multiple companies, it’s bullshit on the hiring side too.

It was humbling having to explain to fellow adult humans that when your test question is based on an algorithm solving a real business problem that we work on every day, a random person is not going to implement a solution in one hour as well as we can.

I’ve seen how the faangs interview process accounts for those types of bias and mental blindness and are actually effective, but their solutions require time and/or money so everywhere I’ve been implements the first 80% that’s cheap and then skips on the rest that makes it work

MarcelOlsz 4 days ago | parent [-]

>As someone who’s hired 10s of engineers across multiple companies

Any way to reach out? :)

I think it boils down to companies not wanting to burn money and time on training, and trying to come up with all sorts of optimized (but ultimately contrived) interview processes. Now both parties are screwed.

>It was humbling having to explain to fellow adult humans that when your test question is based on an algorithm solving a real business problem that we work on every day, a random person is not going to implement a solution in one hour as well as we can.

Tell me about it! Who were you explaining this to?

roncesvalles 4 days ago | parent | prev | next [-]

>The LC interviews are like testing people how fast they can run 100m after practice

Ah, but, the road to becoming good at Leetcode/100m sprint is:

>a slow arduous never ending jog with multiple detours and stops along the way

Hence Leetcode is a reasonably good test for the job. If it didn't actually work, it would've been discarded by companies long ago.

Barring a few core library teams, companies don't really care if you're any good at algorithms. They care if you can learn something well enough to become world-class competitive. If you can show that you can become excellent at one thing, there's a good chance you can become excellent at another thing.

That's basically also the reason that many Law and Med programs don't care what your major in undergrad was, just that you had a very high GPA in whatever you studied. A decent number of Music majors become MDs, for example.

ascorbic 4 days ago | parent | next [-]

LC interviews were made popular by companies that were started by CS students because they like feeling that this stuff is important. They're also useful when you have massive numbers of applicants to sift through because they can be automated and are an objective-seeming way to discard loads of applicants.

Startups that wanted to emulate FAANGs then cargo-culted them, particularly if they were also founded by CS students or ex-FAANG (which describes a lot of them). Very, very few of these actually try any other way of hiring and compare them.

Being able to study hard and learn something well is certainly a great skill to have, but leetcode is a really poor one to choose. It's not a skill that you can acquire on the job, so it rules out anyone who doesn't have time to spend months studying something in their own time that's inherently not very useful. If they chose to test skills that are hard and take effort to learn, but are also relevant to the job, then they can also find people who are good at learning on the job, which is what they are actually looking for.

grugagag 4 days ago | parent | prev | next [-]

But why stop there? Why not test candidates with problems they have never seen before? Or problems similar to the problems of the organization hiring? Leetcode mostly relies on memorizing patterns with a shallow understanding but shows the candidates have a gaming ability. Does that imply quality in any way? Some people argue that willing to study for leetcode shows some virtue. I very much disagree with that.

roncesvalles 4 days ago | parent | next [-]

I think you have a misunderstanding. Most companies that do LC-style interviews usually show unknown problems.

Memorizing the Top 100 list from Leetcode only works for a few companies (notably and perplexingly, Meta) but doesn't for the vast majority.

Also, just solving the problem isn't enough to perform well on the interview. Getting the optimal solution is just the table stakes. There's communication, tradeoffs between alternative solutions, coding style, follow-up questions, opportunities to show off language trivia etc.

Memorizing problems is wholly not the point of Leetcode grinding at all.

In terms of memorizing "patterns", in mathematics and computer science all new discovery is just a recombination of what was already known. There's virtually no information coming from outside the system like in, say, biology or physics. The whole field is just memorized patterns being recombined in different ways to solve different problems.

grugagag 4 days ago | parent [-]

It’s not about memorizing individual problems per se, but rather recognizing overall patterns and turning the process into a gameable endeavor. This can give candidates an edge, but it doesn’t necessarily demonstrate higher-level ability beyond surface familiarity with common patterns and the expectations around them. I’d understand the value if the job actually involved work similar to what's reflected in leetCode style problems, but in most cases, that couldn’t be further from reality. leetCode serves little purpose beyond measuring a candidate’s willingness to invest time and effort. That’s the only real virtue it rewards. But ultimately, I believe leetCode style interviews are measuring the wrong metric.

roncesvalles 4 days ago | parent [-]

>a candidate’s willingness to invest time and effort

I guess it's a matter of opinion but my point is, this is probably the right metric. Arguably, the kind of people who shut up and play along with these stupid games because that's where the money is make better team players in large for-profit organizations than those who take a principled stance against ever touching Leetcode because their efforts wouldn't contribute anything to the art.

grugagag 4 days ago | parent | next [-]

Maybe yes maybe not, I'm leaning not but it's just an opinion. But as a company be careful what you wish for, these same candidates are often skilled at gaming systems and may leave your team as soon as they've extracted the benefits. They’re likely more interested in playing the game than in seriously solving real-world problems.

galaxyLogic 4 days ago | parent | prev [-]

Then what if the test was how well you play chess? That takes time to study to become good. But would it be a good metric for hiring programmers?

Jensson 4 days ago | parent | next [-]

Because chess is more unrelated to the job? It is easy to see that LeetCode problems are closer to a programmers job than what chess is.

But yeah, people used to ask that level of unrelated questions to programmers, and they were happy with the results. "Why are manhole covers round" etc. LeetCode style questions do produce better results than those, so that is why they use them.

citizen-stig 4 days ago | parent [-]

Then testing how they play Factorio will work better

4 days ago | parent | prev [-]
[deleted]
kentm 4 days ago | parent | prev | next [-]

To play the devils advocate, being able to memorize patterns and recognize which patterns apply to a given problem is extremely valuable. Tons of software dev is knowing the subset of algorithms, data structures, and architecture that apply to a similar problem and being able to adapt it.

tharkun__ 4 days ago | parent | next [-]

It's funny you mention that.

That's literally what CS teaches you too. Which is what "leetcode" questions are: fundamental CS problems that you'd learn about in a computer science curriculum.

It's called "reducing" one problem to another. We had an entire semester's mandatory class spend a lot of time on reducing problems. Like figuring out how you can solve a new type of question/problem with an algorithm or two that you already know from before.

Like showing that "this is just bin packing". And there are algorithms for that, which "suck" in the CS kind of sense but there are real world algorithms that are "good enough" to be usable to get shit done.

Or showing that something "doesn't work, period" by showing that it can be reduced to the halting problem (assuming that nobody has solved that yet - oh and good luck btw. if you want to try ;) )

deepsun 4 days ago | parent [-]

I did quite a bit of competitive programming in school, and pretty much all the world-class competitive problems are reduced to well-known algorithms. It's quite hard to come up with something new (not proven to be unsolvable for its constraints). I believe problem setters just try to disguise a known algorithm as much as possible.

Then comes the ability/memorization to actually code it, e.g. if I knew it needs coding red-black tree I wouldn't even start.

notemap 4 days ago | parent | next [-]

Solve one of my problems :)

https://www.acmicpc.net/problem/33797

Try with an LLM too :)

deepsun 2 days ago | parent [-]

403 Forbidden :(

4 days ago | parent | prev [-]
[deleted]
4 days ago | parent | prev | next [-]
[deleted]
lupire 4 days ago | parent | prev [-]

Algorithms and data structures are absolutely trivial for 99% of software dev work. 1% are inventing MapReduce.

Architecture is not part of leetcode.

awesome_dude 4 days ago | parent | prev | next [-]

> Or problems similar to the problems of the organization hiring?

People complain, rightly so in some cases, that their "interview" is really doing some (unpaid) work for the company

didibus 4 days ago | parent | prev [-]

> Leetcode mostly relies on memorizing patterns

Math is like that as well though. It's about learning all the prior axioms, laws, knowing allowed simplifications, and so on.

aeonik 4 days ago | parent | next [-]

In the same way that writing and performing a new song is "just memorizing prior patterns and law"

or that writing a new book is the same.

I.e. it's not about that. Like sure it helps to have a base set of shared language, knowledge, and symbols, but math is so much more than just that.

Jensson 4 days ago | parent [-]

Programming competition problems are also much more than just memorizing patterns, that was the point of his post.

tomatocracy 3 days ago | parent | prev | next [-]

I think you've missed a big part of maths - yes knowing those things is necessary. But then you also need to be able to see how a difficult or complex problem could be restated or broken down in a different way which lets you use those techniques. Sometimes this is something as trivial as using the right notation or coordinates, sometimes it's much more involved.

catlifeonmars 4 days ago | parent | prev [-]

In math, you usually need to prove said simplifications. So just memorizing is not enough. As you get more advanced, you then start swapping out axioms.

Jensson 4 days ago | parent [-]

In programming the simplifications has to be correct even if you don't prove them, and being correct isn't that easy.

catlifeonmars 4 days ago | parent [-]

Pedantic: how do you know something is correct without proving it? How do you know you have covered all possible edge cases? /Pedantic

In all seriousness, the intersection between correctness and project delivery is where engineering sits. Solutions must be good enough, correct enough, and cheap enough to fit the use case, but ideally no more than that.

Freedom2 4 days ago | parent | prev | next [-]

> Hence Leetcode is a reasonably good test for the job. If it didn't actually work, it would've been discarded by companies long ago.

This is an appeal to tradition and a form of survivorship bias. Many successful companies have ditched LeetCode and have found other ways to effectively hire.

> If you can show that you can become excellent at one thing, there's a good chance you can become excellent at another thing.

My company uses LeetCode. All I want is sane interfaces and good documentation. It is far more likely to get something clever, broken and poorly documented than something "excellent", so something is missing for this correlation.

Exoristos 4 days ago | parent | prev | next [-]

> If it didn't actually work, it would've been discarded by companies long ago.

This that I've singled out above is a very confident statement, considering that inertia in large companies is a byword at this point. Further, "work" could conceivably mean many things in this context, from "per se narrows our massive applicant pool" to "selects for factor X," X being clear only to certain management in certain sectors. Regardless, I agree with those who find it obvious that LC does not ensure a job fit for almost any real-world job.

saghm 4 days ago | parent | prev | next [-]

> If it didn't actually work, it would've been discarded by companies long ago

You're assuming that something else works better. Imagine if we were in a world where all interviewing techniques had a ton of false positives and negatives without a clear best choice. Do you expect that companies would just give up, and not hire at all, or would they pick based on other factors (e.g. minimizing the amount of effort needed on the company side to do the interviews)? Assuming you accept the premise that companies would still be trying to hire in that situation, how can you tell the difference between the world we're in now and that (maybe not-so) hypothetical one?

roncesvalles 4 days ago | parent [-]

I never made any claims about optimality. It works (for whatever reason) hence companies continue to use it

If it didn't work, these companies wouldn't be able to function at all.

It must be the case that it works better than running a RNG on everyone who applied.

Does it mean some genius software engineer who wrote a fundamental part of the Linux kernel but never learned about Minimum Spanning Trees got filtered out? Probably. But it's okay. That guy would've been a pain in the ass anyway.

pjmlp 4 days ago | parent | prev | next [-]

Does it work though?

When I look at the messy Android code, Fuchsia's commercial failure, Dart being almost killed by politics, Go's marvellous design, WinUI/UWP catastrophical failure, how C++/CX got replaced with C++/WinRT, ongoing issues with macOS Tahoe,....

I am glad that apparently I am not good enough for such projects.

chii 4 days ago | parent [-]

zero of those failures are of a technical nature.

The fact is that they fail is not evidence that leetcode interviews fails to select for high quality engineers.

pjmlp 4 days ago | parent [-]

On the contrary, they prove high quality engineers, for whatever measure that happens to be, does not correlate to product quality.

never_inline 4 days ago | parent | prev | next [-]

> the road to becoming good

In my experience, it's totally not true.

Many college students of my generation are pretty good with LC hards these days purely due to FOMO-induced obsessive practice, which doesn't translate to a practical understanding of the job, (or any other parts of CS like OS/networks/languages/automata either).

I will give you an exercise, pick an LC hard problem and it's very likely an experienced engineer who has only done "real work" will not know the "trick" required to solve the problem. (Unless it's something common like BFS or backtracking).

I say this as someone with "knight" badge on leetcode, whatever that means, lest you think it's a sour grapes fallacy.

Calavar 4 days ago | parent | prev | next [-]

> Hence Leetcode is a reasonably good test for the job. If it didn't actually work, it would've been discarded by companies long ago.

I see it differently. I wouldn't say it's reasonably good, I'd say it's a terrible metric that's very tenuously correlated with on the job success, but most of the other metrics for evaluating fresh grads are even worse. In the land of the blind the one eyed man is king.

> If you can show that you can become excellent at one thing, there's a good chance you can become excellent at another thing.

Eh. As someone who did tech and then medicine, a lot great doctors would make terrible software engineers and vice versa. Some things, like work ethic and organization, are going to increase your odds of success at nearly any task, but there's plenty other skills that are not nearly as transferable. For example, being good at memorizing long lists of obscure facts is a great skill for a doctor, not so much for a software engineer. Strong spatial reasoning is helpful for a software developer specializing in algorithms, but largely useless for, say, an oncologist.

pendenthistory 4 days ago | parent | prev | next [-]

It's also a filter for people who are ok with working hard on something completely pointless for many months in order to get a job.

AndrewDavis 4 days ago | parent | prev [-]

> If it didn't actually work, it would've been discarded by companies long ago

That makes the assumption that company hiring practices are evidence based.

How many companies continue to use pseudo-science Myers Briggs style tests?

deadghost 4 days ago | parent | prev | next [-]

>how fast they can run 100m after practice, while the real job is a slow arduous never ending jog with multiple detours and stops along the way

I've always explained it as demonstrating your ping pong skills to get on the basketball team.

iyc_ 4 days ago | parent | prev | next [-]

Mistakenly read this as you wrote that 2D game engine (which looks awesome btw) for a job interview to get the job: "I can't compete with this!!! HOW CAN I COMPETE WITH THESE TYPES OF SUBMISSIONS!?!?! OH GAWD!!!"

anonzzzies 4 days ago | parent | prev | next [-]

Yes. If work was leetcode problem solving, I would actually enjoy it. Updating npm packages and writing tiny features that get canned a week later is all not that stimulating.

Figs 4 days ago | parent | prev | next [-]

> SMEGMA companies

Microsoft, Google, Meta, Amazon, I'm guessing... but, what are the other two?

jiggawatts 4 days ago | parent | next [-]

I prefer AGAMEMNON: Apple, Google, Amazon, Microsoft, Ebay, Meta, NVIDIA, OpenAI, Netflix

saghm 4 days ago | parent | prev | next [-]

"Startups" and "Enterprise"? I guess that basically covers everything

esseph 4 days ago | parent | prev [-]

Lol :)

RagnarD 4 days ago | parent | prev | next [-]

"SMEGMA companies." :D

throwaway7783 4 days ago | parent | prev [-]

And nowadays people are blatantly using AI to answer questions like this (https://www.finalroundai.com/coding-copilot). Even trying to stumble through design questions using AI