Live data from Hacker News

I got asked LeetCode questions for a dev-ops systems engineering job today

reddit.com

141–150 of 497 posts

Re: I got asked LeetCode questions for a dev-ops systems engineering job today

#141
What bothers me about all these is how irrelevant they all are to actual day to day programming on a project. Like okay cool you know how to do the Fibonacci exercise. What now?

Do you know how to write SQL queries? Have you ever mapped an ORM to a data store? What about rate limiting an API? Ever had to setup Single Sign On? Have you ever scaled anything from 100 users to 100,000 users? How do you handle job running? Concurrency? How would you debug your server locking up due to 100% CPU usage? Ever configured a dev environment on local with xdebug? Breakpoints? Command line tools? Ever normalized data between multiple third party APIs? What does normalization even mean to you? What about unit testing? Mocking data pre-test and cleaning up after test? How do you make it fast? What's the autoloader? How do you properly setup composer? Tabs or spaces? Why? Windows, OSX, or Linux? Why? Favorite IDE? Why? Are their opinions so strong they can't work with others? On and on it goes.

In the past 6 months at my job I've dealt with all of the above issues and more. I would still probably fail most of the exercise in your Github repo. Mainly because all of them are irrelevant to the actual work and honestly I can't be bothered to sit here and memorize various math algorithms that have quite literally nothing to do with the work.

PHP comes with with 13 different sort functions. None of them test you for how to write a bubble sort. I'd rather a candidate know when to use one over another instead of knowing how to write just one or two of them from scratch. Here's the thing though. I've written bubble sorts before. In college. When learning C & Java. In no way shape or form do I ever practice them or actually remember them at a moments notice. I look them up like a normal person if I ever actually need them.

When I interview a candidate I don't use any of these nonsense exercises. I have one small code exercise at the end which makes use of recursion. The rest of the interview is an open ended series of questions on systems and just basic "shooting the shit" style questions. The nuance of how you answer the questions tells me everything I need to know about a candidate.

On the flip side if I'm the candidate and someone asks me one of these I know they actually suck at interviews and my immediate instinct is to walk out. I try anyway to be polite and not burn any bridges and most of the time I'll come up with a correct solution but again my initial instinct is "I don't actually want to work here anymore".

So what do you do instead? Be creative.

Have fill-in exercises. Write an abstract class and an interface and have them build you a class that implements both.

Write some code with obvious mistakes. Have them fix it.

Build a full from scratch login system. Have a user already in the database with a hash already there. Make them fill in the authenticate function. Watch them not use password_hash and ask them why. Make them use Google.

No exercise should take more then 15 minutes. The majority of the interview should be you digging deeper into their previous roles. Have them tell you success stories or cool hacks they've put together. You'll learn way more about them both as a person and as a developer.

Re: I got asked LeetCode questions for a dev-ops systems engineering job today

#142

When interviewing people I usually push until I get the candidate to answer "I don't know" on SOMETHING, just to see if they can do it. Not everyone can, and a lot of people will happily come up with a technical word salad to hide their perfectly understandable ignorance on some obscure technical problem I just came up with. That way you get to hear how they ask technical questions. Asking questions is a valuable (an…

This will easily pitch you into an adversarial position and give you and your company a black eye. Remember: interviews are bidirectional. If I was pushed to the breaking point like this in your interview, I'd walk out without saying a word. You're only going to be selecting candidates who can handle pressure -- not skill or ability with this.

Interviews are certainly bidirectional - and should be conducted as conversations, not third degree interrogations. I would walk out on that too.

How is being asked something you don't know the answer to being pushed to the breaking point? Do we expect to learn nothing on our jobs?

Re: I got asked LeetCode questions for a dev-ops systems engineering job today

#143

Earlier quoted context omitted.

That's a trick question. Trick questions are bad because they test interviewing skill and not programming skill. It's a trick question because you want the interviewee to answer something different (I don't know) than what you're asking them to answer. Confident applicants might feel up to saying they don't know, but nervous people who are very self conscious in an interview setting may respond completely differently…

It's not quite the same as a trick question (which I agree you should avoid). He's not looking for the interviewee to say "I don't know" to any particular question. The correct answer is a perfectly acceptable answer too. The unacceptable answer is to make up bullshit, which is precisely what he's trying to filter out.

In the process you are pushing the candidate to the breaking point and eliminating any confidence they may have had in their abilities. They will end up demoralized and most likely fail the following interviews if they're the nervous sort. If they're smart, they'll bid you goodbye and you end up with a black eye reputation.

Re: I got asked LeetCode questions for a dev-ops systems engineering job today

#144
post #126

The reason that people still ask algorithmic questions is because they work for avoiding false positives. False positives are a lot more damaging to a company compared to false negatives. While algorithmic questions can get many false negatives, they don't get much false positives. What does it mean for a software developer? Spend a few hours a week doing leetcode questions. They're really not that hard.

> False positives are a lot more damaging to a company compared to false negatives.

This is accepted blindly as dogma in our industry but in my experience it's only the case if the company is dysfunctional and management is too weak to let poor performers go quickly. Being an effective leader means being able to hire and fire quickly. If you're open and honest about it, you don't have to do as much as much intense vetting up front which costs your team's time and filters out potentially great hires.

Re: I got asked LeetCode questions for a dev-ops systems engineering job today

#145
post #126

The reason that people still ask algorithmic questions is because they work for avoiding false positives. False positives are a lot more damaging to a company compared to false negatives. While algorithmic questions can get many false negatives, they don't get much false positives. What does it mean for a software developer? Spend a few hours a week doing leetcode questions. They're really not that hard.

Or the software company can spend a few hours actually building a real interview process instead of making ridiculous interview projects. I have no problem proving that I can code (whiteboarding, pairing, etc), but I refuse to do stupid college-esque programming assignments on my own time unless they're paying me for it.

Re: I got asked LeetCode questions for a dev-ops systems engineering job today

#146

Interviewing people is hard. Most people suck at it. I've interviewed over 100 people in my life, and I've been interviewed about ten times. I know I still suck at it. The code test is one of the more annoying facets of interviews. On the hiring side, it's an efficient way to screen and vet candidates for basic skills. It's relatively low cost to the employer to have a recruiter issue the test. If you come up with yo…

I've had interviews start very positively with such an approach of questions, but then "just to be thorough" I have them code something simple on the whiteboard and they completely fail. Some of them couldn't even get nested for loops to work correctly. If you're hiring someone to write code for you, you need to have them write code in the interview. There's no substitute for it. Obviously, you can improve the experi…

Years ago, I definitely was one of those people who completely bombed a code-on-a-whiteboard problem. It was exactly that - a nested for loop problem. It was one of the first real interviews as I was in a new geographic area and previously I had moved into jobs by being recruited by my professional network. This was before I started specifically studying the patterns used for engineering interviews.

Thing is, I still had a good 3-4 years of professional experience with stellar reviews, some hackathon wins, on top of having coded throughout my entire life prior. But when I was up on that whiteboard, I pretty much froze for that entire segment. Whiteboards are just a different skill and if you don't regularly code on them at work, you better buy one and practice at home because using an editor does _not_ translate to coding on a whiteboard.

I'm glad you mention this: "Obviously, you can improve the experience - let them bring their own laptop and code on it, no problem", because I did better in interviews that followed which allowed for coding in my usual working environment. Heck, I even passed a technical screen before this company brought me on-site where I live-coded some elevator problem they asked me to implement. After bombing the whiteboard, I wouldn't blame them if they thought I had paid someone else to solve the tech screen.

Re: I got asked LeetCode questions for a dev-ops systems engineering job today

#147
post #129

Earlier quoted context omitted.

So far it's worked very well for me. Since I've started using it (admittedly my sample size is small) I've found some very effective programmers, and automatically filtered out a lot of egotistical types. Software is usually a collaborative effort and this technique helps in that regard.

How do you know whether the ones that were filtered out were egotistical?

Largely because they were making things up and changing the subject instead of answering honestly.

Re: I got asked LeetCode questions for a dev-ops systems engineering job today

#148

Earlier quoted context omitted.

Saying "I don't know" like this in an interview scenario is nearly impossible for most candidates and only serves to humiliate rather than prove their abilities. If you want to see them ask questions, give a half explanation of the problem at hand instead and guide them to ask more detailed technical questions. Be an ally, not an adversary, and you will find talent better than if you push.

It’s really not - as someone whose done 100s of interviews for a brand name tech company I don’t see this as a problem. The goal being for candidate to indicate their lack of knowledge but work through it. As an engineer you will encounter problems you don’t know how to solve. Pretending you know and bullshitting is a red flag.

There are hundreds of ways to do this without intentionally tilting the candidate into failure later. As an interviewer you have absolute authority in the room -- don't abuse it and destroy the candidate.

Re: I got asked LeetCode questions for a dev-ops systems engineering job today

#149

Good DevOps engineers are software engineers that can also do infrastructure work. They should be able to code. Unfortunately, many are "cloud sysadmins", for lack of a better term.

I don't do code, though I'm sure you would like me on your team :)

(BTW I have the exact opposite opinion, I think devs should stick to code and not try to setup infrastructure for themselves)

Re: I got asked LeetCode questions for a dev-ops systems engineering job today

#150
post #126

The reason that people still ask algorithmic questions is because they work for avoiding false positives. False positives are a lot more damaging to a company compared to false negatives. While algorithmic questions can get many false negatives, they don't get much false positives. What does it mean for a software developer? Spend a few hours a week doing leetcode questions. They're really not that hard.

> False positives are a lot more damaging to a company compared to false negatives. This is accepted blindly as dogma in our industry but in my experience it's only the case if the company is dysfunctional and management is too weak to let poor performers go quickly. Being an effective leader means being able to hire and fire quickly. If you're open and honest about it, you don't have to do as much as much intense ve…

But, at least in California, don't employment laws make the firing process kind of slow and expensive?
Post reply on HN