jobs-discuss

Drew Verlee 2024-10-11T21:26:58.000299Z

Let's say your interviewing someone for a prominently java related job. What questions would you ask them? How to reverse a string? About the JVM? What question exactly do you ask in 30 minutes to determine if someone should move on to the next round?

Dave Conlin 2024-11-01T12:05:06.024809Z

> Write FizzBuzz with tests This is the best answer in the thread. You can beef with the exercise picked (not my favourite either), but as the only answer to actually suggest you actually get them to write some code, I'm surprised so many people were more keen to shoot it down than offer technical alternatives. Any developer hiring process that involves you looking at some of their code is better than any developer hiring process which doesn't involve you seeing any of their code, end of story. No matter what else you test, no matter what else you're interested in (I think testing teamwork, collaboration and communication are vital), if they can't write good (as defined by context, hiring level and ability to grow) code, they will be a bad hire. The best way to test that is to look at their code.

gaverhae 2024-11-01T13:29:45.982069Z

Code is important, but coding in front of a whiteboard during an interview is a very noisy signal. I personally have a strong preference for "take home" exercises; i.e. i'd ask them to send me their FizzBuzz solution before they even come in. I know some people really dislike that too, though, and not everyone has the luxury of spending a lot fo time coding for an interview. I try to pick something vaguely relevant to the job but that I can do in half an hour, and I tell them not to spend more than 2h on it. Definitely not perfect, but I think it beats spending an hour in front of a whiteboard trying to count parentheses without parinfer.

πŸ’― 2
Dave Conlin 2024-11-01T14:03:44.346099Z

^ 100% agree

Dave Conlin 2024-11-01T14:09:13.198939Z

I have done interviews where they asked me to bring in a development environment I was comfortable with so we could pair on something. Like you, I much prefer to give people the time to go away and think without me peering over their shoulder (as you say, something short, and as part of an interview process that more broadly is respectful of the candidate's time). Both are much better than trying to get someone to write code on a whiteboard... and yet that's still better than an interview process where you don't get to see any of their code

Drew Verlee 2024-11-01T15:59:11.661629Z

Why not ask candidates the same questions about the business that are on your mind?

Drew Verlee 2024-11-01T16:10:28.859729Z

That's what I would do, I would try to break off a piece, proportional to what I and the candidate could handle, of what ever I was working on. Give them an abbreviated version of why I was asking, and let them tackle it anyway they wanted. If I, as the interviewer, didn't think it was worth diving into the code, then i think a codeless interview would be fine. If they said something I didn't think could be coded in a correct way, i would ask them to clarify with code. I suppose it would be a good idea, to ask the interviewee to estimate some tasks, then do some soft checking to see if they could meet those estimations.

Drew Verlee 2024-11-01T16:13:08.249459Z

I would do the second half of the 25 minutes. In the first 25, I would ask them what stuff in there life, hopefully tech related, i could help with. Then reverse roles.

p-himik 2024-10-11T21:32:14.886699Z

Just in case - there are some pinned items.

Nick McAvoy 2024-10-11T21:35:18.507309Z

"What's wrong with Java?"

seancorfield 2024-10-11T21:45:28.589079Z

point_up::skin-tone-2 Yeah, that's one of my go-to interview questions. I also tend to ask "What's your favorite <tech/language/framework/whatever> and why?"

Drew Verlee 2024-10-11T21:50:57.900739Z

Thanks for the ideas πŸ‘

Ed 2024-10-11T23:26:05.620209Z

With something the scale of Java, I think it's also worth asking what are you not learning and why? ... It's a good idea to dig into the process of turning a forest into a smaller collection of trees - how did you eliminate the other trees?

πŸ‘πŸ» 1
seancorfield 2024-10-12T00:07:11.131959Z

Something else that occurred to me: depending on which version of Java the company is using, and how "modern" their style of Java is, it's probably worth asking about the candidate's experiences with recent Java releases and which new features they think are the most exciting?

Drew Verlee 2024-10-12T00:27:47.155369Z

I agree Sean, I'm trying to do all of that, but they aren't being very responsive.

slipset 2024-10-13T09:43:55.168279Z

I would never hire a person just because they were able to churn out fizzbuzz, but a candidate who was not able to do so would have to work hard to convince me to hire them. Also, a neat follow up when a candidate has written an impl of fizzbuzz is β€œnow write a test for this”. 99% of the time the candidate will have written a fizzbuzz that does a println at the innermost level, and then we get a nice segway into talking about imperative shell, functional core. Unless, of course, you’re interviewing an old CL hand which just wraps their impl in with-out-str to capture the output and test against that.

slipset 2024-10-13T09:49:29.992109Z

In this sense, I’d equate being able to churn out fizzbuzz with being able to write a cover letter. I would never hire on the cover letter alone, but if the cover letter sucks, it’s really hard to get by the initial screening.

Hukka 2024-10-14T06:18:35.298909Z

Remember that unless you are trying to get desperate candidates, you need to respect the applicants time too, and show why you would be offering the best job for them. Fizzbuzz does very poorly for that.

Hukka 2024-10-14T06:21:34.475759Z

I wouldn't bother checking if the candidate is lying about the technical skills in interviews (so has no proper experience but just read the fizzbuzz articles, or didn't even read those). Instead I would focus on what the candidate is claiming about their skills and personality, and if that does not match reality in the probational, they are out

Hukka 2024-10-14T06:22:50.512749Z

I suppose that's different if you hiring for a consultancy, and the customer will see their actual skill level before you do, and the reputation damage is then done. Context matters, and the OP was pretty brief about the background.

Drew Verlee 2024-10-18T15:19:47.004649Z

thanks again everyone, I think it's harder here and now in slack to judge someones immediate familiarity with certain topics, and by extension, think about what questions should be asked. However, i believe that in conversation during an interview, where feedback is much stronger due to facial reactions, and how the immediately react, one can move through topics about java (or anything) and get a good sense what they know. But it helps me to hear peoples reactions to the idea. Better then the fear of not having any feedback!

gaverhae 2024-10-16T10:48:28.680559Z

"You're going to be doing the majority of your engineering work on the JVM - can you tell me a bit about its strengths and weaknesses?" I'd expect a good candidate to talk about portability of code, GC, memory overhead, language support, and so on. I'd expect a better candidate to start by asking / exploring what we're comparing with, and perhaps talk more about use-cases than technical features. When I interview, my goal is not to see what the candidate knows or doesn't know; my goal is to see how they think, and whether they know what they don't know.

πŸ‘ 1
☝️ 1
1
bibiki 2024-10-12T09:14:43.962779Z

depends on what level I need the dev to be... but for the most part I operate with the idea that a good dev makes a computer productive and a better dev makes another dev productive. also, if interviewees tech knowledge informs my decision, sometimes a dev's knowledge of some detail is a red flag. to clarify, I don't like it when people know how deeply nested hibernate transaction statuses propagate... that tells me that they have dealt with that problem which tells me they have probably gone wrong in their organization of code. similarly, there are git features that is better not to know. if interviewee knows java and has some code to show, he is a dev i can guide to productivity barring any communication difficulties

πŸ‘Ž 1
igrishaev 2024-10-12T11:26:37.081069Z

Write FizzBuzz with tests

marrs 2024-10-12T16:18:21.197729Z

> What question exactly do you ask in 30 minutes to determine if someone should move on to the next round? Surely wanting to work with Java is the disqualifying criterion! trollface

seancorfield 2024-10-12T17:18:12.682089Z

> Write FizzBuzz with tests I hope you're just joking... The problem with questions like that is a) being able to write FizzBuzz with tests is no measure of being able to develop real-world software in any language and b) there are plenty of articles written about how to write FizzBuzz with tests in almost every language so "anyone" can learn that for the interview, regardless. And yet, there are people who still actually use this as a technical test in an interview 😞

igrishaev 2024-10-12T17:38:29.119509Z

By looking at how they're writing fizz-buzz, you can easily check if they're prepared in advance. And ask a question which is not covered by those articles. Say, how to capture the whole output into a string and parse it; How to implement it as a lazy seq; How to implement in a loop form, or as reduce.

seancorfield 2024-10-12T17:54:16.150339Z

The OP question was about Java tho', not Clojure.

Drew Verlee 2024-10-12T17:56:14.041919Z

I feel like any opening question is fine, I just hope the interviewer has some personal motivation for the questions there asking. Otherwise it's like trying to discuss which restaurant or cooking technique ideal when the person isn't hungry and/or broke. Sometimes a hamburger quickly cooked on your grill taste better then a Beef Wellington in a 5 star restaurant. Context is everything.

Drew Verlee 2024-10-12T17:57:59.905329Z

Luckily, I have quite a bit of fundamentals to tackle if the topic is pure java, so i'm going to speed run a class online. πŸƒ think_beret