How do you evaluate a junior?
Posted by Royal-Shape-9244@reddit | ExperiencedDevs | View on Reddit | 47 comments
Hi Everybody,
I've recentely been promoted to a higher position at my job and now I will have a couple of juniors working under me.
I never had to manage other people before and one of the tasks I've been assigned is to evaluate these two juniors in the upcoming weeks because only one of them will be hired.
Do you have any advice?
SteveMacAwesome@reddit
When I interview junior candidates, I go through the normal motions. A few code examples, get them talking about code they wrote or were involved in. The usual.
Then I apply the actual test, almost as an afterthought: I ask them a really unfair question. In fact I tell them “this is a really unfair question but I just like it because it’s weird” and ask the unfair question.
For JS it’ll be something like octal notation, which any linter would earn you against, or RegExp({}).test(‘mom’) -> why is this true when .test(‘dad’) is false.
I don’t expect them to get the answer right, in fact if they do, I ask them another. What I’m looking for is that curiosity, the sitting up straight and asking “wait how is this a thing?”.
The folks who just go “idk” and don’t care to find out, I don’t recommend to the hiring manager.
lordnacho666@reddit
Attitude above anything. Interest, desire, motivation.
Often first job people are not even adults yet, and you can easily fail them. I had a guy at work who couldn't wake up on time, for instance.
But if they do the baseline professionalism, see how enthusiastic they are.
People forget that software is very different from most jobs. You can work at it all your waking hours, there's nothing stopping you from learning at home or on the train, like there might be with industrial equipment. This means the guys who get good at it are the ones who dedicate a lot of time in their youth.
apartment-seeker@reddit
...
No_Structure7185@reddit
yeah like.. didnt they go to school?? waking up early enough to not be late is smth you learn as a 7 year old ...
lordnacho666@reddit
Not only waking up late, couldn't send a message to say he wasn't going to be covering in the morning.
Sad way to throw out a top 1% job.
sparkinflint@reddit
serious question, why does that matter? you guys got morning stand up or are you guys on ops?
Which-World-6533@reddit
If someone can't consistently get up on time for someone that is giving them money to do so indicates a major problem with that person.
By the time you enter the professional workforce you should have sorted out such a basic problem.
sparkinflint@reddit
which is why I clarified whether he was being paid to code or show up.
Variety-Unique@reddit
You failed to understand it’s about what the team agreed to, not your personal preference
sparkinflint@reddit
I failed to understand? Why do you think I'm asking? Are you stupid or are you unable to read?
Simple-Box1223@reddit
Bring reliable is one of the most important aspects of any job, of course it matters.
lordnacho666@reddit
Yeah we need to be running the models when the market is open, so people have to be around to check on things. It's not just pure coding.
apartment-seeker@reddit
Jeez, this was at a FAANG or hedge fund?
lordnacho666@reddit
Prop trading firm
Rain-And-Coffee@reddit
We had a guy who “lost his cat” every morning, so he wasn’t constantly late. It became a running joke.
apartment-seeker@reddit
I hope his excuse was not true, for the cat's sake :(
trippypantsforlife@reddit
I've seen one as well. Unfortunately, they do exist.
dexter2011412@reddit
Sucks to be my depressed self lmao
Any-Neat5158@reddit
I'd honestly consider attitude and technical abilities more or less evenly, but if anything attitude slightly more.
You can teach a pleasant, fun person to work with the technical parts of the job and you'll likely have a far better time with it than trying to teach that rare young rockstar of a developer to not be an asshole and massage them into someone who isn't insufferable to work with.
First just talk to them. Can you have a conversation with them? Ask them what they are passionate about and let them talk about it for two or three minutes. Then maybe try to work in a disagreement (reasonably). How do they handle the disagreement? Do they get nasty and defensive or do they handle it respectfully? In about five minutes or so you can get to the "is this person someone I'd even want to work with" stage. That is test #1
Then what I'd look for is a baseline of competency. Are they even in the ballpark of technical ability. Maybe they didn't get everything right. Maybe they had some harsh wiffs. But is there anything there to suggest they have a chance at performing. Expect them to be nervous. Expect some "this guys looking over my shoulder as I piss" type jitters. I'd be looking to see what kinds of questions they ask. Light design / solutioning even if only at a pseudo code stage.
These are juniors. The expectation is early on they will be net negatives. I'm looking for people I would be able to work with, who won't be toxic to my team, and have at least a touch of the technical chops necessary. The rest comes with time.
Imaginary_Maybe_1687@reddit
I'd value technical abilities even less. They cant be a potato, but anything else will do.
It think willingness and ability to LEARN is much more key. And that goes to learning technical skills and soft skills as well. YmIf they can learn, they can become good later. If they cant, then they'll stay like this far longer.
Fearless_Imagination@reddit
I'm a bit late to respond, but oh well.
I'll go a bit against the grain here, because many answers here are some variation of "you can teach skills but you can't teach attitude".
Which is all well and good, except sometimes... you can't teach skill. I've had the misfortune of working with a very nice person who simply could not keep up on the technical side, despite our best efforts to teach.
That became a source of frustration for, well, everyone.
And attitude can be taught as well. That might actually be easier to teach than technical skill, though it depends on the person. And teaching soft skills like that is not part of the average developer's skill set. But it also doesn't necessarily need to be you who teaches that. If you have a junior dev who is technically competent but has some kind of attitude problem, you could also for example take it up with your scrum master (assuming you have one) and ask them if they can coach them. Obviously you should do this before you need to make a decision on who to hire to see if their attitude actually improves.
What I personally value most in junior devs is their ability to learn and critical thinking skills, because I can't teach those things - or at least I am not willing to put in the effort needed to teach those things. You're not hiring these people to be your friends. You're hiring these people to do work. That doesn't work out well if they end up generating more work than they complete.
Ultimately you just need to ask "who would I prefer to work with for the next 5 years?". And that probably depends more on your team/company culture and personal preference than anything else. One reason I'm going against the grain here is that I've realized that, personally, I prefer to work with a competent jerk over an incompetent nice person. But you might have a different preference. And that's fine - you will be the one who will be working with whoever you decided to hire, not me.
If it's not obvious who you'd prefer to work with at the end of their evaluation period, which might well happen if they're both likeable and of decent skill level, it will be a difficult decision. But also not a decision you need to make alone - assuming there are more team members, you can ask them for their opinion/insights as well. I wrote before that you will be having to work with them rather than me, but obviously that goes for the rest of your team as well.
NeitherCoffee5808@reddit
I have been through this process a few times, aside from all the comments already - the ability to unblock themselves is a big one.
Problem solving is not always known, and they’re going to need to know how to unblock themselves - whether it’s through Google, Asking for Help, AI Assistance or Book, etc
thekwoka@reddit
Thinking and attitude is generally more important that skill.
Like mistakes happen, but they shouldn't make the same mistakes twice, and the mistakes shouldn't be just not even thinking.
No-Economics-8239@reddit
So, are they currently interns, or is this an interview situation?
Traditionally, an evaluation comes with a template to compare against. A list of responsibilities they will have, and a list of skills they will expect to deploy. This is usually tied to what role they will be expected to fill.
Ideally, you will be given the time to work alongside them and see them in action for yourself. Have them work on expected tasks and what how they perform. Ask questions about what they are doing and why to gain insights into their thought process. If they don't know how to do a task, walk them through it and see how quickly they pick it up. Notice what, if any, questions they ask. Are they careful and inquisitive? Bored or indifferent? Reckless, inattentive, or distracted?
For juniors, you aren't evaluating what they know so much as how well and quickly they can learn new things. How well do they search for information on their own? What documentation is available for them to utilize, and how well can they take advantage of it? Be mindful of the difference between poor documentation and a poor student. How do they handle missing or incomplete information?
For me, it is all very subjective. There are no formal tests they need to pass. I'm just looking to get a feel for how well they will fit on the team and how much effort will be required to get them up to speed and independently productive.
Royal-Shape-9244@reddit (OP)
Yeah, they're both interns now.
seventyeightist@reddit
Do they already know that there's only one job to be hired to? That's gonna determine how you approach that conversation with them.
Royal-Shape-9244@reddit (OP)
Yep
quypro_daica@reddit
People often emphasize the importance of attitude, but it’s essential to evaluate these categories within a professional context. They are frequently mistaken for informal contexts. Some cannot even distinguish between the professional communication with being good at casual talk. As for me, the most important one is ethics, because as long as their ethics are strong they will try to fulfill their responsibility
evergreen-spacecat@reddit
They should be curious and engaged. Also they show show some level of understanding when you tell them things.
siammang@reddit
Is he/she willing to learn? Not an asshole?
Which-World-6533@reddit
We run a Squid-games for coders.
Last one standing gets to keep their job.
For some reason we have problems recruiting Juniors. Must be the market these days.
Royal-Shape-9244@reddit (OP)
Damn market! Thanks Obama.
CartographerGold3168@reddit
ah boomer
EzekielYeager@reddit
Amazon? Heh
CartographerGold3168@reddit
have they learned?
did they try to solve the problem themselves? even over some lousy AI things?
are they improving?
at the very last: do you want to work with them?
its really simple
Dreadmaker@reddit
Big one for me is attitude in the face of adversity especially, and also natural curiosity and desire to learn.
Really really big one for me is: if I explain something to you and you clearly understand it and get it right in that context - do you forget? Do I ever have to explain that thing again?
The best young devs tend to not need a second explanation after they get it the first time - they get the concept, they’re curious enough to dig deeper, and then that’s good - the next questions will always be a step forward, not a step back.
Note that I’m qualifying ‘after they get it’ because for sure it’s possible with complex stuff that they don’t fully understand the first time - that’s fine. It’s once the lightbulb has switched on once, how many times do you have to re-explain.
Great barometer here is screwing up a basic rebase. It happens when you don’t know git. That’s fine. But if it keeps happening - are they consistently not pulling before committing? It’s things like that - mechanical, simple things that the best ones will get on the first time.
Natural curiosity goes hand in hand with that, generally - at least in my experience. They want to understand the why, and that drives them to learn faster than anything else.
And yeah, they have to be able to gracefully take feedback, or else they’ll be out of there real fast, irrespective of skill
pathofnomad@reddit
Weighted sum of curiosity, aptitude, passion, empathy and your standard business skillset like professionalism, time management, communication and the likes.
The core thing to remember when assessing any junior position (not just in software) is you are forecasting where they will be in 6 months, 1 year, 3 years, etc. from the time you've made your judgement. This means factoring their ability to be mentored, how they communicate, if they seek out help and what for reasons, how fast they learn. Also more subtle and difficult to measure things, like if you and others enjoy working with them, how they contribute to team/company's culture, how passionate they are, etc.
There's not a single right answer unfortunately, just remember that you should weigh the technical skills and soft skills against each other, as heavily lacking in either will mean they become a burden to their team.
waterbear56@reddit
Are they professional? Do they show up on time and leave on time. Do they communicate when they have a problem they can’t solve? Do they understand deadlines? Do they send effective chat messages and emails? Or are they saying stupid things In front of the boss making the team look bad?
Secondly: do they show intellectual curiosity? Are they learning and asking for interesting work? Are they passionate? Do they show they care about their work output? That they want to do a good job? Or are they simply going through the motions?
Note: I personally don’t care how technically proficient a junior is, nor how productive they are in a two week timespan. I care about how productive they can be once they are trained (which implies that they need to be trainable).
g2i_support@reddit
Congrats on the promotion! Focus on three key areas: how they approach problems (do they ask good questions and break down tasks logically), their communication skills (can they explain their thinking and ask for help when stuck), and their growth mindset (do they take feedback well and show improvement). Give them similar small tasks and see who delivers cleaner code, meets deadlines, and collaborates better with the team - those soft skills often matter more than pure technical ability at the junior level :)
Direct-Fee4474@reddit
Do you have clearly-defined expectations for engineers at different levels? If not, start there so you can avoid nepotism concerns.
jonnycoder4005@reddit
Curiosity is my number 1 metric. If they aren't curious and asking questions... nope.
thewritingwallah@reddit
How I test junior devs.
Step 1: I look for proof that they have coding skills. I mainly look at GH and LI. I almost never look at portfolios or resumes
Step 2: a 60-90 minute pair programming interview on their own project
Step 3: If OK, I send an offer
Thats it
tomqmasters@reddit
Eh, it's usually pretty obvious.
yodog5@reddit
You watch their output, and attitude. I personally weight attitude far greater than output. Come up with two junior projects, and present it to them. Don't think everytning through for them, and give them some freedom to make choices. Compare the output and attitude during the project. Pick the best.
Dave-Alvarado@reddit
All of this, and I would add "good at asking questions" to that list. There's certainly a middle ground between asking too many questions (probably in over their head) and asking too few questions (either a know-it-all or afraid to look like they don't know something). I kinda want to see somebody who is curious, is willing to try answering things themselves first, but won't spend all day stuck on something I could answer in 5 minutes.
prshaw2u@reddit
What do they say their goals are. Are they doing things in their career towards those goals. (or are they just good at having the right answer to the question but don't actually follow it).
Their attitude towards what they are doing, do they enjoy it or is it just a job.
BomberRURP@reddit
Attitude and willingness to learn. I wouldn’t necessarily focus on their current abilities vs their potential.
I don’t expect juniors to really make meaningful contributions off the bat, as much as I expect them to grow and eventually make real contributions