I was wondering if there is a correlation between hiring engineers who spend their lives memorizing leetcode hard problems and a company's ability to innovate and execute?
Did they really optimize for hiring the top 0.001% of engineers or it's just that the fish is rotten from the top.
It seems to me that the selection process favors Indian and Chinese engineers who are used to cramming for rigorous entrance exams to top universities.
I think it just heavily favors new grads, who just spent a year+ studying algorithms. Those with full time jobs have to spend precious hours of free time remembering how to do these.
> I think it just heavily favors new grads, who just spent a year+ studying algorithms.
Year+ is a fair assessment. A proper Computer Science course(4 years!) is mostly about algorithms. Most of leetcode hard would qualify as warmup exercises for my class.
That was a while ago. Right now? My brain is chock full of architectural stuff, k8s, several programming languages, multiple cloud provider idiosyncrasies, etc etc. Can I do leetcode? Yeah sure. Can I do it during an interview? I've tried recently, bombed spectacularly.
I'll probably have to invest the time prepping properly because there's little choice these days. Like you said, it's using up our precious free time. I'd rather be, I don't know, writing some stuff in Rust so I can add that language to my toolbox.
Please continue to give your honest feedback to employers. I don't do leetcode and I won't proceed with an employer that expects me to interview like that.
Well, this just sucks about these jobs interviews. I learned quite a bit during my last job and I'd be happy to show some of these to the interviewer, but instead I'm forced to answer questions that I know have nothing to do with what I'll be dealing with. It's always the same story, it's just exhausting.
And also Eastern European or ex-USSR countries where highschool STEM curriculum is more difficult than in the west and participation in STEM competitions and olympiads is encouraged for kids.
We had to solve binary and hex division and multiplication on paper for exams and study Dijkstra's algoritm and binary tree traversal in highschool CS. Ugly stuff for a bunch of 16 year olds who just wanted to make Flash games. Really made me hate CS.
>This is not ... hard. It's the same logic as decimal multiplication/division on paper.
Do you really think tests where you gotta solve several divisions and multiplications on paper in hex and binary with no aids under time pressure is approachable for every 11 year old who just starts to learn about CS?
It's good to learn and know how such operations are done, but those tests were the bane of my 11 year old childhood.
The problem with companies the size of Meta - and even down to 1/10th the size - is that there's just so many moving parts, it's a day job just to try and figure out how things work and where to implement a change.
It's no wonder that - at least for a while - Google was churning out new products left and right. It allows people to build new stuff instead of have to maintain existing stuff.
I am familiar with Meta's interviewing policy, which proscribes LC "hard" type problems. I don't know the contents of every single interview, obviously. Your interviewer(s) violated explicit policy if you were given LC hards.
In a way does it matter? The interviewers aren’t making the final decisions and the actual hiring committee aren’t stupid and should be able do some basic normalization.
I think it probably matters to the individual interviewees and also matters to the hiring committee because it reduces the quality of the hiring signal.
Have you ever interviewed with Facebook/Meta? They don't do leetcode problems. Say what you want about them as a company, but I've done quite a few interviews in my career and their process was one of my favorites.
When I did the system design interview the guy told me that zuckeberg created memcached. Not sure if he meant used or invented, could have just been a language thing. Anyway, I'm glad I didn't pass.
I had a radically different experience. The worst interview I've ever had was with FB about 9 years ago. I got an offer and it was significantly (like more than 2x) what I was being paid at the time and I turned it down because the interview experience was so awful I couldn't imagine working with the people who had conducted my interview. Even setting aside other ethical concerns, I've added FB to my permanent blacklist of companies I will never work for sheerly because of how shit their interview process is.
I interviewed with them 12 years ago, it was a long time ago but I remember all the interviewers felt like they had come from a funeral, everyone was absolutely miserable. I knew right then and there I could never work at a company with such negativity, also they wanted me to skip my honeymoon to start with them which I was not about to do so overall a terrible company and experience. And after I started learning about their shady business dealings I put them on a permanent blacklist to this day.
I interviewed with Meta a few months ago and all my interviewers were upbeat, enthusiastic, and excited. Meanwhile my Google and Amazon interviewers looked miserable and bored as fuck.
With Google it's actually been a pattern. Interviewed for them and passed HC three times, but each time I couldn't bring myself to work for them given how bored everyone looked.
> also they wanted me to skip my honeymoon to start with them
They must be really strange folks. I can't imagine 1) a company who would propose such a thing to a (potential) employee, 2) a person who would agree to that. Seriously, WTF.
I'm interested in any evidence about this. I'm not agreeing or disagreeing its just a extremely general statement about 5 companies with no facts behind it and would be interested to see whats different between all 5 companies in 2022 in the talent acquisition department.
Well, a friend of mine was invited to an on-site interview at Google once, flew a few hours there, then arrived at the reception, waited for 7 hours, then they told him they forgot about him and he can go back home. Some people have bad experiences for many different reasons (shrug)... Pity it happened to you.
I interviewed for them. Questions were Front End related. One of the questions were "how could you find a node in an hmtl by id", to which I answered "using the DOM api, a querySelector would do a good job". The interviewer started hypothesising that the querySelector is not available, so we had to start discussing a whole binary traversal algorithm. If that's not leetcode I don't know what qualifies as it
Tree structures are very common in software. Needing to traverse them is also common. Sometimes people write utility functions to help you do it (that's where querySelector comes in), but it's really bad to think this knowledge is useless in writing software. You can't even list files recursively in a directory if you don't know how to properly do a tree traversal.
There are many algorithms in "leetcode" style questions that almost never get used in real world software development. Tree traversal is not one of them.
Heck, the whole family of lisp languages are nothing but "(non?)abstract syntax trees". Imagine getting reprimanded by a user named `morelisp` :)
And to be pedantic, since DOM trees are not binary trees, it's not a "binary traversal" problem. I encounter binary trees a lot less than the non-binary counterparts, but the traversal algorithm is basically the same.
It was hypothesized that querySelector was not available, not that the entire DOM API was not available. However, if we suppose that the entire DOM API was not available, there would no way to access the HTML nodes so no algorithm is going to save you anyway.
I just joined Meta this year and had to solve leetcode-style problems, not sure what you mean? Maybe that they aren't literally taken from leetcode or taken on leetcode.com?
I legitimately cannot see this question in the current context as anything but being made in bad faith.
Do you seriously struggle to think of possible reasons for why someone would want to work for Meta? Something like "high pay, interesting/difficult challenges and problems to work on, large scale rarely found elsewhere, and lots of learning opportunities (including loads of great engineers to learn from)" never crossed your mind?
Not saying that those were the reasons OP used to make their choice, could have been plenty others. But given there are so many obvious possible reasons, the question in the context of the original comment feels just off.
P.S. I am neither current nor a former Meta employee. It is just jarring to see reddit-tier flamebait discourse in HN threads.
> Do you seriously struggle to think of possible reasons for why someone would want to work for Meta?
Yes, I struggle to think of a good reason to work for such a harmful company as Meta. People usually don't land there because of a desperate need for money, which would probably be one of the very few acceptable reasons for joining that company.
And why should my question be in good faith? Why should we not call out people who cheerfully join organizations that pose a threat to our future, and show no civic responsibility?
> I struggle to think of a good reason to work for such a harmful company as Meta
WhatsApp is an extremely useful product in my life. Instagram is nice for keeping up to date with some friends I don't get a chance to hangout in-person with often, as well as following some small local artist and museum pages. I dont care for FB as a product anymore, but pre-pandemic it was great for helping organize events with my friends. Oculus Quest 2 is a product I use daily and enjoy.
Most people outside of a subset of HN boiling in their own echochamber consider a lot of those products as useful in their lives, and will just give you the look of "huh, sounds interesting, i will look into it later. Oh, just remembered I had an appointment in an hour, welp gotta go, see ya later" if you try to give them that "harmful" spiel.
> And why should my question be in good faith?
Because that's what people come to HN for. If I wanted bad faith takes galore, I would need to go no further than reddit.
> Why should we not call out people who cheerfully join organizations that pose a threat to our future, and show no civic responsibility?
Because that's just your opinion. And it is sliding into QAnon-level justifications for using arguments like "why should we wear masks, when they pose a threat to our freedoms and the way of life!" and "why should we not storm the capitol, it is a civic responsibility to free ourselves from the shadow cabal's tyrrany and threat to our future!".
I don't agree with those QAnon takes, so I hope you realize that not everyone universally agrees with your takes either. And not because they are being paid by Meta or were "brainwashed".
I see a lot more negativity towards Facebook IRL than I do here on HN. If anything, the correlation seems to be that those closest to the tech industry are the ones most positive about it, while casual users are extremely negative.
> Yes, I struggle to think of a good reason to work for such a harmful company as Meta.
It seems you also struggle to understand that the majority of the world does not consider them to be a harmful company, and do not agree with your assessment of it.
Anti-disclaimer: I do not work for FAANG, nor have I. I also never had a FB/Instagram account. I'm not fond of Facebook, but I can see other people's perspectives.
> Yes, I struggle to think of a good reason to work for such a harmful company as Meta.
Then you aren't actually asking to learn. Instead you are judging the poster. That's a thing you can do, but couching it in a question is terrible forum etiquette.
> it's surprising that a person would share this publicly at this point in the company's history.
This is the part that tells me that maybe you are a bit out of touch with the general public.
Go to any college campus or talk to any student in a good CS program in the US. Meta is going to be on the list of some of the most sought after companies to get an internship or a fresh grad offer at. People post glowing humblebrag posts on Facebook/Twitter/Instagram/TikTok/LinkedIn/etc. when they get a job offer from Meta, for their friends and followers to see. I see it on my own feeds not that rarely, and often from people I went to college with a while ago.
I cannot really feel the same level of excitement about a job like that to share it with others in a similar way. But you finding it "surprising that a person would share [that they got a job at Meta] publicly at this point in the company's history", as if it was something they would be ashamed about and attempt hiding, is somewhat telling.
> Now if this warrants deplatforming in the eyes of a resonable person
What warrants deplatforming is your straight up admitance that you had nothing to contribute, were not acting in good faith, and were just asking a question to attack someone.
Just say it with your chest. That way people can judge for themselves what the heck it is you are doing.
I think you're the one who's attacking users here. Asking why someone would join a company is not an attack, even if I have my reservations about the company, and I had no plans to further interact with them, but probably continue to have my opinions about their choice, unless they make a compelling argument.
My question was not made in bad faith, but insinuated to be a bad faith question by a different user, though as I said, I do understand the people who directly call out Meta employees, which I did not do here.
It is you and your peer who attacked the question, brought up conspiracy theories and called for deplatforming. So if you continue perhaps I'll be the one to reach out to mods. I have every damn right to ask someone on HN why they would work for Meta, without expecting intimidation from other users.
And yes, I continue to be surprised by people who would join Meta given all the shady and illegal things they've been doing over the years. So maybe one of you could give an honest answer, one that does not involve an attack. Maybe they weren't fully aware of Meta's issues, or people there generally don't care about these problems? That is what I was trying to understand.
You know you basically already admitting to acting in bad faith right? You said this: "And why should my question be in good faith?".
This is you basically admitting that it was all in bad faith in the first place, because, it is an attempt to justify it, by effectively questioning why your question should be asked in good faith in the first place.
I think you're reading the least charitable interpretation into my comments. The question was not asked in bad faith, but genuine surprise, while I'm also bothered by people acting as if a Meta employee could not be called out. You can be offended by the matter of an allegation being framed as something bad, and also not commit the alleged act.
For example an Amazon employee could be bothered by their union related question being perceived as critique, while also seeing no issue with someone condemning Amazon for their illegal union busting, and general disregard for the safety and well being of their warehouse staff.
Ok, so you agree that you should not ask questions in bad faith, and then when you later said "And why should my question be in good faith?", well that was a dumb question.
Glad I finally got you to the point of saying that we shouldn't ask people questions in bad faith, to attack them.
Just say what mean, and don't do this roundabout way of attacking people, with a flame-bait question.
And if you already agree that we should not ask people bad faith questions, then you saying "And why should my question be in good faith?" is bad faith itself, because you already know that we shouldn't do that.
No, I don't think any method of direct or indirect questioning is bad in this context, while you have a problem with both a roundabout and a direct critique of someone's employment choice, be it Meta or Amazon. You said it yourself that I should be direct in my critique so that I hopefully get deplatformed.
Find a less harmful employer instead of projecting your insecurities into someone's question, and trying to silence critique of any kind to ease your conscience.
Cool, so as I suspected, you support engaging in bad faith, and asking bad faith questions.
Just say that from the very beginning if that is your opinion. Not sure why you would do this song and dance of denial, if this is just what you believe.
I'm not sure what you're understanding from my comments at this point, but I said it early on that I see no problem with a bad faith question when it comes to questioning a Meta enginner's employment choice. I kept repeating the same thought over an over. You can be content with something in a specific case, and at the same time not engage in it. This also doesn't mean that someone will usually support a bad faith argument, or engage in it, as you seem to want to conclude.
> I said it early on that I see no problem with a bad faith question
Awesome! Got you to admit to it them! Now don't start crying when people accuse you of supporting asking questions in bad faith.
Just say "Yep, that is a totally valid thing to accuse me of supporting. I agree that you are correct in saying that I have no problem with asking questions in bad faith!".
You could have avoided all of this, if you just said that from the beginning.
I always think of the same question when I talk to someone who goes to work for Meta. High pay, sure, but that's available elsewhere.
Scale, by now, is surely an operations matter. If they're still having to innovate to perform at their current scale, what the hell have they been doing? In other words, aside from the VR distraction, what interesting challenges remain at Meta?
I know they have to rebuild their ad platform since Apple devastated it. But is "convincing people to look at advertisements" really still an interesting challenge? That's the point of view I don't understand, and would like to!
Not just pay, but also perks, people, and prestige. All of which will make your daily life as an engineer more pleasant and catapult your future career in ways the vast majority of other companies cannot.
Is it selfish? Perhaps. And maybe Meta will fall out of the pantheon of top tech companies at some point, but for now they’re still there.
The projects in their domain is definitely more interesting than slogging through yet another Generic Line of Business Project at Generic Tech Is A Cost Center Company where the vast majority of SWEs work.
Sorry, I must not have expressed my question clearly. Specifically which projects are interesting? They don't seem to be doing anything new, at least from the outside. I don't mean by that 'anything new for Facebook' but genuinely novel things, things you can't work on anywhere else.
Stipulated the rest of it -- what's the engineering challenge?
Fair question - and to be honest, since I’ve never worked there - I don’t know.
But to counter that, again, what’s the interesting or exciting engineering challenges at the various mundane companies where the vast majority of SWEs work at?
Having worked at such “boring” companies, but recently transferred to an “exciting” company in the same tier as Meta, I can say the fundamental concept of my projects or work hasn’t changed, but everything around it has. The people around you, the resources available, the respect, the culture.
It’s all a matter of context too. If you’re the type of elite SWE that can snap their fingers and land offers at any of the FAANGMULA+ companies, then sure it’s much easier to scoff at Meta and say there are many equivalently “interesting” places to work out there.
On the other hand if you’re someone that struggles with leetcode and Meta is the only company of its type that gives you an offer and the rest are cost center companies like the Wells Fargos and Home Depots of the world, then that’s another story.
I dislike Meta as much as the average person here, but it's easy to imagine challenging projects at their scale.
Say for example using advanced engineering techniques to optimize existing processes to achieve a 0.1% speedup. That alone could save a couple million dollars with Meta's scale. And it's only possible with the kind of scale they have.
And of course outsiders wouldn't even notice such a thing.
I got rejected on an obscure leetcode hard last year in the telephone screen, which was ridiculous considering I had enough practice to destroy leetcode hards.
Though it worked out for me in the end, but I was definitely annoyed for a day or two.
I got rejected and then when they inevitably called me up the next year the recruiter pulled up the feedback from my interview and I wasn't recommended because I rewrote a function to be easier to unit test, after being asked "how would you test this?". By rewrote I mean I added a parameter to take in a fictional db client, rather than instantiate directly.
I had a recruiter reach out to me about some ML positions there earlier this year, and I was sort of interested in it for a bit. They have an applicant portal where they literally have you practice leetcode problems, and are pretty open that you're going to be asked those kinds of questions in the interview.
This has been my experience as well, same for Amazon.
I didn't practice that much since I hate wasting time on useless tasks, and the interviewer literally told me to just leetcode and read the interview book. I asked him a bunch of web questions and he had no fucking clue, all he did was leetcode and interview every year.
It doesn't matter. At the end of the day, all leetcode "style" questions fall into a particular bucket. Two pointers, graphs, etc. It's not like the company is innovating new types of problems. It's just the same problem reworded.
They don't ask leetcode questions for Front-end engineers AFAIK. It's mostly practical Javascript/DOM/browser questions.
Funnily enough though, I heard once you join as a Front-end engineer, you are pretty much a regular SWE and can join any team and work on any tech, even backend/systems.
I mean, they do ask algorithmic problems, but first, they're not "leetcode hard" (leetcode hards can get just insane, it's impractical to ask those in an interview setting), more like mediums, and second - out of 6 or 7 interviews maybe 2-3 will be those. Domain-specific / system design ones are more important. Though that depends on the level they're hiring for, I imagine fresh grads get more "write code on whiteboard" types of questions.
Leetcode problems doesn't mean leetcode.com problems in a narrow sense (aka copy paste).
It means reasonably complex algorithmic and data structure problems you're supposed to solve by coding under pressure, quickly, in interview conditions.
And if you think that's not happening, I have a bridge in Brooklyn to sell you.
I suppose I AM confused then. I don't mind someone asking me complex algorithmic problems as long as we're WORKING toward a solution together. To me, leetcode means, "you have 45 minutes to solve these 2 or 3 problems... I'll watch".
Algorithmic thinking is kinda what I do. So solving those problems doesn't feel like a bad proxy for how I might perform on the job.
I had to navigate a dynamic maze involving teleports and boulders to show my leet graphing abilities to join as a test engineer :) Suffice to say I failed. I build test frameworks, manage test network infrastructure, and deploy CI/CD pipelines (and think I'm pretty good at it). I just really suck at leetcode.
Edit: In fact thinking back, they even sent me tips on how to improve my leetcode skills in preparation for the interview! The whole process was completely guided by it.
Completely not my experience. All the questions I got were word-for-word Leetcode problems. At least Amazon goes through the trouble of disguising them as "Amazon Deliver Trucks going from house to house" instead of "an array of numbers"
Huh, I had an interview at Meta a few months back (which I backed out of) and the (very nice) interviewing prep instructions they provide very clearly stated you should be able to do leet code style questions, preferably two mediums, in an hour. Their interview process felt very organized and prepared overall, although I backed out before actually interviewing with folks.
Good to hear that it's changed if they're not. When I interviewed with Facebook, they asked a leetcode problem, had me come back into the office for a second one because I got strong feedback from all the other sessions, then rejected me with a suggestion that I should come back in 6 months when I'm better at tree traversals.
Um, when I interviewed, there were two leetcode problems administered by junior engineers to me. A recruiter contacted me recently about a role and I asked if they still ask leetcode questions... got crickets in response.
I previously worked at Facebook/Instagram for ~10 years and conducted over 1800 interviews (got the t-shirts and hoodie to prove it). leetcode style problems are at the core of the "ninja" interviews. In fact, a lot of leetcode problems are sourced from what Facebook asked before leetcode even existed.
That being said, guidance is to ask 2 medium difficulty questions as opposed to 1 hard one.
Maybe? 2020 for me. The first wave had me write code to solve a problem.... pretty far from Amazon's rebranded HackerRank/Leetcode nonsense. I was talking to a human being the entire time. They were great about making me feel like they WANTED me to succeed. Next round was more conversational/System Design stuff.
I think you're confused, when people say "they ask leetcode questions" they don't mean they do automated tests
The questions the human is asking you come from a big question bank and a lot of it is listed on LeetCode under the meta company tag because people leak them.
People use Leetcode to practice for those interviews, they don't use the leetcode site in the interview
We're switching ACH to Dwolla since it's far cheaper. The 1.25% for the new ACH 2.0 for faster payouts (which we require) is outrageously priced. It basically cut our revenue in half overnight once we got out of the beta for it.
My previous company had thousands of lambda functions and api gateway integrations and near impossible to do anything with confidence when you starting integrating with all the other cloud offerings. My current environment is similar scale, but all containers it's night and day difference when it comes to confidence. We can move 100x faster when you can reproduce environments locally or separate account in seconds or minutes with everything baked in. I don't think I could move back, but hey at least this might eliminate a few API Gateway integrations.
My work is heavy serverless and nobody I work with has had any luck with Localstack, myself included. It's just too limited, fragile, and buggy to work for anything we do. Our stack isn't anything particularly unusual either, it's just that if you are using Lambdas heavily they are probably tied in with a whole bunch of other AWS services in ways that are hard to replicate locally; and Localstack just isn't up to the task.
While there are some nice benefits to serverless workloads on AWS, local development and reproing production bugs are major weak points.
SAM local isn't a perfect emulation of the cloud based lambda environment. This is why AWS SAM added the "Accelerate" feature, making it easier to deploy code to the cloud for testing purposes.
It's alright, but continued to find bugs and edges cases with it. The challenge is when there are a bunch of integrations cross-accounts, eventbridge, cloudwatch, etc. that you just can't emulate well locally. Or once you do, it doesn't work a month from now because things change (e.g. a developer is using a new feature that isn't supported by localstack or something). In container land, you don't have to worry about these cloud integrations. You just spin up the services you want in a docker compose file, k8s deployments, helm charts, etc. and you basically have everything without having to worry about being a AWS specific blackbelt guru expert.
You just have to be a Kubernetes black belt guru expert. It is better but it’s not all rainbows and butterflies on this side of the fence either. Generally it boils down to the stack taking way too many resources to run locally, or still needing access to various persistent data stores, etc..
You don't have to run kubernetes for containers, but even then, only 4 of our engineers know and operate kubernetes. It allows us to enforce routing, authn, and authz standards everywhere (and test locally). Application engineers only need a simple command to run their stack and some code templates to build and test applications. Not much knowledge is typically needed on their part. Is it always perfect? No, but it's a lot simpler then wiring up a bunch of vendor specific offerings.
I use https://github.com/rimutaka/lambda-debug-proxy to run Lambdas locally while still being part of the AWS pipeline. It eliminates the need to emulate the input/output. That tool is for Rust only, but there is no reason why it can't be ported to other languages.