I spend a lot of time talking about the challenges junior developers face when they are trying to break into tech. And honestly, there’s probably a whole book to write about this, a whole chapter on how most education (university, bootcamp, and online paths) doesn’t prepare new devs in the ways that they need to, how junior devs cost companies money, about how some companies let others mentor junior devs just so they can poach them with huge salary increases, about how creating a system of training and transition from support roles to developer roles could be a better way to approach the issue, about how talking more openly about it and about how trying to think about how to flip the hiring process on its head is a good place to start.
I’m not going to write about any of that. I’m just going to point out some of the problems juniors are facing and suggest where we might want to start rethinking this process.
- Having junior devs write code that goes into your codebase without paying them and without making that clear during an interview.
An interview is not an excuse for free work.
Asking junior devs to do work on your projects with no intention of hiring.
Interviewing a ton of juniors just to figure out who you can get for the least amount of money. (Tangent: when I lost my job during COVID, I interviewed for a position. I did the best on the take-home test and was offered the position. But the catch was that the founder offered me $30/hr and told me that she was hoping to get me for less of an hourly wage since I was more junior and then I could work more hours.)
Posting a job and interviewing without a real commitment to hiring.
Crushing a candidate’s soul in an interview–some of it is toxic culture, and some of it is trying to check their resilience—that is not what that does—to make the candidate feel grateful for being offered a job.
Portfolios don’t always capture what you’re looking for or are mixed with other people’s work or are the same projects over and over and over (to-do list anyone?). New tangent: I think that being able to communicate code, ask questions, and talk about process and approach can be a better way of judging a candidate. So even opening up one of their projects from GitHub or portfolio and asking them to walk through it and talk about the process, and ask what they would do differently, where they were challenged, etc. could be as useful.
Giving a coding challenge doesn’t ensure you’re receiving a candidate’s work. I’ve heard hiring managers say that they’ve hired ppl who have done well on take-home tests, but couldn’t keep up with the job or couldn’t explain concepts at work that they applied in the take-home.
Part of this whole problem is that being a junior looking for a job is a rat race. And everyone knows it. We are exploiting desperation by over-requiring and having unreasonable expectations in interviews. With a ton of juniors trying to break into tech, a ton of companies without an honest interest in hiring, and then juniors githubs stacked with multiple 4-hour take-home tests, spending 40 hours a week trying to find a job, and frequently for months, there’s a boat-load of problems. And it’s a catch 22 because juniors need more experience. How are they supposed to do that when they’re spending 40hrs a week trying to find a job? These circumstances do not mimic the job.
I don’t have a solution here. I just see the problem and the frustration and know that tech is losing good people because most of it isn’t even trying to figure it out. In a sense, this model is survival of the fittest, and I’m not okay with that.
What I want is maybe idealistic. I want to see people and not candidates. I want a clear recognition that each of these people has a life and responsibilities. I want to see the value put on communication. I want to see people and organizations who have the ability to mentor and support to do it. I was lucky to get my first job as a developer. I didn’t have a take-home test or a whiteboard interview. I had a conversation. And that won’t work in every scenario, but I’ll tell you what, seeing the person in the interview is a good place to start.