jobs-discuss

Job hunting, interview process and anything related to the experience of a job writing the Clojure language.
2020-03-05T20:23:31.010300Z

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 ...?

seancorfield 2020-03-05T20:27:04.011Z

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

1👍
Darrell 2020-03-05T20:38:40.015600Z

@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

2020-03-05T20:53:35.020400Z

@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.

Darrell 2020-03-05T20:55:31.022300Z

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.

dharrigan 2020-03-05T20:56:50.024700Z

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.

Darrell 2020-03-05T20:56:57.024900Z

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.

dharrigan 2020-03-05T20:57:53.026300Z

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

Darrell 2020-03-05T20:58:18.026600Z

@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.

1👍
seancorfield 2020-03-05T21:02:37.028300Z

"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.

1👍
seancorfield 2020-03-05T21:03:01.029Z

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

dharrigan 2020-03-05T21:03:13.029500Z

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

dharrigan 2020-03-05T21:03:25.030Z

which I pre-prepare based exclusively on their CV

1👍
dharrigan 2020-03-05T21:04:01.031300Z

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

seancorfield 2020-03-05T21:04:07.031600Z

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.

dharrigan 2020-03-05T21:04:38.032300Z

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

seancorfield 2020-03-05T21:05:10.032700Z

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

dharrigan 2020-03-05T21:06:39.034Z

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.

dharrigan 2020-03-05T21:06:55.034400Z

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

dharrigan 2020-03-05T21:07:08.034800Z

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

dharrigan 2020-03-05T21:07:14.035100Z

Oh, I also allow them to use google

dharrigan 2020-03-05T21:07:20.035400Z

or whatever search engine they want

dharrigan 2020-03-05T21:07:41.036200Z

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

1😆
Darrell 2020-03-05T21:07:44.036300Z

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.

3
dharrigan 2020-03-05T21:07:56.036600Z

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

dharrigan 2020-03-05T21:08:01.036800Z

and yet I'm amazed...

seancorfield 2020-03-05T21:08:43.037900Z

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

1
zane 2020-03-05T21:08:46.038100Z

Don't underestimate the power of anxiety.

dharrigan 2020-03-05T21:08:49.038300Z

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

dharrigan 2020-03-05T21:09:35.039600Z

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

seancorfield 2020-03-05T21:09:43.039900Z

(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)

Darrell 2020-03-05T21:09:56.040200Z

lol

dharrigan 2020-03-05T21:10:02.040500Z

I've walked out of whiteboarding interviews 🙂

seancorfield 2020-03-05T21:10:09.040800Z

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

Darrell 2020-03-05T21:10:16.041100Z

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

dharrigan 2020-03-05T21:12:42.041500Z

I remember my first real interview after uni

dharrigan 2020-03-05T21:13:00.041900Z

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

dharrigan 2020-03-05T21:13:07.042200Z

and asking me to critique it

dharrigan 2020-03-05T21:13:23.042400Z

Fun!

dharrigan 2020-03-05T21:14:11.042900Z

My first job 🙂

Darrell 2020-03-05T21:17:28.043900Z

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

Darrell 2020-03-05T21:20:53.046900Z

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.

1👍
henrik 2020-03-05T21:23:05.047600Z

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

seancorfield 2020-03-05T21:32:02.047900Z

@henrik 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).

henrik 2020-03-05T21:36:31.049600Z

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.

isak 2020-03-05T21:50:14.050500Z

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

2020-03-05T21:53:10.051600Z

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

2020-03-05T21:55:30.053800Z

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

isak 2020-03-05T22:05:46.057500Z

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.

1👍
Mario C. 2020-03-05T22:08:16.059600Z

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. 2020-03-05T22:10:02.061600Z

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.

1✔️
Mario C. 2020-03-05T22:10:34.062300Z

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

2020-03-05T22:14:53.064500Z

(reverse my-seq) 😂

2020-03-05T22:15:37.065500Z

but yes, reduce/map/filter are common

thom 2020-03-05T22:17:33.068900Z

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.

seancorfield 2020-03-05T22:18:16.071Z

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

2020-03-05T22:18:20.071400Z

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

isak 2020-03-05T22:18:24.071500Z

@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

isak 2020-03-05T22:19:20.071600Z

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

thom 2020-03-05T22:22:00.075100Z

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 C. 2020-03-05T22:22:02.075300Z

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

thom 2020-03-05T22:23:26.075600Z

How trivial is trivial?

Mario C. 2020-03-05T22:25:25.075800Z

Good question

Mario C. 2020-03-05T22:26:31.076600Z

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

isak 2020-03-05T22:27:05.077200Z

Here is a pretty good one that is trivial, though not as trivial as fizzBuzz: https://www.codewars.com/kata/52742f58faf5485cae000b9a

2👍
isak 2020-03-05T22:27:39.077900Z

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

Mario C. 2020-03-05T22:29:28.078500Z

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

Darrell 2020-03-05T22:43:47.081100Z

@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.

isak 2020-03-05T23:01:31.081500Z

@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?

Darrell 2020-03-05T23:44:09.082300Z

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?