Fork me on GitHub
Michael Thurmond20:03:31

I wanted to start a discussion on different types of interviews and why you prefer that certain style (and have you had success with it) ? For example, do you like to give an in-person coding challenge and see how the candidate does one the spot, or would you rather give the candidate a take home project and walk through their code and see how they articulate their decision making. Or anything else ...?


@thurmondmb Click the (i) button top-right to show channel information: Pinned Items are in there.

👍 4

Do you have a direct link to it? I can’t access it on mobile for some reason.


@U06B8J0AJ The message it's in has "aged out" so you can only get to it via the Pinned Items menu (and I'm heading out the door so I can't send you a copy right now).


No worries, I’ll check on the computer tomorrow. Yeah, the mobile app seems to want to jump to the message when I try to access it from pinned items, rather than giving me the actual file.


You might be able to access it via search on the phone app: search for interview in Files


@seancorfield I love that mind map! I wish more companies used that. Unfortunately, I think interviewing in our industry is going in the opposite direction. I have an interview coming up that I’m sure is going to be loaded with algorithm and data structure questions and my honest answer is mostly going to be, “I don’t know the answer but I know I can find it. Do you really want to watch me find it?” Aside from the fact that in my day job they won’t watch me find it, asking those kinds of questions leaves out what is, in my opinion, a critically important factor: “Can we work with this guy?” Then there are the, “How many manhole covers are in Manhattan?” and “How many palindromes blah blah blah”. What does that tell anyone about anything? Not to mention; how many of their customers care one whit about manhole covers or palindromes? Customers want their problem solved! Can the candidate help you do that? We as an industry badly need to revisit how we do interviews. /end rant

Michael Thurmond20:03:35

@darrell thanks for ranting. You said what I was thinking. I was given a javascript tree problem for a Clojure job that include a combination of a DFS and BFS. Up until that point, I haven't used a BFS in industry and it had been over 4 years since CS undergrad. I also never seem to do well when put on the spot to solve a problem with people watching me code. I can ask the right questions but I usually need to think about it for a little bit then program the solution.


I’m the same way. Putting a candidate on the spot rarely shows what they’re capable of and in probably 99% of the jobs, it’s unnecessary. In fact, I personally don’t want employees or co-workers making snap decisions on the spot. The best code always comes from a thorough understanding of the problem before a single line of code is written.


When I interview, the number one thing I look for is enthusiasm. I don't do whiteboards, nor silly really abstract questions about data structures. I invite the candidate to show me some code they've wrote, something they are proud of, and to talk me through it.


The retort is often, “But we want to see how that person thinks.” Except, when outside of interviews do we ever care about how someone thinks? I’ll qualify that by saying that we do care about how people think but we have to be around them for longer than an hour to fully understand that.


I don't really care what language they pick (although I do have a strong leaning towards FP-style languages :-))


@dharrigan Exactly! I want to know that the candidate wants this job because they want to do a good job, they love writing code, and they’re someone I can spend 8 hours a day with.

👍 4

"show me some code" is not always possible. I know lots of companies that don't allow their employees to contribute to open source and even if an employer allows it, they often don't allow it during work hours meaning that only people with lots of free time are often able to show you code.

👍 4

That excludes a lot of candidates who have very valid reasons for not being able to "show" their code.


If they have no code to bring, I offer a small coding challenge


which I pre-prepare based exclusively on their CV

👍 4

I am amazed at the number of times someone puts down "MongoDB and Javascript" on their CV and when I ask them to write me a simple connect to a running mongo and pull back all the entries - they simply cannot do


What I've tended to do these days is: if a candidate lists their OSS contributions on their resume I will go look at it and use it as a "negative test", i.e., if it's poor code, it's a black mark. But I don't otherwise pay attention to it.


Which leads me to think what else have they, um, *embellished" on their CV...


Is that "small coding challenge" something you expect them to do at home or in the interview?


During the interview. This is if they have no code to show (which has only happened a few times). And I've already done most of the prep - I've loaded up the db instance, I've setup a project for them, I've created a skeleton file.


All they have to do is plug in a routine or two.


And yet, I'm amazed at the number of people who can't


Oh, I also allow them to use google


or whatever search engine they want


I tell them that - I cannot work as a programmer without using google/stackoverflow/seancorfield, therefore why should I set artificial limitations on you?

😆 4

What about people who vapor lock when being watched during situations like this? I know people who are brilliant that basically shut down when being watched like that. Hell, I’ve done that before.


They are free to use whatever resource they want to solve the problem.


and yet I'm amazed...


I'm very much against live coding challenges in interviews. I would probably walk out at that point.

simple_smile 4

Don't underestimate the power of anxiety.


I've not had a person zone out on me yet - perhaps it's the way I run the interview? <shrug>


There is no perfect interview process, if you know one, please let me know 😉


(I have walked out of an interview over live coding, BTW -- I was flown from London to Dallas for an interview and walked out when they gave me a live coding test, went back to the airport early and flew home to England)


I've walked out of whiteboarding interviews 🙂


They still offered me the job -- I turned them down.


Hopefully that company took the hint and reconsidered their interviewing practices.


I remember my first real interview after uni


It consisted of the project manager showing me about 10 pages of printed off code


and asking me to critique it


My first job 🙂


That’s actually not a bad approach. It’s not asking someone to be creative on-the-spot.


Maybe that’s what I so dislike about modern technical interviewing practices; they completely discount how much creativity is involved in coding. The way you solve a problem may be different than the way I solved it. Which one is correct? They may both be! Is one better than the other? Possibly, but that can only be determined when seen as part of a whole system. I fail to see how an interview can determine that when it’s all about watching someone write some code to see how many algorithms they use.

👍 4

@darrell wouldn't whether they were able to solve it or not still tell you something though?

Michael Thurmond21:03:10

I agree with being able to solve the problem, but I never have to code with someone looking over my shoulder every day unless I am discussing my code with someone

Michael Thurmond21:03:30

My current job (C#, TypeScript, React) I was referred by someone and just discussed past projects, how I solved the past problems, and architecture I did on a Clojure system. It was a good experience, minus the fact that I'm still working with dotNet and two outsourced JS projects


I think what may help is if the people giving the interview give several easy-medium ones, instead of fewer difficult ones, especially ones that require you to have some flash of insight. I think it may be more predictive of job performance, but I don't have any evidence. But yes, I'd agree it is far from a perfect signal.

👍 4
Mario C.22:03:16

How common is it for someone to be able to talk big game or are very charismatic and then not being able to code simple things vs someone who knows how to do these hackerrank problems but then cannot code at work?

Mario C.22:03:02

I dont think asking BFS/DFS sorta questions are fair assessment since they can be rather difficult without practice but I think easy coding problems are a good tool to use.

✔️ 4
Mario C.22:03:34

Reversing an array is not so uncommon in real work. Filtering things out. etc

Michael Thurmond22:03:53

(reverse my-seq) 😂

Michael Thurmond22:03:37

but yes, reduce/map/filter are common


Anyone here uncomfortable about take home tests? I’m very aware that if I ever had to get a real job again I’d either corpse on a whiteboard coding test or struggle to find time out of work hours in between three kids. But we’d always be reluctant to hire anyone without seeing them approach a new problem in code.

Michael Thurmond22:03:20

I don't mind take homes, I always liked coding up a solution and then walking the interviewer through my code and what improvements I could make


Good to know, that is what we do where I work 🙂


We generally try to make the problem interesting, we’re not overly strict about deadlines and we try to impress on people we’d rather see then write good code that solves half the problem than rush and finish it. Most people don’t listen to the last bit though.


@mario.cordova.862 the second one is probably rare, and if it occurs, it would probably be a matter of them not being able to code in an organized way (instead of not at all), and it is probably easier to pick up on the job than general problem solving

Mario C.22:03:02

If I were getting interviewed my ideal situation would be to have a conversation about my experience, small easy programming task and then a take home project. The take home would be to do something trivial but in a language that I do not know. And I can add any feature I would like. Sentiment analysis for example


How trivial is trivial?

Mario C.22:03:25

Good question

Mario C.22:03:31

Perhaps something like consuming some API and displaying some data on a front end


Here is a pretty good one that is trivial, though not as trivial as fizzBuzz:

👍 8

that would be too simple to be the whole interview, but maybe a decent first question

Mario C.22:03:28

Thats a good one. More fun puzzle solving then algorithmic computer science-esque


@isak Yes, but not all problems are solvable in a half-hour interview, especially when someone is sitting over your shoulder watching you solve it. I mean, I’m a pretty fast typist but my speed and accuracy at just typing out a general sentence like this one dramatically decreases when someone is watching me. I’ve seen that happen with so many people that I think it’s more common than not. So, aside from pair programming (where my typing also dramatically decreases), I feel that watching someone code during an interview doesn’t tell you much.


@darrell I get that, though if people adjust the difficulty of the problem accordingly, it could still be a useful signal, no? Unless you think neckBreathing_perf is uncorrelated with onJob_perf (no neckbreathing) across candidates?


I don’t think the two are related. How often does someone stand behind you watching you solve a problem without you having asked them to do so first?