In my experience the higher quality non-FAANG firms who aren't wildly popular places to work and also need to turn a profit to survive tend to be more appreciative of qualified applicants and waste less time getting them started
Both are signs of companies that treat employees as ammunition rather than assets.
There is https://github.com/poteto/hiring-without-whiteboards , but there aren't many larger companies on the list
Companies that have high standards are far more interesting places to work at and with more interesting colleagues. They all require whiteboards and leet code.
It's definitely true that not all companies that use these algorithm interviews are worth working for. But, at least in my experience, companies that don't require them at all are pretty awful places to work. It demonstrates that management doesn't care who they hire.
Without exception the companies that weighted academic algorithm skills over practical architecture skill and implementation experience had some of the most confident and brazen mistakes in security or scalability and some of the poorest work-life balance.
I understand most people will say "this is too much work". The problem is that it is all too easy for someone to say "in my experience, X is correlated with Y" ... but that isn't very believable if the observer didn't even write things down.
I don't like asking for everything to be quantified, but it does seem in this case you probably have the data in your head and just need a nudge to write it down.
But it was his comment you chose to "suggest he show the work".
Also, I didn't say it didn't apply. I'm not a perfectly consistent machine you know.
The industry is at a point where there are plenty of clueless cookie cutter companies cargo culting Leetcode just because those interesting companies engage in it.
As far as interesting companies that don't require that, there's at least Stripe, famously, and surely more from this list:
> Programming/debugging phone screen + on site with your own laptop/setup and full access to internet, systems design discussion and talk with hiring manager about team alignment.
That seems to me to be a technical interview. I'm not sure what makes this different from a Facebook or Google.
I have quite high standards when I hire, which is why I don't use leetcode to assess. :)
I can get much better data more quickly without it. And, indeed, the best places I've ever worked with the smartest people I've ever known have not used these types of problems in the interview.
I've personally solved hundreds of them for the problem-solving challenge, but it's a horrible way to determine if someone is a good fit for a job. It's like interviewing a mechanic for your auto shop by seeing how well they can change a tire using only a screwdriver.
How would you go about checking if somebody is qualified in an interview?
Using his past experience may help but too often it can be embellished or flat out lied about. That's why these algorithm interviews became popular in the first place, to my knowledge.
It depends on the job, but for coding I've had great luck asking them to bring some code they were proud of in to the interview. Language doesn't matter, subject doesn't matter.
And then in the interview I ask them to teach me how it works. It becomes apparent in no time if they don't know what they're doing (or stole it). And if they can tell me about it, I learn how well they understand their own system--do they only understand it well enough to code it, or do they understand it well enough to teach it? I also learn if they're a good communicator. And if they're a good culture fit. And if they're enthusiastic about coding. I can also ask probing questions about design decisions and shortcomings.
That covers the "how well do they code" part, but falls a little short on the problem-solving part. But I can come up with on-the-fly questions (often about the code they brought in) that exercise those muscles. "What would you do if this data weren't available?" "What if you needed more guaranteed uptime?" "What if you needed to process 1000x more data in the same timeframe?" These are more relevant questions.
I'm after someone who learns fast. I'll take someone who knows a little and learns fast over someone who knows a lot and learns slow 9/10 times.
(Once I had someone bring in a device driver written in C for a JavaScript gig. They were hired. Another time we hired a dev with zero experience in the platform, language, or framework. Worked out great.)
If they ace leetcode-style challenges, I know they're good at _that_, but I don't trust it as a proxy for the other things I want to know, above.
The parent commenter wasn't saying we shouldn't have "high standards"; just that filtering for maximal prowess at leet code grinding does not serve as a useful instance of such, in their book.
Further, this distinction seems basically quite obvious -- there's no other way to read their text, actually.
Other industries don’t hire this way for anyone but fresh grads, and most don’t even do this for them.
Same thing happened in March 2020, when investors panicked over COVID-19 and flew to US treasuries. Stocks went down, crypto went through the floor.
I wish it were the same as March 2020. You had a big drop and then almost an immediate reversal that lead to an explosive bull run to many new all-time-highs until April 2021.
Instead this time it's had the big drop and been very anemic for months since, with no clear end in sight. Could easily drop more. Starting to look more and more like the two year crypto winter back in 2014. Course if I was buying a coin a month that entire time it was $200 a coin I would have been retired by now. Or at least semi-retired.
Looking back, it would appear I got lucky since we all know new blood is the first to be dropped come a downturn. Well, maybe potentially not lucky since I recently jumped ship anyway, but it is not crypto or startup so risk level is lower.
To your point, I agree. As an applicant, I would be really aggravated if I passed on an offer, because I received and accepted offer from another place ( and that another placed rescinded offer afterwards ). Can I assume there will be some lawsuits over this ( in that case there seems to be an incurred loss )?
So let me get this straight: now, we're not allowed to ask people if they can perform an __essential function of the job__, without being labeled "inhumane" ?
You interview for sanitation work, I want to know that you can sling a heavy bag of hot garbage.
You interview for SWE, I want to know that you can throw a sling a heavy bag of hot garbage!!!
I think there's a simple solution to the problem of algorithm testing and Leetcode problems in hiring: every company should run their hiring technical test on their current staff, at random, on a regular basis. If the current staff can pass then the test is a valid one. If they can't then it isn't, and they should update it to be a more realistic task that the current staff can do.
A healthy way would be bringing your current talent pool up to a higher level through training, even if that's maths (if that's what your current problem is).
An unhealthy way is introducing a bunch of new talent that is tested on one niche domain of software engineering and pretending everyone needs to do that while also trying to improve fundamental skills that help them with their day to day job.
- you've got people working crazy hours and learned on the job. Are they supposed to spend extra time on this stuff when they're barely keeping up?
- the existing people have developed all sorts of niche skills of their own. I'm not trying the new folks on that stuff because... we don't need more of it right now.
All I suggested is using the team's existing skillset as the measure to hire new people for the team, rather than some sort of arbitrary test that doesn't reflect the work they do.
“we need someone who can help us write our yet another SaaS CRUD app using an MVC framework. But to get the job you have to reverse a binary tree while riding a unicycle on a tightrope juggling bowling balls. We also offer below average pay and make up the difference in statistically worthless ‘equity’ and only want 10x developers who are willing to work for 60 hours a week”
If you really need to hire someone you can't assess internally then you should seek help with hiring them. This is one reason why networking and mentors are so helpful. Other people can help with this sort of problem.
I didn't get the job.
Me: “This is a domain I’m familiar with because I spent 9 years working in the bill payment industry. Here all of the corner cases you have to deal with. You’re much better off using these USPS certified CASS solutions instead of writing it internally for these reasons and went on to explain all of the drawbacks of writing software that didn’t give you a competitive advantage.”
The middle level developer interviewing me wasn’t impressed. The director was and I got the job and soon became the lead.
Please tell me of companies which ask about essential functions of the job? That's become infinitesmially rare.
Instead, interview are about memorizing algorithms and perfecting a theatrical delivery where you pretend to discover the fruits of years of research in 45 minutes.
In order words, things you will never ever do in the actual day to day job after getting hired.
But DS&A style interviews don’t come anywhere near testing the type of work that most developers will be doing day to day in 2022.
If someone has code samples, years of experience building things and can make it clear to companies that they can do the job, I don’t see the problem.
It’s a two way street about finding a good fit, I think a lot of employers don’t see it that way. Maybe they should.
I’m making in the $200s now. But I found a job at $BigTech that was permanently remote.
They needn't get furious. They need to get a lawyer.
Stranger here. Just want to suggest that getting furious over things outside of your control, or the world not being as you would like it to be, is optional.
If you don't like being enraged, you can quit that pattern with some practice in learning to notice your emotions as they come and go, and then learning to interrupt the chain of events that leads to the state of being furious and brooding.
Yet a lot of people get angry easily, and being an easily-triggered person works against a person's life. No one wants to constantly have to walk on eggshells around another person in order to be their friend, partner, child, etc.
Personally, I don't enjoy the emotion of being angry. If you do, more power to you.
Getting angry is optional. With some practice (largely, mindfulness) people can learn to notice their emotions and not become strongly identified with whatever is happening in the moment, and choose to do something more productive than simply stewing or ruminating in the unfairness of life.
Thanks for engaging.
no one cares
I've been interviewing for the past month and I made a rule that I won't be doing any algorithm interviews. I didn't have time to study; some friends questioned whether this was a good idea or not. I ended up submitting code samples when recruiters or managers would try to go through that kind of phone screening. Not only am I interviewing at better quality firms, but it's not nearly as stressful.
Anecdotally there is a high correlation between firms that tell me they're freezing hiring, etc and algorithm interviews.