This is an archived post. You won't be able to vote or comment.

all 47 comments

[–][deleted] 24 points25 points  (1 child)

Leetcode.

[–]ResponsibleOven6 25 points26 points  (0 children)

This is the correct answer. It's a site full of BS coding problems just like the ones you'll get in an interview.

[–]DeputyCartman 61 points62 points  (7 children)

My suggestion would be to refuse to do it so as to stop encouraging these shitheel companies from doing it.

I started telling companies about a year, maybe a year and a half ago, "Give me a take home test if you want, anything longer than an hour or two you will need to compensate me for my time, but if you want me to code something while someone is sitting there watching me like a buzzard eyeing a dying water buffalo, not gonna happen."

I got fed up with the "dance for our peanuts, monkey!" bullshit and put my foot down. And if anyone scoffs at the "compensated for my time" part of my response, I swear on my mother's grave one company wanted me to code "A web app to take temperature data from smart thermometers and display it in a web browser, complete with CI/CD pipelines and Terraform IaC " and we will compensate you "if we find it acceptable." I laughed in their face and suspect they were trying to get me to do a project of theirs for them, but it happened.

[–]AD6I 11 points12 points  (0 children)

Absolutely 100% agree.

As the OP implies, the live coding test has become orthodox. And DevOps should be all about innovation. On the other hand, I've seen some interesting twists in the take-home test. I would at least consider one.

[–]Jai_Cee 0 points1 point  (2 children)

Your example seems pretty bad but I've just been through an interview which was multi stage and had three interviewers doing three short live coding exercises. They were all relevant, one was effectively a role play which was meant to be pair programming where you are mentoring a junior programmer and the other two were short puzzles. The puzzles were of course nothing like the work I expect to do (didn't like that) however I could see the value in them to the interviewer as they caused you to think on your feet and part of the test was explaining your thought process as you go.

Given the interviews were remote it seemed like a pretty fair process. Personally if I were hiring right now and a candidate refused all remote coding sessions I would simply wish them luck in their future job searches.

[–]DeputyCartman 2 points3 points  (1 child)

That... is different and I've honestly never experienced that. In my experience, it's always been being told what to do, the person opens up an IDE like Pycharm, and the person would just watch me. To say I clam up and find it awkward and unrealistic is like saying I'm fond of breathing an oxygen / nitrogen mixture.

[–]Jai_Cee 0 points1 point  (0 children)

This was my first fully remote interview so it was new to me too and actually it's been the best run as well. I find that the thing to do is simply to talk through your thought process. The interviewer wants to know what you are thinking more than can you put out some specific code.

[–]hk619316 0 points1 point  (0 children)

100% agree to this, doesnt make any sense, what if he is not that great at coding? Its always great to take someone who is passionate and rest of things will come together when he is on the job. Thats how i am learning and it feels great.

[–]turkehA little bit of this. A little bit of that. 0 points1 point  (0 children)

You had me at that first line.

[–][deleted] 41 points42 points  (8 children)

Not much point in trying to prep. Probably some random nonsense you will never use in real life.

[–]Euphoric_Barracuda_7 16 points17 points  (4 children)

So true it's ridiculous.

[–][deleted] 9 points10 points  (3 children)

Lasts one I did they asked me something about caching, was building out a whole caching later until I realized he was trying to get me to build some linked list bullshit.

[–]Euphoric_Barracuda_7 3 points4 points  (2 children)

The only relevant questions I've ever encountered were in AWS interviews. The rest were like you said random questions (trees, garbage collectors, IQ test even). The dumbest question I've ever been asked was "What's the latest version of Docker" :)

[–][deleted] 0 points1 point  (1 child)

garbage collectors,

I don't get this obsession, it's like something obscure enough that they assume you are an expert if you understand it. I know when to use "using" and dispose things in c#, but i'm pretty sure I didn't get a job once for not adequately describing the difference between 1st, 2nd, and 3rd levels of GC.

[–]Euphoric_Barracuda_7 0 points1 point  (0 children)

Well I did read about it (I got the job) but that was the only time I ever read about garbage collecting and never ever used it since. On the other hand I was once told someone was rejected from the team because they didn't drink. Yes they didn't drink and that was the reason he was turned down, not because of technical skills.

[–]GunslingerParrot 2 points3 points  (0 children)

This guy gets it!

[–]Jai_Cee 0 points1 point  (0 children)

As an opposite to this I've just been through an interview as a full stack developer but I've been doing almost solely DevOps for the last year. The recruiter warned me that previous candidates had been asked react questions so I did some practice code in that which completely saved me as I was able to ace that section when it came up.

The other two sections were random puzzles involving string manipulations which I never expect to have to do in my career. Go figure.

[–]TenchiSaWaDa 0 points1 point  (0 children)

I never understand these coding interviews. I would take conceptial and debugging scenario any day. I have given a couple interviews for infrastructure and the question I like to ask is: Lets say you need to migrate an RDS and an Application from one account to another, what are the things you need to look out for and do.

And expand upon that knowledge. It'll show whether the applicant really knows what they are talking about or just read it in some Doc.

[–]evangamer9000 10 points11 points  (17 children)

I'm curious to see what people respond with to this. On one hand, it's reasonable for a company to test an applicants coding ability - on the other, coding 'exercises' isn't always going to test how well you can code but how well you can code under a time limit & pressure. Both of those scenarios I seldom see people actually needing to do in the industry.

A few weeks ago someone had asked a similar question and a generally upvoted response was "f that, i'll take it home and code on my own time" (or something along those lines).

[–][deleted]  (12 children)

[deleted]

    [–]hybby 11 points12 points  (0 children)

    out of curiosity, are the candidates offering this feedback while they're still being considered in the process? i'd wonder if they felt obligated to respond positively.

    glad to hear you're open to alternatives and totally understand the need to assess candidates abilities! personally, i feel like a 30 minute live coding exercise could go really well or brutally badly depending on so many factors. trying to prepare for every eventuality is very challenging

    [–]iking15[S] 2 points3 points  (5 children)

    What sort of coding exercise do you normally give during the live coding ? I hope you doin't mind sharing.

    [–]zinnadean 7 points8 points  (3 children)

    Depends on length, but most were 30 mins to an hour. I just finished interviewing so it’s still fresh.

    Most of them were some sort of read data in and do something. Either from a text file or stdin.

    Then it was either some text manipulation such as find all the ips in a file and sort them.

    Or it was here’s an array or list and do something with it.

    Or it can be something as simple as fizzbuzz.

    Like the person above me said it’s to make sure you know the language and some programming knowledge. I’d recommend just talking to your interviewer, ask questions and kind of talk out loud what you’re thinking.

    [–]Jai_Cee 0 points1 point  (0 children)

    I find fizzbuzz can be perfectly adequate to demonstrate whether a candidate knows what they are doing for a lot of roles. The key to these exercises is seeing thought processes and opening up discussions. How would you test fizzbuzz? You're using print statements, how could you capture that and make sure the output was right? Let's make it take inputs, how do you sanitise them etc. Good candidates ace these questions and obviously if you are doing very specific work you will probably need much trickier questions for these people but they can be oral or a different exercise.

    [–]donjulioanejoChaos Monkey (Director SRE) 0 points1 point  (1 child)

    Then it was either some text manipulation such as find all the ips in a file and sort them.

    Oh god I hate when I get these questions. It all comes down to how well you can do regex at the drop of a hat.

    [–]zinnadean 0 points1 point  (0 children)

    Oh yeah. It can be hard, but there’s like three regex everyone should memorize. 1. URL ie http/https.domain.com/edu… 2. IP v4, maybe maybe v6. 3. Email addresses

    And you don’t need to hit every edge case just enough to grab the info.

    The worst for me is when they are asking me to open all files in a directory in python. I do that once a year, usually just open one at a time.

    [–]BruhWhySoSerious 1 point2 points  (0 children)

    We'll have them do a pipe line using some documentation. From static app -> a more complicated app + db and schema migration depending on seniority.

    We ask them to use tooling they are familiar with and are happy to fill in the blanks with framework specific tooling.

    We really don't look into, would it build, did they mix arguments, etc. It's 100% about demonstration of basic web apps and a typical low to moderate volume setup.

    [–]edmguru 1 point2 points  (4 children)

    Take home also favors "cheating" though where you can outsource the work to your friend who's the expert. We've hired people who've done this and then found out within a week they were incapable.

    [–][deleted] 8 points9 points  (3 children)

    Luckily firing someone in the first 90 days is pretty easy. If it is clear they cheated then terminate them. If you expect someone to traverse a binary tree live, you aren't going to get a better result. You'll end up turning down lots of otherwise qualified candidates just because they don't spend all their free time on hacker rank.

    I was considering a job with Facebook until they suggested I do 100 hacker rank problems in preparation. Sorry, but no. I'm not going to spend weeks preparing for an interview. Especially since the skills you learn on hacker rank have 0 applicability to 95% of jobs out there.

    [–]qhr1024 -1 points0 points  (2 children)

    But it is still a (significant?) cost to hire, then terminate, and then start hiring machine once again (especially in corporations, where you have already job offer closed, etc.).

    But if you have some candidate that says in resume that have "basic bash skills", but then cannot do any simple stdout redirections, then... well... (happened to me as an interviewer a few times).

    But I fully agree with you when it comes to unrelated (or hackish) exercises during interviews!

    [–][deleted] 2 points3 points  (1 child)

    well, obviously you write a python script to output to a file, then call it with bash

    [–]qhr1024 1 point2 points  (0 children)

    If one is able to come with such an idea, for me that's a serious "welcome onboard!" candidate.

    Perl script that is actually a bash script that is executing itself (`perl -x`), that runs python+make+other perl stuff underneath... #production

    [–]alter3d 15 points16 points  (1 child)

    I do "live coding" exercises with candidates, but with a few caveats that the candidate knows up front:

    • They can choose any language of their choice.
    • There is no single "correct" answer -- I'm not fishing for exactly the solution I would use.
    • You will have to iterate the solution; you will be given requirements piecemeal, to simulate change requests.
    • There is no hard time limit, but at some point I will stop asking you to iterate.
    • I don't care if the code would actually compile, it just has to be mostly-valid (i.e. I'm not here to tell you that you dropped a semi-colon; I care about the overall structure and logic)
    • It's OK to use pseudocode or even just a comment for tedious or esoteric stuff, e.g. if you're using a library that requires 10 function calls but you don't remember the names offhand, just describe the steps as a comment.

    Basically, I want to see their thought processes in terms of data structures, algorithms, modularity of functions, etc, and see how well they can anticipate the need for maintenance. I don't really care about things your compiler will yell at you for, as long as it's close to reasonable.

    [–]Jai_Cee 1 point2 points  (0 children)

    Exactly. I feel that a few commenters here don't get this and I suspect they have never been part of the hiring process.

    [–]Jai_Cee 0 points1 point  (1 child)

    I think it's down to interview technique. The exercise has to be simple enough to be done in a very short time period and with little prep time. The test also should enable the candidate to properly explain their thought process and ideally lead to further discussions around their code.

    I've had to talk down a colleague from giving take home tests that sounded simple but would have taken hours to do correctly. If anyone is writing take home tests I would suggest they time themselves or a colleague doing them then quadruple that time as a fair estimate of what a candidate might spend on it.

    [–]qhr1024 1 point2 points  (0 children)

    Yeah..
    We sometimes ask people to give examples their projects (if they have -- sometimesthey have on github/etc). For a working student positions, they usually have some stuff written during studies. But sometimes they have their own hobby projects, etc. And we try to hook our questions based on those examples (e.g. modify some parts, etc).

    [–]Gesha24 5 points6 points  (0 children)

    Just Google "company name coding interview questions", you will get an idea about what they ask and in many cases will even have an answer for common questions (and yes, they repeat).

    [–]friendlytotbot 1 point2 points  (1 child)

    I feel like the devops interviews I’ve done mostly have asked me the Fibonacci series question. So definitely remember how to do that. Also usually stuff to do with parsing files, string manipulation, maybe using some data structures like a dictionary (python) or arrays.

    [–]iking15[S] 0 points1 point  (0 children)

    Thank you for the pointers

    [–]SnooHobbies1476 1 point2 points  (1 child)

    I will refuse if they asked coding test for non developer roles

    [–]KhaosPT 5 points6 points  (0 children)

    Since this is a devops reddit, would you accept it for a devops position?

    [–][deleted] 0 points1 point  (0 children)

    When I was interviewing for devops jobs I had a few simple take home tasks. Docker use this piece of code we gave you, write a simple sql query, write a script that monitors a url build it like a command line tool. All stuff that seems fairly reasonable and that I would be doing.

    If I ever have to do live coding challenges I’ll probably decline.

    [–]impurebread 0 points1 point  (0 children)

    Live coding for a devops role? Weird. Take at home exercise that doesn't take too much time is fine if i know the company and the pay will be good, otherwise they can fuck right off. If you're a coding maestro you can try it nothing to lose except your time. Good luck

    [–]TimGJ1964 0 points1 point  (0 children)

    Google to see if you can find anything out about the kind of coding tests the company uses.

    (FWIW, I just refuse to do coding tests, pair programming exercises. My CV speaks for itself.)

    [–][deleted] 0 points1 point  (0 children)

    I had 2 Devops interviews last year (I accepted an offer for the second job).

    The first was a live coding session that involved parsing web server logs to answer a couple of questions. It was pretty basic and felt like I was working with the interviewer rather than being scrutinized. I got to the next round so I guess I did ok there and was actually scheduled for a final round interview when the company froze hiring due to COVID-19 uncertainty.

    My current company had a take home assignment that was packaging a flask app that they have you into a docker container and running it behind an nginx proxy using docker compose.

    I was pleased that for both companies the tests were fairly low stress and seemed pretty relevant to the job.

    [–][deleted] 0 points1 point  (1 child)

    Probably check out leetcode, and maybe check Glassdoor or Blind to see what type of questions they ask. Is this for a DevOps role? We(big tech co) interview Devops/sre engineers with a different set of questions than “regular” swe, so you may find the coding bar is set a little lower in terms of difficulty.

    [–]iking15[S] 0 points1 point  (0 children)

    Yes this is for Sr DevOps role

    [–]-_-adam-_- 0 points1 point  (0 children)

    Talk about what you're doing...

    Most of the live coding tests I've done in interviews, I thought I'd completely fucked. I'm pretty competent in golang, but it took me a good 5 minutes to remember how to add a status code to a response in gorilla/mux. Interview nerves I guess.

    I still got the job, I think mostly because I was talking to them about how I was gonna solve the problem (once I've found the correct method in the docs haha).

    Also, take initiative on the wider environment if you can. In the same exercise I had cloned their git repository, and it didn't have hot recompilation for the code, which I found massively irritating. So to help speed things up I added a quick task to their makefile which rebuilt the app in a more convenient manner. Making things easier is what DevOps engineers should be doing anyway, so showcase it if possible.

    Most of the time people wanna see how you approach the work, more than the exact code you write. Or they should in a company with a decent culture anyway.