24 ms·
Microsoft changed how it interviews software developers
- drharby 8y agoWas the clickbait title part of your plan? [ edit ] I am interpreting the amazingly rapid swarm of downvotes in response to a valid critique of a poorly drafted clickbait title which HAS SINCE BEEN EDITED to be due to a concerted campaign of paid advertisers, not probono janitorial effort of an impartial-ish tech community. Community management is important people.
- dang 8y agoYes, community management is important. I think the downvotes/flags were because your comment was unsubstantive and snarky. We're trying for better than that here. Would you mind reviewing https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html and following the rules when posting here? Also, please don't post insinuations of astroturfing or similar abuse like this. That's also in the site guidelines. We're happy to investigate if you're worried about abuse, but the thing to do in that case is email us at hn@ycombinator.com, not take a thread further off topic and/or into flamewar.
- sxp 8y agohttps://blog.usejournal.com/rethinking-how-we-interview-in-microsofts-developer-division-8f404cfd075a https://blog.usejournal.com/rethinking-how-we-interview-in-m... is the original post by a PM at Microsoft. It doesn't have any useful information about a pure technical interview for software engineering. >(Note: I started at Microsoft when we were still asking questions about why manhole covers were round, how many ping pong balls would fill a 747, and how to reverse a linked list. In 20 years here, I’ve yet to have to write the code to reverse a linked list (copy-paste anyone?) or fill a 747 with any kind of ball.) The manhole cover question is actually a valid industrial design or UX question even if it's not appropriate to ask for software interviews. The linked-list question is the equivalent of Fizzbuzz for data structures. And the 747 question is a valid Fermi problem. The exact number doesn't matter but the steps required to estimate the answer are similar to other estimation problems when mapping out a business strategy and trying to determine if it's profitable. Or maybe the company is interested in salvaging sunken planes: https://www.iusmentis.com/patents/priorart/donaldduck/ https://www.iusmentis.com/patents/priorart/donaldduck/
- akhilcacharya 8y agoI've interviewed at MS a couple of times and I've never had a question as easy as "reverse a linked list".
- WrtCdEvrydy 8y agoIsn't the round manhole covers just to make sure they can't fall in?
- Retric 8y agoIt’s actually several things. It’s stronger, cheaper, rolls, lighter, no need for alignment etc. You can make sure any shape does not fall in, but strength to weight ratio is important as you want people to open them with hand tools while supporting dump trucks. PS: At ~250 lb you can see why a less optimal shape might be a problem.
- m0zg 8y agoIt's also utterly irrelevant to the software engineering profession.
- deleted 8y ago[deleted]
- twodave 8y agoLess raw materials to produce, easier to transport by rolling, easier to place onto the manhole, easier to stack when transporting/storing in bulk, etc
- JustSomeNobody 8y agoFlies like a frisbee when Superman throws it...
- werkjohann 8y agoOr better - Elastigirl! https://twitter.com/SamuelGavin/status/1008636415524171776 https://twitter.com/SamuelGavin/status/1008636415524171776
- revskill 8y agoThe quality of interview depends on quality of questions. A qualified question is one which has many solutions, then the interviewee could pick the best solution on his own.
- JustSomeNobody 8y ago> But the aha moment for me was that not everyone does well in those fast-paced brainstorming sessions. A lot of people (including me) prefer to sit with a cup of coffee and some data and try to think things through. This is me. Hard to get that across in an interview, but once people work with me, they're cool with me coming back an hour later in an email with some thoughts on the last meeting topic. They know and respect that that's the way I work[0]. [0] I'm not the only one on the team who does this, so that helps.
- lilott8 8y agoMy life's motto is: "Let me think about it, I'll get back to you."
- ryanar 8y agoThat same nugget was in The Pragmatic Programmer which I recently have been reading. In regards to estimates or questions about things you don't know, if you can't give a good answer on the spot the second best answer is "Let me get back to you.". The bad answer or estimate will just cause pain for your team/org.
- hermitdev 8y agoMy goal when interviewing candidates is to ellicite this response at least once. I want someone who is honest that they don't know the answer and won't bullshit me about it. Also like to hear how the candidate would go about figuring it out, e.g. what resources they would use. I'm also fine with speculative answers as long as they're clearly stated as such, "I dont know, but I think it'd be something along these lines..."
- lilott8 8y agoYeah, in an interview, I would certainly expand on that succinct motto; and attempt to do exactly this. But, as others have suggested, people respond too much instead of just thinking about a problem/issue/comment/etc. from all the angles (this skill was natural for me; but honed during the Ph.D. process.)
- jimbobimbo 8y agoThe original article [1] describes new process in the context of PM interviews, which are different from software developer interview, no matter how technical PM is. The changes that I particularly like are: improvement in coordination between interviewers themselves, and stop sharing feedback between themselves until the very end. The latter really affects how next interviewers view the interviewee. [1] https://blog.usejournal.com/rethinking-how-we-interview-in-microsofts-developer-division-8f404cfd075a https://blog.usejournal.com/rethinking-how-we-interview-in-m...
- JamesBarney 8y agoAfter reading about wisdom of the crowds, we started doing this with estimates. We always break up the project into small tasks together then seperate and estimate them individually. We've found we're a lot more accurate because we don't influence each other, as well as don't go into autopilot on an estimate assuming someone else has it under control, or someone just deferring to the more Sr. Dev when the more Sr. Dev made a mistake. I could see how this would also work well with interviews.
- pbalau 8y agoWell, FB did that at least 6+ months ago when I got trained for interviewing. As for the questions asked, there is an internal tool with various questions you are supposed to ask, with info about what signals you can get, how to extract more info and how to formulate your feedback. I was always told that I need to help the person I'm interviewing solve the problems.
- mancerayder 8y agoGreat, now can Netflix, Google and Facebook do this, too? Not because I want to work in these places, but because they influence everyone else and as a senior engineer in the systems space I feel I shouldn't need to study days or weeks for fizzbuzz sorting algorithms questions that are designed to test comp sci recent grads. I have a proven career, and was never suddenly stumped in a project due to not being able to.. sort letters in some obscure order based on arbitrary rules. How about we look at that, and compare the candidate's past experience to the current needs and interview based on that -- You DID look at the CV before bringing the candidate in, didn't you?
- Swizec 8y agoThis sounds like you're having the wrong conversations. With all your experience, why are you still going into companies through the front door? Where's your network? Fundamentally: Why are you having the "Can you code your way out of a wet paper bag" conversation instead of the "How much value can you add to this company" conversation? Perhaps my experience as a consultant/freelancer is breaking my perspective. It's been several years since I last had a coding interview as an applicant.
- seanmcdirmid 8y agoYou still have to go through a standard interview loop at Google/Facebook/Netflix/etc... even if you get in via a recommendation. The recommendation (and your cv) helps you in getting a serious phone screen and in getting a good choice of the team you want to join, but isn’t considered very much during the interview itself.
- wheaties 8y agoYou shouldn't have to only be able to go through your network to get a job. We should judge based upon the same criteria every other damned job judges ...how well they did their last job.
- chrisweekly 8y ago> "how well they did their last job" Right.... so if you have a mismatched role, that's it, you're done for, huh? Please.
- lawnchair_larry 8y agoI noticed that the two people quoted are both PMs. So does this have any relevance for software engineers?
- DylanDmitri 8y agoYes, these are software engineering interviews. It's the PMs who are designing and refining the process though.
- kettlecorn 8y agoIt seems to me that it should mostly be software engineers designing the software engineering interview process.
- cududa 8y agoAt Microsoft many senior devs eventually go into the PM track (while still actively writing code) because there’s more salary there
- lawnchair_larry 8y agoNo there is not.
- phillipcarter 8y agoNo, this is describing the PM interview process. Source: I’m in this org at the company and have interviewed candidates under this model
- chasing 8y ago> Under the new process, Microsoft shares the interview questions in advance so that candidates can prepare. During the interview itself, a candidate might run through a real scenario or problem the team is trying to solve. LOVE IT. I think best when I have a chance to actually think, not when I’m participating in some odd job interview game show.
- whack 8y agoHere's what they are doing, from the linked blog post: > Our dev teams had taken to working with candidates to solve a bug or feature as part of the interview process. It was a collaborative effort with the candidate and the team working together to solve a real problem. Sounds like a great idea. Except it's so variable. What if you get lucky and you get a easy bug, whereas someone else gets something much harder. Let's standardize that by giving everyone the same task to work on. And what if we want to hire people who aren't fluent in your project's programming language? That would be a big handicap for them. Let's deal with that by having minimally sized "projects" in all the languages, and allowing the candidate to choose their preferred language. And we don't want the interviews to be biased against people who don't already have domain knowledge in a specific field. So let's make the task generic enough to be approachable by any good programmer. Congrats, if you did all of the above, you've reinvented leetcode style interviews. There's some cool stuff that MS has put into practice. I like the focus on reading/understanding existing code, instead of just writing code. I also like the relaxed pacing and "open book" approach. But for the most part, I don't think this is really as revolutionary as people think it is.
- lazyasciiart 8y agoEven just having the interviewer pair with the candidate on random leetcode problems would be pretty revolutionary.
- DerpyBaby123 8y agoWhy do you think so? I know many companies that pair for interviews, Thoughtworks, and Pivotal Labs for example
- lazyasciiart 8y agoI know those two, but they’re definitely outliers in many ways. I’ve never seen it done for a non-consulting company.
- avisser 8y ago> taken to working with candidates to solve a bug or feature as part of the interview process This is unethical. How is this anything other than unpaid labor?
- naasking 8y agoSounds like a good approach. It's nice to see some meaningful progress in interview processes. Kudos to Microsoft.
- TagAsDelusion 8y agothe damage from incompetence has already been done
- sys_64738 8y agoWhen I interviewed at Redmond 15 years ago, it was the recruiter who asked me a bunch of techie questions then decided to bring me out for a whole day of onsite interviews. During that I recall it was only a director of SW who asked me some mentally crushing questions about subtleties in how the Windows kernel fiddles with files. As I said, I was a UNIX developer who didn't know those bottlenecks in the Windows kernel. Still he persisted. He did take me for a spin in his awesome BMW sports car after though! My thoughts on Redmond were that it rains all the time and the inside of the Microsoft buildings is pretty depressing.
- im_cynical 8y agoI've had something similar happen to me once. I'm DevOps, very systems focused. I was leaving Cisco and got on an interview panel with 4 network engineers at some place. I caveated I know networking better than most but I'm by no stretch a network engineer. They agreed and explicitly stated the position was on the systems side and it was fine. The interview was only an hour and half. About 30 minutes into they ran out of questions and started to get bored. They tell they're all studying for their CCIE's and decided to start borrowing questions from the final exam. They decided to play "lets stump the Cisco guy". And did they? YES! Did they stop? NO! This was 7+ years ago and I'll never forget how uncomfortable and bad that interview was. They managed to dredge up all these arcane, stupid questions, some of which bore no practical function.. and listened to me "I dont know" for a solid hour I'm sure it left them with a bad impression of me, and it certainly left me not wanting to work there.
- qls 8y agoGood to see an actual change vs. SWEs that suck at LeetCode-style questions complain about these algorithmic questions... It's ironic considering how MSFT pioneered the original brain teasers/problem solving questions.
- HillaryBriss 8y ago> ... Second, we run through a real problem the team is trying to solve — improving satisfaction, increasing retention, boosting usage of a service or feature. The fact that it’s a real problem that we’re working on helps foster a collaborative conversation. maybe I'm reading too much into this but ... for some reason, none of these questions are highly programming-centric (e.g. implement a sort algorithm, build a B-Tree, or even just implement the singleton pattern in C#, or whatever). all of the questions are human behavior-centric. and I wonder if maybe Microsoft has concluded that the really important challenges are not technical challenges, but marketing ones.
- bagacrap 8y agoI don't think those human-centered metrics can be classified as marketing. Is marketing the business of satisfying customers?
- HillaryBriss 8y agomaybe 'product development' ?
- dietr1ch 8y agoIMO those interviews test whether you are smart "enough" and capable of collaborating to solve a problem. There's not that much knowledge required and good answers tend to be quite succint. Depending on what you do, maybe most of the time interview-like problems won't rise up, but not everyone is ok taking the risk of poor algorithm design on production. While it won't happen that a single engineer will need to do everything without any design or code reviews, if you keep "lowering" the bar you risk breaking the review failsafe. Maybe scaling the review process can enable teams having more engineers working "safely" as the hard problems will still be reviewed by the "elite" engineers those companies try hard to get. I hope this takes some pressure away on pretending to have "real" interviews needlessly. There's too many problems to be solved out there to be overly picky on who can work on them. It would be nice to hear back from MS after they a few years.
- tootahe45 8y agoI wonder the effectiveness of the MS hiring process every time I use a Microsoft product. Teaching interviewees how to test their software locally for at least 10 mins before deploying it to hundreds of millions of people would be huge.
- pavel_lishin 8y ago> He thinks it would be useful to figure out if there ways to either shorten the process entirely, or at least spread it out over multiple days and gives candidates more time to reflect and think. Please don't. I can take one day off work for a full-day interview; I'm not going to burn through four fucking vacation days for you to vacillate over whether or not I'm a "culture fit" or whatever.
- deleted 8y ago[deleted]
- calewis 8y agoAlthough I’m a product person (CPO) I’ve hired (alongside a CTO) maybe 100+ engineers in my time and I’m hoping my perspective is useful/helpful. The process that my CTO and I have found works best is as follows; A 20min phone interview (to screen for BS’ers). A technical test that’s based on the sort of problems they will be solving in their job. How would you do X in language Y, no boiler plate code, and it doesn’t have to be perfect. (So no fizz buzz, conways game of life etc.) We also stipulate to spend no more than 2 hours on it, and if their successful they get that time back. We even offer a discount (on the thing we sell) to unsuccessful people who don’t make it. The test serves as not only a good high level demonstration of ones skils but, more importantly, gives us all something to talk around. It also shows us how they approach key things like testing, deployment, maintainability etc etc. Then there is a 2 hours face to face interview. Ahead of this the test is peer reviewed by the engineering team (or part of it) The interview is made up of one one hour technical section with the CTO/Senior, and one with a designer/product manager. A joint decision is made. Then, if they are successful, we have a probation period where we (the candidate and us) work out if it’s all going as we’d hoped. If not, we part ways. You most likely wouldn’t marry someone before a first date. A job is the same. You both need time to see if you like each other and your profile pics match real life. It’s not perfect, but no system is. Sure we’ve hired a few people we’ve had to let go, but for the most part it’s a great system. We’ve managed to hire not just great engineers but also build a team and culture that fits and works. Hiring is time consuming, hard and at times emotional. There is no shortcut. I’ve interviewed and worked at big tech companies and they all think there is some secret sauce, a magic code to hiring. That is, if you ask super hard questions only the “best” make it through - utter tosh. Some of the most amazing engineers I’ve worked with would fail these type of stupid questions (for a while load of reasons) but quietly write amazing code. Also, and more importantly imo, to be an amazing engineer you need to be great (equally) at teamwork and communication, not just be super book smart. I read a while back (or imagined it?) that MSFT only hired people with Msc’s/PHd’s and that it created a probelem where there wasn’t any intellectual diversity. These tests cause this too. You get cookie cutter people who are smart but often can’t work in teams and can’t communicate well.
- calewis 8y agoI think a dumbest question thread might be quite amusing? I’ll go first, because I’m quite sure I’ll win... This was for a front-end mid weight software engineer position. The candidate was smart and a 100% hire (I’ve since hired him 3x in different companies) Me; “great thanks for your time and we will be in touch later today” Co-interviewer; “I have one more question” Candidate; “sure, go ahead” Co-interviewer; “Imagine your uncle has just died and left you his pizzeria in his will, what would you do?” Me; “what?” Candidate; “what...? Errr... sell it because I’m a software engineer, not a pizza chef”
- suyash 8y agoArticle used incorrect title, the original blog posts describes the interview Microsoft has for technical PM and not software developers. I bet that developer interview hasn't changed much.
- metta2uall 8y agoGood riddance to all those mostly useless brain-teaser questions.. They require countless hours of practice for most people to get good at them - and I find it semi-tragic that many highly intelligent people are wasting their time on that instead of on complex real-world problems (not to mention on learning things that would make them happier and more well-rounded).
- danieltillett 8y agoHas anyone looked at how g loaded these interview quizzes and brain teasers are?
- solatic 8y agoDogfooding their process is going to give them adverse results here: Microsoft is paying them to take all the time they want, but good candidates won't be so willing to spend so much time. Already, they're up to a full day of interviews, which is ridiculous. One of the worst parts of current FAANG interviewing is how long it takes to get to the day of interviews, needing to take off from work to attend the interview day, and then getting rejected nonetheless. Not only does this process ask for too much commitment on the part of candidates, it selects for candidates for whom such a commitment is less relatively costly - i.e. people who are currently unemployed, students, etc, and while there are many such people with great talent and potential, respectively, they're also less likely to be strong candidates than people who are currently employed. One of the key issues in recruiting is how to make hiring decisions quickly. Good candidates don't have the patience for your internal politics to resolve over a month or two to figure out whether they're getting an offer or not; they're just going to interview with other places in the meantime who will beat you to the punch. Take a resume off the pile. Email or text to schedule a call. During the call, talk about relevant experience / past projects, what each side is looking for, etc. Make a decision during the call whether you want to invite the person for a two-hour interview, and schedule it during the call, first offering an evening time slot for the interview. In the first hour, talk about culture, problem-solving and teamwork approaches, engineering attitudes. In the second hour, pull out an actual current problem and solve it collaboratively. If all goes well, send an offer, and offer to set up a dinner to talk about / negotiate the offer. It should not take more than a few hours to make a decision on someone; it should not require a candidate to take paid time off. Your hiring pipeline's average lead time should be measured in days.
- kluyg 8y agoYeah, if only it was all unicorns and rainbows. What you describe is how I imagine they interview for director / VP positions. With hundreds (thousands?) of applications per day for software engineering positions, all with perfect resumes, what you describe just doesn’t scale. Software engineers do 1-2 interviews per week each, it’s part of the job. I might be a minority, but I would refuse to spend two of my evenings per week interviewing people. I’d rather spend time with my family instead. I think asking candidates to get a day off for interviews, which happens like once per year or even less often for each candidate is more reasonable than asking your employees to work evenings each week.
- 29athrowaway 8y agoYou can afford to be selective when you have more candidates than open positions. Also you want to secure the top talent out there.