Earlier quoted context omitted.
I give them a chance to judge their own skillset. After looking at their resume, I have an idea based on the projects they take credit for, what their experience level should be. If what they state lines up with their resume, and they are unable to answer a simple question, with multiple hints and help, then I absolutely assume they are a liar (edit: or delusional, which is even worse. An expectation I have of senior…
How do you know that you're not just crap at interviewing? Assuming people are lying is both extreme and presumptuous, no? Also, are your people actually reversing strings by hand every day? I sure hope not!
Microsoft changed how it interviews software developers
181–190 of 348 posts
Re: Microsoft changed how it interviews software developers
#182Earlier quoted context omitted.
Though I just realized "regex parser" can mean either "parsing some text using regex" or "code that compiles regex syntax into some kind of data structure but does not actually do anything else". The latter obviously is a much easier task.
The question was: Write a method that can take in a regex and a string and return whether the string matches it, with the regex limited to the characters . * ? (And backtracking is definitely where I started coming unstuck)
The minimum length will be the number of dots without a quantifier (i.e. exactly one character). If there is any dot followed by an asterisk, there is no maximum length. Otherwise, the maximum length will be the minimum length plus the number of dots followed by a question mark.
Writing the code for this is left as an exercise to the reader. ;)
Re: Microsoft changed how it interviews software developers
#183Earlier quoted context omitted.
I give them a chance to judge their own skillset. After looking at their resume, I have an idea based on the projects they take credit for, what their experience level should be. If what they state lines up with their resume, and they are unable to answer a simple question, with multiple hints and help, then I absolutely assume they are a liar (edit: or delusional, which is even worse. An expectation I have of senior…
How do you know that you're not just crap at interviewing? Assuming people are lying is both extreme and presumptuous, no? Also, are your people actually reversing strings by hand every day? I sure hope not!
Re: Microsoft changed how it interviews software developers
#184Earlier quoted context omitted.
It's the start of the coding interview. It moves on from there. This candidate didn't even ask if he could use Apache commons, and I hadn't yet specified that he couldn't use a 3rd party library. So yes. He failed on many counts. 1) not asking clarifying questions 2) not being familiar with some well-known libraries 3) not being able to implement a basic reverse string 4) not being able to explain whether or not a si…
How many times in your job did you have to implement reversing a string without calling a library?
usize len = strlen(foo);
char* bar = malloc(len);
for (int i = 0; i
and explain why that won't work for unicode strings, I imagine, would pass that particular fizzbuzz test. Bonus points for pointing out the null byte off by one error.The only competent programmers I can think of that wouldn't be able to come up with that off the top off my head work in embedded or FPGAs where strings are rarely relevant.
Re: Microsoft changed how it interviews software developers
#185Earlier quoted context omitted.
Why make it a trivia game? Explaining the basics of how modulus SHOULD work is a fairly generic concept that is trivial for a lot of coders to describe, but impossible for non-coders. It's an ice-breaker.
Hmm, everytime I use modulus I need to double check whether it returns the number of times wholly divisible or the remainder. I'm thinking the former without checking now. Meanwhile, my last project has been to set up an entirely self hosted CI/CD pipeline using digital ocean, docker, jenkins, gitea, and docker registry to make changes to my websites I build with erlang, react, html and sass, so I _think_ I can creat…
They actually take the opposite approach. Supposedly there is compelling research that low-performing members of a team provide large negative contribution to team performance from knock-on effects of their low standards and low quality work. Google has consequentially structured their interview process to minimize false positives rather than false negatives so as to minimize firings and the associated psychological stress caused by working in an environment in which people are regularly fired.
Re: Microsoft changed how it interviews software developers
#186Earlier quoted context omitted.
You clearly don’t work in the industry. Edit: I see from your other post you haven’t interviewed since 1999. Sounds about right. The hiring process does not work how you think it should.
Not true. I've interviewed for and landed several nice gigs since then. But as I said in that other post, always skipping the tech screen piece. From talking with other devs in my peer group, this doesn't seem uncommon.
Re: Microsoft changed how it interviews software developers
#187Earlier quoted context omitted.
The sad part is that the generic generalist interview will have nothing to do with X, and if you need someone great at X-ing, might yield painful false negatives or even worse, false positives (since you can’t hire specifically for X).
I would argue that if you’re in a position to be picky you would want to hire experts in X who are also good generalists. One-trick ponies don’t do well after project X is finished and they need to contribute to other efforts.
Re: Microsoft changed how it interviews software developers
#188Earlier quoted context omitted.
I've interviewed and been interviewing for over a decade. I have had the displeasure of interviewing many people who have very impressive resumes yet when asked how they would judge their skillset in an area, and being told from them that they would say "expert", being shown exactly the opposite when it came time to answer some questions in that area. One data point... Senior engineer that founded the local java user…
I have very little experience with interviewing candidates, but how can you be certain these people were liars? Maybe they simply were having a bad day, or got too much in their head with stress during the interview. There are many factors at play when it comes to a bad performance and it's not always simply that the engineer doesn't know the answer.
Re: Microsoft changed how it interviews software developers
#189Great, 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.…
I've interviewed and been interviewing for over a decade. I have had the displeasure of interviewing many people who have very impressive resumes yet when asked how they would judge their skillset in an area, and being told from them that they would say "expert", being shown exactly the opposite when it came time to answer some questions in that area. One data point... Senior engineer that founded the local java user…
Really, it's not fizz buzz or string reversal that causes people to re-study for their algorithms and data structures exam before an interview.
In many ways, I think this is similar to requiring that senior actuaries re-study integration by parts prior to every interview. They don't have to, because they have a proper exam that is widely accepted in their field. We don't. So instead, we are taken through full day whiteboard exams, under conditions of great secrecy, over and over, every time we interview.
Re: Microsoft changed how it interviews software developers
#190Earlier quoted context omitted.
If you're interviewing for some core, low level algorithm development then fair enough but I suspect if that's the case you could come up with something a little closer to the real life domain. It's not that I think the question is too complicated, just not the best marker. In my mind, more relevant questions are ones that demonstrate real life experience in the field. For example, populating a tree of objects in a h…
I asked a candidate to implement an algorithm that reverses a string. I don't see that as a complicated problem. It's literally a for loop, and based on how they choose to implement it you can ask about implications of append vs. prepend, etc. I didn't ask them to implement dijkstra's algorithm, or even something as "hard" as breadth-first or depth-first search (which I feel any senior that deals with trees should be…
As for the interview itself, well I've never needed to ask someone to reverse a string to determine if they're going to be of value with the criteria mentioned above.
But to be fair I've never worked on a project where implementing StringUtils.reverse() was required. If I were interviewing someone to work on Apache Commons or the JDK then I suppose that would be a relevant question.