Well, apart from the fighting and that young woman who was bayoneted while carrying her infant sister.
I’m not here to carry water for the asshat truckers, and I don’t understand the Canadian constitution or legal system, but the Oka Crisis was resolved with enough brutality for at least one crow pie.
yeah, this is a hot take that would be rejected by the great majority of Europeans. The only country to join the EU and then leave now regrets doing so. Incidentally, their economy is on fire - not the good kind, they still have lying liars who lie trying to push them into leaving the ECJ (not an EU institution, but certainly a surrender of some national authority for, you know, accountability).
I don't know if you live in the EU. I do, and I like it lots.
I have also lived in the UK during the Brexit campaign, and was exposed to such a shower of self-seeking arseholes - some of whom still apparently wish to take from others, but grant themselves exemptions - will I hope remain a unique experience in my life.
Yes, yes, the EU has no end of fuckery. Yes, it's true. But better that, than bend the knee to the US, or Russia (UK, Hungary. Delete as appropriate.)
I’m reasonably certain that I interviewed someone using this or something like it in the last few days.
Lots of eye scanning while looking above the window they’d been typing into. Pauses. Big pastes. One of my excellent colleagues noticed that the candidate made use of exciting C++ casts before ever defining the variable’s types. Complete inability to explain or debug the code just written.
So. Frustrating in two dimensions. First a waste of time for everyone. Second, occasional signs of real ability make me think the candidate might’ve made it work honestly. The fool.
This, and this alone, makes me pine for in-person interviews. But I suspect those won’t be back for some time. (For good reasons that are out of scope here.)
It sounds like you want sympathy but it just shows that some people just don't understand the power dynamics of an interview.
I believe live coding is a scourge and we should get rid of it altogether.
Get a tiny open ended project, which requires more design/architecture skills than actually finishing the solution. You do it at your own time and shouldn't take more than 1-2h. You submit it and provide your mental process in writing.
We then hop on a call and we can dicuss it further, talking about possible issues and what to do to get it released if a requirement changed last minute.
If you can do that, come across amicable, knowledgeable and experienced enough given the seniority of the role, and feel like you are not reading from an hidden ai window then you pass.
"Exciting casts" are absolutely worthless in real life, everyone has to balance shipping vs code artistry.
> I believe live coding is a scourge and we should get rid of it altogether.
I would take an hour of live coding any time over a take-home task that is one hour only on paper and takes you three in reality.
Engineering is collaboration, and it's fair to expect candidates to talk, solve problems, and explain their solutions.
Where we could do better as an industry is the type of problems we give to people. I'm not a fan of LeetCode-style questions, especially when multiple ones are asked. Something closer to Earth would be better. But even if you have to ask something algorithmical, I'd prefer the style of "Advent of Code" exercises where the same problem has variations and multiple levels of complexity.
> But even if you have to ask something algorithmical, I'd prefer the style of "Advent of Code" exercises where the same problem has variations and multiple levels of complexity.
It only takes you three hours if you don't pay someone else to write it for you and provide you with a written brief about how it works, which is what I suspect some candidates must do.
> Get a tiny open ended project, which requires more design/architecture skills than actually finishing the solution. You do it at your own time and shouldn't take more than 1-2h. You submit it and provide your mental process in writing.
I used to really like the idea of take homes, then I had kids and discovered just how hard it is to find time to do these (particularly for multiple applications while working).
Don't get me wrong, I think that they're generally a better test for the actual role, but they're not perfect, and they're game-able by spending way more time on them.
Interviewing is hard. Like, ideally, we'd just centralise the administration of these tests and you'd do a few every year (so formal CPD rather than an expectation that people do it in their off time) but that is never gonna happen in the tech industry for various good and bad reasons.
Your comment is excessively dismissive. The irony is that parent actually did what you’re suggesting, tried to talk about the interviewee’s solution and found that they didn’t come across as knowledgeable and experienced enough even though their code suggested otherwise. Whether it’s live coding or take-home is mostly irrelevant.
Your proposed alternative is absolutely subject to the same problem, AI-written code and LLM-written mental process. Think more carefully about whether it solves anything and exactly what problem it solves, because it does not solve the problem of people trying to game interviews with AI, your suggestion is potentially worse on that axis. The whole point of doing it live is to get to the talking part that you suggested more quickly.
Wouldn’t you rather be discussing your thinking immediately and get a sense for what the real questions are and how you’re doing, and have the opportunity to talk about it, than waste several hours doing it at home trying to write something up without getting clues along the way or being able to ask questions, only to have the next guy get hired because they used AI, or because they’re fine with live coding, or because they’re better at writing than coding, or because they got lucky?
You have to live code on the job. Do take a moment to consider what the hiring manager needs and whether take-home problems are either more effective or more efficient for the company. Managers want to find the best candidates, and best involves more than coding, it involves communication and collaboration skills too. Live coding can give some indicators of those things, and take-home problems cannot.
The core issue here is the sheer volume of applicants. Microsoft opened 30 new-grad software engineering positions. Care to guess how many applications they got within 24 hours? 1,000? 10,000?
Nope.
100,000 applications. In under a single day.
With that kind of applicant pool, I’m honestly not sure what the best approach is—even though, in a perfect world, your suggestion would be the more appropriate route. The reality, however, is that these numbers are just absurd.
That, to some degree, is guaranteed to happen naturally. But why not use a sieve approach and narrow the pool exponentially using a range of tools that goes from automatic and instantaneous at the start to manual and time-intensive interviews at the end? The potential upside for a company is relatively large - with a small amount of work they have the opportunity to get the approximately best 30 people out of 100k graduating students. From the company’s perspective, this isn’t a problem at all, it’s a massive windfall of an opportunity. They can afford to optimize it, and they’re motivated to. As a hiring manager or company founder, I’d love to have this “problem”.
That said, your comment reminds me of a Monte Carlo algorithm I think I’ve heard about. There is a way to have some statistical confidence in getting the top K out of a sample of N without examining all N samples. I’m blanking on what it’s called, and I think it’s related to Reservoir Sampling. I don’t know if I read this or am making it up, but my instinct is that you can get to high levels of confidence after looking at sqrt(N) samples.
Say you want to take 10% at each round. You have to do this three times to get 100 people, and then another round to get the top 30.
If you tighten the criterion, noise matters more, so you will drop your actual best candidates, since people need a high skill+noise. But if you try to keep the unlucky "good" candidates by having a wider band, you pay more.
Also, if you are successful at finding the best candidates in a batch, noise matters even more the next round.
I've been thinking about how to vizualize this. I have it in my mind and I'll try to describe it.
You plot a bunch of points with S, N for each candidate. They are independent, so a scatter plot looks like a 2D gaussian. Lets say skill is vertical, and noise is horizontal.
You want to find the 30 highest points, but you aren't allowed to just look on the scatter plot and select the top points. You have to draw a line S + N = c, and choose the person with the highest c. Basically sliding a ruler out that crosses the S and N axes as far away from the origin as possible.
Observation: if N is high (wider distribution) compared to S, you just get the luckiest people. If S is high compared to N, you just get the most skillful.
Noise is a reality and a potential problem in ranking candidates for sure, 100%. Of course it’s worse than just measurement noise; the noise in hiring is subjective and situational and human. The sampling method doesn’t fix it, using the Secretary Problem approach doesn’t give you less noise, it gives you more noise in the result. The benefit of stopping early is that it reduces the cost of sampling, but if the company doesn’t care about the cost of sampling, there is no “problem” there to solve.
If you want to reduce noise, the way to do it is to have more independent measurements (interviewers), not to stop interviewing early.
The good news is that there’s no such actual thing as “best” in this situation and people have many dimensions, they can’t be ranked perfectly, but they can still be ranked approximately. We also don’t need to get the exact 30 people out of 100k people with infinite precision, we will get an amazing set if we can take a random sample of the top 1000 candidates out of 100k candidates. Having 100k candidates gives us the opportunity to end up with a selection from the top 1%, say, whereas if the number of applications was 40 people for 30 jobs, you might be stuck accepting people who are below average.
I don't see how your method works better than a sieve with noise.
Instead of a "noisy" sieve, you're just using the time of application as your sieve. Which, unless your job opening values the skill of submitting lightning fast job applications, is pretty much 100% random noise.
You say a sieve approach drops the best candidates. Your approach also drops the best candidates.
And if the bar is actually so high that only the best candidate(s) qualify for the job, then your approach would imply you interview an expected half of the applicants before you fill the positions.
It's pretty obvious a "noisy" sieve (with some signal) is better than sieving by application time or sorting by arbitrary order and taking the top N applications. You don't have a magical solution. The people handling those 100000 applications are not that stupid.
The difference is that you don't need to wait for 100k people to show up.
If you're already reasonably confident from the first batch of people what the potential in the pool is, why would you wait? People have work to do and they want those people in as early as possible.
I'm not saying you will do much better sieving by time, in terms of quality. But you will save all the effort of looking at the people at the back of the queue, for little loss.
Sure, half the best people will be at the back, but what is your loss on taking the second best people earlier? Chances are you won't even be able to tell.
If the problem is having to wait for applicants, then you’re right; stopping early will help. In my experience, companies already do what you’re suggesting simply by having a deadline or time window for filling a job. Even if a lot of companies would love it, most job posts don’t get over three thousand applicants per seat available.
In this particular case, MS didn’t have to wait for people to show up, they got 100k candidates before they could have even made a decision on a small subset. And in general, the problem being discussed in this thread isn’t having to wait, it’s how to deal the flood of applications coming in too fast.
* huge edit to this comment after this rattled around my head a little more: actually, duh, sieve and early stopping are completely orthogonal, this is not an either-or situation, and you are probably assuming a sieve in your proposed approach. You can sieve 1 candidate at a time, since it’s a series of criteria ranked in order of how much time each one takes to evaluate. If someone doesn’t meet minimum requirements, they’re rejected quickly and not invited to interview. If you’re going to stop early but you have a lot of candidates to evaluate, then you still have to sieve. Like, I’m pretty sure you’re not proposing to conduct 37,000 interviews for 100k candidates, right? Even if we stop before looking at all candidates, each candidate will have some early criteria used to cull them, and only the ones that pass all the early criteria are invited for an interview. That’s true whether or not we stop early. The sieve is a given and unavoidable. The only question is whether to stop early, which we would only do if it solves a problem. We can, if we want, interview the same number of candidates either way. The sieve allows you to look at all candidates efficiently, but does not require it. If you do look at all candidates, then the more people in the top of the sieve, the statistically better the final interview pool will be. Stopping early is valuable only if the applications process is slow (which is not the case here) or if the early criteria take significant time to evaluate.
A standardized test is considerably more standardized than a leetcode interview though. Not to mention you take it once and then provide the scores to everyone. My process with taking the cpa exam a single time was a much better experience than random leetcode problems every time.
I did that for my previous job and I loved it. Had plenty of time to get over my nerves and then build something cool. And then brag about my choices in writing.
Absolutely not. In my standard intro material I explicitly say otherwise, tell them that actual work involves checking external references, and that I want the interview to be as near to a collaborative experience as it can be in the odd circumstances.
I also tell them that they should tell me when they're checking external resources (the CPP reference is what I mostly have in mind, but StackOverflow or whatever is fine with me) so that I understand how they go about solving problems. Because that's the actual important bit. All the coding and the questioning is a proxy for that.
I would be amazed if the basic accusation is false. Similarly I would be amazed if the US isn’t already doing this. I am fairly certain I knew someone who was actively involved in doing this in the Uk ten years ago. Why do you think otherwise?
Asymmetrical relationships are baked into employment. Indeed, that’s the very basis of the idea. Labour laws, unions etc came into existence to change that balance of power. Without them, no paid holiday, no proper weekend, no pension. All of these things reduce productivity.
The purpose of our lives is not productivity. (I have no idea what it might be, but that’s a different thread)
Look, I lead very comfortable life compared to most. Many of the people here are like me, and I dare say, you. But we’re a blip in history. And most of that history hasn’t been particularly kind to people who weren’t born to wealth. I wish more folks internalised that lesson.
> Asymmetrical relationships are baked into employment.
If you have ever employed people (I have), it'd be clear that isn't true. You have no actual power over them. You cannot make them come to work. You cannot make them do anything at all. They can get up and leave at any moment, and you can do nothing.
You know who can do that? The military. If you don't follow orders, into the brig you go. They can even execute you.
> The purpose of our lives is not productivity.
Productivity gives us the amazing high standard of living we enjoy today.
> most of that history hasn’t been particularly kind to people who weren’t born to wealth
Freedom produced prosperity which changed all that for the better. Freedom is the greatest human invention ever.
An employer is not the parent of the employees. It's a transaction - trading labor for money. Just like you buying donuts at the store. If you buy donuts from them daily, should you be forced to continue buying donuts from them? Of course not.
Have you ever hired a service to mow your lawn? When you're unhappy with them, do you cease the relationship? Or do you now owe them your continuing business?
Here’s another thought experiment. We have ample evidence that the death penalty hasn’t made America safe from murder. But we don’t know if it has deterrence value for lesser crimes.
I propose death by hanging for repeat littering and speeding near a school. I bet that’d be effective.