Hey all!
If you are interviewing a candidate for a Senior Elixir role, what coding question or exercise would you give them for an interview of 1hr?
Thanks in advance!
Hey all!
If you are interviewing a candidate for a Senior Elixir role, what coding question or exercise would you give them for an interview of 1hr?
Thanks in advance!
I think languages are not that hard to learn and it may take three to six months to master an ecosystem. Given that philosophy, I would start by posing a small, simple, typical exercise, and pair with the interviewer driving in the interviewer’s language of choice. Then, let interviewee do a small take home problem for thirty minutes (with no candidates screened as a result of submission) in a language of their choosing, with minimal dependencies like build a CLI application that reads in a CSV and computes something simple.
Elixir is easy enough as a language, I’d give a senior candidate a task that involves parallel processing and maybe require them to orchestrate stuff with Supervisor
and GenServer
-s.
Alternatively, have your team chat with them and just tell them they’ll get the senior payment after 1-2 months of a trial period.
Most probably none or some really trivial example project to:
The recruitment process should be as easy as possible. Think about it you have 2 job offers. One needs 5 talks each in other day - good, if this ends within a week, but most probably because of many applicants it would take from 2 weeks to 1 month if not more. However the second job offer requires only a simple talk and/or exercise - first developer wins, so whole process takes not more than 2-3 work days. Of course it’s worth to apply to both, but what you think, which one gets bigger priority?
Doing something in limited time is bad assume in my opinion. It’s much better to post a job offer with a simple test exercise and then all you need to do is to read your email and reply/talk to first applicant who have met all of your requirements.
If you do not trust how developer spends a time when working for you then you can pay him/her for let’s say 1 week iterations, so developer declares that he/she is able to do x
number of features within said period and regardless if the iteration is submitted after 4, 5 or 6 days you pay for iteration and not for time developer spend on it.
There is lots of possibilities when both sides want to sign an agreement and especially if we talk about senior developer you can just talk with him/her and decide what kind of agreement is best for both sides. Once again: a simple and flexible job offers are best for both sides and especially are attractive for applicants.
@Eiji wish you were in charge of every interview processes of every tech company ever, lol.
I would love it if all tech companies would offer a trial contract position to really suss out fit but alas, I have yet to come across one.
When I was an interviewer I always went far more by personality than ability. Of course, you need some sort of exercise to gauge if someone is capable, but you can learn a lot from a simple exercise, especially if you pair. It all depends on your company’s culture, of course. If you’re a feature factory then none of the above applies… just pick a random leetcode question
Ideals aside, I think it depends on the type of interview you’re conducting @grangerelixx. Is it a pairing exercise? Domain modelling?
My favourite to do as a pairing exercise is stringcalc (link is in Java, just read the README). It starts simple and the difficulty ramps up at a pretty even click. It’s pretty fun and not algorithm-y so candidates are generally relaxed.
How about we just stop making developers endure coding exercises for interviews?
That would be fantastic. I can only guess what you have in mind as an alternative, though—these types of statements need backup. What do you propose?
Well my argument is this: I feel like time-limited, on-site(or off) coding exercises don’t actually exercise anything that you would necessarily use in your day-to-day tasks as a developer. Especially now more than ever since development has become so heavily scrum-based that it has become more about conformity to consensual standards and demonstrating a collaborative mindset among your peers.
Here’s a thought: if I were an experienced lawyer who has worked at a law firm and accumulated experience, would I be subjected to a time-limited case law quiz for my job interview? No.
If you’ve already presented a prospective employer with your resume that has outlined your development experience and provided at least two solid references, why is it then that developers in particular are held to this distinctive standard?
That’s a really solid point and never thought of it that way. I was asking in earnest because I have given some thought of how to justify eliminating coding exercises before. They have been helpful in the past, though. Like, clearly this was a screening failure, but we interviewed a guy for leadership who apparently had over 10 years experience coding and he was unable to figure out how to turn "1,2,3"
into [1,2,3]
, so in that one case that was useful.
Ugh, I could on and on about this topic so I’ll stop in a minute, but ya, this is why I always go by personality far more than technical ability. I think interviewers should be conducted in a way where the interviewer is trying to help the interviewee to be successful, especially when it comes to coding exercises. I have walked this walk before and it was quite successful at quickly identifying who would fit and who wouldn’t. Of course it doesn’t have a 100% success rate, but it was quite high. Like, nothing says “bad fit” to a candidate you are trying to help along and they just aren’t having it.
EDIT: I feel I’ve glossed over a bunch here as it’s a pretty near-and-dear topic to me and have many thoughts I haven’t fully sorted.
I am of the same opinion, beside these interviews abuse, there is a new trend for last few years to give big tasks at the expense of the the person that applies to the job.
I had 2 kind of these nasty interviews lately:
After working 4+ years on hard projects with very limited resources, I find these companies not only incompetent but disgusting, they treat people like labor resources without any care. If I had possibility to leave this industry altogether I would do it tomorrow without looking back.
This seems to be an extreme example, a glance over his CV and a discussion over what he worked with seem to have solved this problem before having to do the coding interview, because there is a 90% chance that he used at least something from the stack you are using.
I am in the boat with @maz on this topic, coding interviews are just a reminiscent of big corporations like google hiring people in bulk, and while it is a good fit for students fresh out of university, it doesn’t prove efficient for people with experience.
I’m clearly not great at expressing myself (I already knew this). When I said “clearly this was a screening failure” I was trying to signal that this was extreme case (2 years later, I’m still reveling in the relief that that interview is over). I’m otherwise also in the same boat as you, but was trying to shed some light on some positive experiences with coding exercises I’ve had, although it was a pretty special company I was at and it doesn’t match the experience of most of the interviews I’ve done recently. I’m feeling the urge to start venting about these interviews so I’m going to stop.
…but for a taste:
I was told the “next steps” was going to a pairing exercise. This “pairing exercise” ended up being a timed (3 hour) solo exercise on zoom, being recorded, having to talk aloud to myself through what I was doing. I’m still kicking myself for agreeing to do that as… well, I mean, we’re all very lucky with the money we can make in this industry but that did not feel good at all. To top it off, when they rejected me they said they could “give me feedback, but not necessarily feedback, just talk through the exercise” and I said ok and I never heard from them again.
Probably none. The ideal situation is when you can arrange a two week trial period before hiring that person, to test the skills in practice. Could be shorter too, maybe 3 days would be enough, and start working on real stuff.
Coding interview skills are entirely different skill than writing real software.
we’re all very lucky with the money we can make in this industry
I would be happy to work with less money, but in a company where people really care about their product and people they hire, and it seems to me the market will be saturated at some point and the salaries will start to drop radically for junior-middle levels.
A funny story, I was searching for a elixir job and being unable to find any, I thought that maybe a better strategy was to come with a proposition of being paid much less for let’s say a few months to prove my skills and then discuss new terms, I couldn’t be more wrong, recruiters hearing this would just not take me seriously and most of the times either decline after application or not answering at all :).
Surprisingly many people who call themselves developers dont know what they are doing.
Some kind of coding exercise or code sample is needed, but it shouldn’t take more than maybe 2 evenings to get it done.
One example I got is to write a small program with an ui to score a bowling game, which I think was kinda fun.
For elixir I would maybe pick something that shows that the candidate knows how processes and supervision trees work. Maybe build a networked bowling scoring server, which could be called from telnet
If there are many who say they are developers but cannot code then could you argue that coding exercises are not effective in the first place?
If coding exercises were effective, then wouldn’t they act as a hedge against the very thing that corporations are hoping to avoid(developers who can’t actually code)?
It’s kind of a silly argument I know but let me put it this way: if every developer just refused to do a coding exercise, would the software industry collapse? I don’t think it would. I believe the job and the developer would actually find each other more quickly because this artificial ceremony has been done away with and people get hired and fired until they find the job they actually deserve.
While I do generally agree, this would likely be more churn on the employers ends. Yes coding exercises are not a perfect measurement of an applicants abilities. It neither prevents a bad pick nor is a great tool to highlight ones abilities (in a general manner). But overall I think from an employers perspective it’s a tool to lessen the risk of getting someone they don’t want. In a perfect world that risk would be well handled by employers, but I think we’re just not in such a world. Even in education, which deals with the issue of evaluating people so much more, there’s not many alternatives to tests when it comes to quickly doing assessments.
Only if they are paid for would I spend two evenings writing code for a throw away project. For all you know, they have been giving the same assignment to 1000 people and will choose one of the 200 who passed at random.
I was once at a company where we gave a simple coding exercise to a candidate with a Ph.D. in a computer-related field. The candidate was unable to complete the exercise, so we ended up not hiring him. I think it is important to screen for basic programming ability, even if the candidate seems qualified.
What if you are working full time for another company and can’t afford the risk of leaving your current company and being told you’re not a good fit at the new one after the trial period?