Ask HN: Is no one hiring junior devs?

61 points by ianbutler ↗ HN
I'm a senior dev but I'm in a position where I happen to know a few junior devs through my gaming hobby, after talking with them it seems like they're having a hard time.

I know my company hasn't hired juniors for over the last year at least, and that seems to be the same at a lot of places. I've been talking with those juniors recently and most of them are having a hard time getting anything.

This is going to make the senior dev situation worse in a few years since there doesn't seem to be any pipeline to make new ones.

157 comments

[ 4.1 ms ] story [ 202 ms ] thread
I am, send them my way!
How?
I mean, if this was the entrance exam, you failed it. It's really not hard to work out some way to contact them, and what entity they're probably hiring for.

(OK, that was snarky given that you're asking on behalf of people you'd like to recommend, rather than being an applicant. Sorry.)

I'd love throw my name in the hat. Where are you taking applications?
Add a throwaway email to your profile!

(For the sake of whoever else might want to respond)

> This is going to make the senior dev situation worse in a few years since there doesn't seem to be any pipeline to make new ones.

What situation is this referring to?

That fact the senior devs can make 500k a year.
As a senior dev, I don't see the problem with that. If anything the number is a bit lower than it should be.
A tiny number of them that live in America and work for FAANG can make that. Most don't make anywhere near that.
Lack of enough humans to be senior devs, with many companies having tons of vacancies. They're saying that you need an influx of working juniors who become seniors, but if everyone is only hiring seniors...
My FB/Instagram keeps showing me that pretty but loud woman about learning to be a "Front End" or "Back end" developer. It seems everyone wants to be a developer these days and why not, seems easy.
They sell it as seeming easy, like so many other things. Lots of edutainment going around too

It makes it harder to filter, so the bar is raised a bit

You're getting downvoted, but I've gotten messages from three different people trying to "be in the tech industry" even though they "don't care about code and don't care about understanding it" and just want to get to "six figures as quickly as possible". Not joking.
Yeah, I know a lot of people who have no interest in tech besides the salary. And it is so obvious in their resumes.
It’s a whole new world now for junior devs from what it was 10 years ago. The market is absolutely flooded with young CS grads, and self taught/bootcamp devs are facing unimaginable competition for entry level roles as a result.

We are still hiring plenty of juniors, but they are almost exclusively CS grads at this point. I honestly worry that software is going the way of law and finance, where credentialism is rampant.

On average, the CS grads we hire are so much further along in their journey than a bootcamp dev, yet the starting salary asks are about the same. I know there are some organizations that are a bit more desperate for anyone who has the capacity to learn to code, but we also have been exclusively hiring CS grads with far better results.
you're absolutely correct. a colleague working on getting all the certifications he can get was telling me how his boss explained that is what the consultancy actually sells.

this seems to always happens, is this the commoditization of skills?

All work is done with some kind of a redundancy: no particular individual's skills are permitted to really move the scale/balance. All work is done by teams; only the whole team matters such that the individuals are replaceable across all teams.

Any team member can fuckup, drop the ball, get hit by a bus such that the work carries on unimpeded.

Every person and their dog is headed to bootcamp now or is taking Udemy courses.

One of my companies gets people who don’t know what Git is interviewing.

After a while, yeah, trying to filter through all the crap becomes too much work and we rely on degrees and other hard to obtain stuff.

It really depends on what types of problems you’re looking the devs to solve. Sometimes having a self-taught or bootcamp junior is not going to cut it. They lack so much theoretical knowledge that they will need constant supervision and guidance to not screw things up or make really bad decisions. Knowing a programming language is the least of the problems. I’ve seen so many self taught devs not even understand something basic like what a race condition is or trying to do something stupid like parse XHTML with a regular expression (XHTML is not a “regular language” you’d immediately know this is impossible if you studied CS and wouldn’t even attempt it).
Which is odd, because a reasonably intelligent person could spend a month on the first part of Sipser[1] and get all the theoretical computer science they'll probably ever need to work in tech. The latter half is quite interesting too, but not only has knowing what EXPSPACE is and what its properties are never come up in my career, I've never even heard of it coming up in industry at all.

[1] https://www.goodreads.com/book/show/400716.Introduction_to_t...

Actually the other part is everyone wants to work from home and training juniors remotely is just too hard.
I wouldn't say "hard" but I would definitely say different.

Even as somehow experience dev, getting on board in a new team is quite hard if everybody is remote.

"Different" is it. We've onboarded fully remote interns successfully at my company, so it can be done and done well. I do have to say, however, that my company's onboarding experience is, in my experience, absolutely top tier for the size of the company (Series B, ~100 employees), but that's just because someone decided a year or so ago that they were going to put in the effort to make it so.
(comment deleted)
My previous team had zero problem onboarding people remotely. The steps are extremely simple:

1. Have a collaborative culture. This is difficult at some places. But an environment where people are free to spin up zoom meetings and ask questions goes a long way. RTFM culture is the worst. Yes there are devs who don't bother reading the docs, but I find they often don't know how or where to look.

2. We had watercoolers in the afternoon. People could just chat. It may seem like a hugely ineffective process BUT... about 30%-40% of the time it would be about work. Knowledge would be distributed to multiple people, social bonds would form, and blockers would often be resolved. This led to high trust teams with multiple SMEs some of whom were "JR" devs.

3. README or wiki. Currently working at a FAANG company and several repos have no README. Wiki's are out of date. Knowledge is fragmented. I don't blame other devs, but it's kind of insane how much technical debt there is.

> Have a collaborative culture. This is difficult at some places.

Yeah, because that sucks for the senior engineers who are expected to spend 100% of their time mentoring junior developers, 100% of their time attending status meetings, 100% of their time closing JIRA tickets and the other 100% of their time fixing production issues.

I would agree, but if you're mentoring right a lot of those problems get delegated to the junior engineers - not status meetings though.
Also seeing this problem, I have friends in dire life circumstances trying to make a better life for themselves and their families by studying on top of a full-time job and I've not had luck trying to get them referrals.

One of them is a mid-30s handyman who turned out to have one of the best knacks for UI/design I've seen.

It's a shame because he's a very decent junior React dev that'd be a great combo UI designer but can't find an in anywhere

I feel like you've really got to do something to stand out or make connections

Has he considered putting up a portfolio on a personal site or Dribbble and linking to it on his resume or LinkedIn? I’ve found it to be the highest signal thing, above education, work experience, etc.
Huh, the Dribble thing is a good idea, I'll pass that suggestion on
I believe this largely has to do with the push for remote and that juniors do in fact need guidance in the beginning of the carreer. My brother in law just started software dev through a bootcamp and he got hired, but only with an onsite requirement. Having lead people myself, this makes perfect sense.

This however does not seem to be the case with smaller companies that actually do have offices, in my experience.

Maybe we will see some proper differentiation where mentorships comes with perks to offset having to lead people in person.
We hire Junior devs and its hard working remote with them. They can get stuck for days without knowing if its something they should work out for themselves or something they should ask about.

I'm happy to travel and work together but senior manglement like the look of their travel budget post covid.

Another contributing factor in my opinion is that companies would rather outsource entry level dev work to foreign countries with cheaper labor. I have a feeling this will backfire in the coming years as companies struggle to find sufficiently experienced senior devs.
This probably wasn’t even considered a few years ago, but now that most companies have figured out their remote workflows it’s just another line item.
No, people aren't hiring junior devs, and haven't been for a long while. What they are hiring is people who have seriously built stuff; not "a webapp", but stuff in specific niches where they've essentially got past what would otherwise be the first year of industry training on their own.

And even then you have to hustle. Get yourself tickets to conferences (if you've built stuff, many niche conferences have free/subsidised tickets for open-source devs) and talk to people who are hiring - not the people who have the booths, but the people in the audience.

The idea that most people can just apply to jobs cold and eventually get one is essentially a lie, ime.

If you're targeting well paid jobs at interesting companies, maybe. But we're at the point where practically every municipality, every government subdivision, and every corporation has IT development needs.

Developing and maintaining these boring systems is the primary source of employment in my corner of Europe.

In my experience, the companies that are developing these things are either about 5 developers and can barely keep the lights on for them - so aren't hiring - or have standardised their employment procedures so much that they probably won't hire you unless you hit every point on the job listing (including experience in arbitrary tech that only they and 3 other companies use) and can talk about your personal SWOT analysis and a bunch of other stuff that is more about signalling a specific cultural background than ensuring you're able to do your job and learn quickly. If you have that cultural background, cool, if not...

I could not get hired through most companies' cold interview processes - not "we make internal widgets in C#" companies, not "we're changing the world" companies. The most competent devs I know can't get hired that way. The only way that it's worked in my experience is to get someone internal to the company to champion me.

> If you have that cultural background, cool, if not...

This sounds like another version of racism to me.

I generally agree with most of what you said but I also think cold applications work.

I'd like to use the cliché "finding a job is a full time job."

Many people interpret this to mean "jam as many keywords as possible into a crappy resume and spend all day spamming it to every job posting you see." That's not gonna work well for juniors (although the most dedicated will still find something).

Applying to a job is more complicated than that. First of all, you need to understand the job you are applying for. That might involve researching the company and the project. You should make sure you are comfortable using the tools listed in the description and performing the role described. If you aren't, you need to practice before applying, which usually means building something.

When I started job hunting after graduation, it took three months before I sent out a single application. That's because every job posting listed responsibilities I didn't know how to perform or tools I've never used. Of course I'm not going to apply for Angular Frontend Developer if I've never built any frontends using Angular, that would be unprofessional. But after I made a couple simple projects in Angular, I would apply to these roles and got callbacks even from postings asking for 2-3 years of experience.

I wish I could say I had the same experience. I don't know what to say. My experience of applying for jobs that were well within my skillset, where I had projects showing off my non-industry-specific skills, was... either silence or being chucked out of the pipeline after the first interview or two, repeatedly. I'm not the only one.

Maybe this works if you live in a tech hub where there's venture capital to spend on masses of junior devs?

My experience is similar. All my carefully crafted resumes with cover letters were not even acknowledged. So I had to resort to resume spraying. After applying to 100 openings or so, I got one phone call which led to the interview and a job offer. I was not a great match for the job but it worked out fine.
Same experience as you. I did eventually find a place, but it was not with a very good employer. Since separated. I remember getting tons of flak in theses posts. My CV is actually very good. No degree is a much larger problem than most people want to admit.

I am well past junior dev stage. Still no bites.

>Many people interpret this to mean "jam as many keywords as possible into a crappy resume and spend all day spamming it to every job posting you see."

But this is exactly what landed me my first job back when I was a junior. As someone with no experience I could not afford to be selective and the more I spammed my CV the more interviews I was getting. It also works because the person who does the initial screening is usually not technical and is actually doing nothing more than matching the keywords.

> First of all, you need to understand the job you are applying for. That might involve researching the company and the project.

My experience is that the average job posting has close to no information about the project and the company does so many different things that it's impossible to get this information through your own research. Even if you do find some information it is utterly meaningless because this is NOT what the company is looking for when posting a job advert and this is NOT what the average candidate ends up doing. The company not looking for "someone who understands the company or project" - they're looking for a software engineer. That's it and nothing more.

>You should make sure you are comfortable using the tools listed in the description and performing the role described. If you aren't, you need to practice before applying, which usually means building something.

I've learned most of the tools I know on the job. Trying to learn something you don't know for the sake of the company that might not even give you an interview is a waste of time. Either they won't mind you learning on the job or they want someone with actual job experience. Large companies are also notoriously slow when it comes to organizing everything you need to do your job so the first week or two are usually filled up with nothing which is a perfect opportunity to learn something new.

> What they are hiring is people who have seriously built stuff; not "a webapp", but stuff in specific niches where they've essentially got past what would otherwise be the first year of industry training on their own.

I have no idea what this means. What makes web apps not serious?

What I mean is that putting together a webapp without learning about something /other/ than how to put a <pick-a-technology> app together in the process isn't going to have anyone interested in hiring you.

If in the process you learned about something you could actually go up and do an interesting lightning talk about, that'd be worth it. Maybe you learned something about a specific industry and the challenges that developing something for it has that other industries don't have - maybe you accidentally spent weeks/months deep-diving into the technical details of HTTP/3 or some browser API and worked out you could do something that nobody has done before outside of Google.

Going to second this. I'm a self-taught (non-bootcamp) dev who's making a serious webapp (without the quotes). It's serious in the sense that it's a real product of a real company (my own) on track to make real money from real customers.

If you won't take that seriously, then what?

> on track to make real money from real customers

I'm sorry but to inject a dose of reality, that's a very low bar.

Can you elaborate what would constitute high bar? Another Google or Facebook? Or maybe hadron collider? Why does making money mean low bar to you?

The guy is making a web app which other people want to pay for, looks like just about the right height for a bar, and I'd say not low at all.

I know technologies A, B, and C well-enough to use them to make a thing that is good enough for people to pay money for, i.e., not a bootcamp copy-paste thing.

"Tech Company" is looking to hire someone that knows technologies A, B, and C to use to make a product that's also intended to make money (allegedly).

If that's not good enough, I ask again, what is? What do you really want in a prospective junior developer?

Agreed. Plus, isn't that like 80%+ of what we do today?

I realize some people do cutting edge programming, but the bulk of us probably spend much of the day shifting strings and filling in model fields and chasing webpack configs. Or maybe I'm just a sap and everyone else is doing cool stuff idk.

(comment deleted)
Nope, you're not just a sap. There's plenty of "cool stuff" to find in what you describe, at least that's been my experience, but I'm like you - I do not try to market myself as doing programming "outside of the norm" - my skills are full stack Web development and I market myself as such.
My city used to hold at least two big, good, dev conferences a year. Neither did anything this year, even remotely. I'm not sure how new folks are supposed to get started in this environment. Very difficult. But I would add that networking correctly at a good university, by building connections with young, industry-connected instructors, was how I got my start. Ironically they were impressed by my attendance at these conferences.
It was like this in the last recession, junior profile were shunned because senior profile were available on the market.
This is what i am seeing. companies are now eyeing seniors for the same price as juniors just a few months ago.
don't say you're a junior dev
We are. Most roles can be remote even if not explicitly called out: https://finra.wd1.myworkdayjobs.com/en-US/FINRA/jobs?jobFami... Feel free to contact me if any of them need a resume put on top of the stack.
> We are.

Are you sure? Your link lists 32 jobs. A very large majority explicitly qualify themselves as "senior", "lead", "staff", or "principal" positions. There's also a "director".

There are a handful of postings that don't ask for seniority in the job title (and some are duplicate titles, strongly suggesting that each posting is a single opening). But all of them require at least two years of industry experience. Where are your junior positions? Did you mean to link something else?

That's all IT roles. Anything with no prefix (e.g. "Developer") is a junior role.
> Anything with no prefix (e.g. "Developer") is a junior role.

You're not eligible for "Developer" without two years of industry experience. That's not a junior role.

You can get two years of experience as an undergrad. I don't take junior to mean "zero experience".
Not a single Junior position listed. If you're willing to hire juniors, maybe don't put "Lead" and "Senior" on every single position.
Hey man, I didn't design the page. That's the tightest filter I could get. Here's an example: https://finra.wd1.myworkdayjobs.com/en-US/FINRA/jobs/details...
Myworkday is a cancer HR system. Terrible filters and companies who use it generally suck at writing good job descriptions for good talent.

Take a look at this listing, for example. This is something I would actually apply to, since this is my core competency.

https://finra.wd1.myworkdayjobs.com/en-US/FINRA/job/Rockvill...

1. Is it an analyst position or a software developer? It only requires a 'Basic knowledge of programming languages, including SQL' . So is knowing SQL enough? What other languages are used? No info.

2.

> Document requirements, conduct data analysis, and produce user documentation.

This is a Business Analyst requirement. Software devs rarely documents requirements in the project planning phase. If they are, it's a red flag for your org.

3.

> Strong project management skills

So do you need a project manager then? Yes, there's some overlap with a BA, but generally not with software development.

4.

> Develop reports, charts, graphs, and process maps and maintain data files.

Ok, so Data analyst then? Hold on, I thought you needed a PM. Now you need a BI Analyst.

5.

> Bachelor’s degree in Computer Science, Information Systems or related discipline with at least two (2) years of related experience, or Master’s degree in Computer Science, Information Systems or related discipline with one (1) year of related experience, or equivalent training and / or work experience.

Wait, I guess you really need a software developer. Or do you? Or is your HR just using this requirement as a general filter against self-taught people?

You're welcome, by the way. If you're wondering why you're struggling with finding top quality candidates - maybe show this post to your HR and tell them to stop lumping 4 jobs together into 1 listing. It really shows that you have no idea what you're looking for and are just looking to snatch up young talent so you can underpay them and hope they are naive enough to overlook all the red flags.

Coming from the financial services industry, I can say that this is a fairly typical job description for an entry level role, and as an analyst I did need most of these skills. The term "analyst" is usually the 'pay band title', while software engineer is the "functional title". Usually the progression there is something like: analyst -> associate -> vice president: equivalent to a FAANG-like progression of L3->L4->L5. This is of course complicated by the fact that 'analyst' is a title with a very different meaning if you're in, e.g. the investment banking.

These requirements are vague, but if I had to guess, this role is most likely heavy on data extracts and reporting (hence the SQL in point 1), and expects you to be able to work with your business counterparts to understand what's wrong/right with your reports. The charts and graphs point is probably more like 'basic Excel knowledge to manipulate the CSV you pulled from the sql database'. PM skills is probably a roundabout way of saying "can you estimate how long a feature might take to deliver". This role is most likely "big investment bank is required by regulation[1] to keep specific positions and send us their trades daily, write a query to make sure they're netting out to zero and send us a daily report".

Do you need a masters in comp sci to perform this role? No, probably not. I think it's more of a "well if you have the hard skills in programming, we can teach the other parts'. In my experience, a lot of the people from pure comp sci degrees left financial services fairly quickly out of boredom, whereas people with information systems degrees seemed to thrive based on the higher need for soft skills. [1] e.g. SEC's FIN41 https://dart.deloitte.com/USDART/pdf/793a25c7-3f31-11e6-95db...

Typical but shitty job description, which was the entire point of the thread.

If you write shitty job descriptions, mention nothing about benefits and use a shitty HR system - you will not get high end candidates on average and can only hope to get lucky or keep the outside position open for years.

You and I know what the job entails, but some fresh grad won't. Nor is comp-sci in ANY way necessary for performing the duties in the job.

I don’t know why anyone would hire a junior. I was an utter loss for the first two companies I worked for.

They basically paid to train me and then I went off to a far better paying tech company that doesn’t hire juniors.

In a highly liquid market like tech, you can’t really afford to invest in people as they cost the same as just hiring off the market to retain/replace.

Sigh. I just had this experience a few months back. I went out on a limb, hired a junior guy, and after six months of getting him up to speed on a fairly complex fintech application he resigned and went to a a random web development job that paid more.
I was that person. Twice.

Not six months, but about a year for each.

The problem is that junior devs increase in value very rapidly in their first 2-3 years, much faster than any company is willing to increase their salary.
The solution is to pay more.

  > "and after six months of getting him up to speed on a fairly complex fintech application he resigned and went to a a random web development job that paid more."
Sounds like he wasn't the brightest

The immediate payjump from hopping from bottom-of-the-rung where you're at to some random CRUD web dev job, I'd wager is far outweighed by the potential returns for senior experience in Fintech, specifically.

That's a much harder niche to get into than building CRUD apps from what I hear.

Who wouldn't leave for more money? What did you expect? Did you give him a counter-offer? Now that you've invested time into him, he should be worth more to you as an employee. Now you get to suck it up and train someone else, and spend hours interviewing replacements. Probably would have been cheaper to match the other offer.
I’ve found that counter offers don’t really work. If a person is willing to resign it’s best to just let them go.
This is unfortunate to hear, I'm still crawling through a chemistry PhD and I was hoping I'd be able to transition into software and get as far away from touching any more glass as possible.

Do you think the situation is different in more specialized niches (i.e. would I be able to reasonably compete with a CS grad for a job at a biotech firm?)

I finished my PhD a couple years ago, and my PhD friends that transitioned to software went into ML. Teach yourself some tool like Pytorch and some basic CS skills. ML’s barrier to entry is a PhD, but it doesn’t particularly matter which field it’s in so long as you can sell it right and pass the technical interviews.
> Do you think the situation is different in more specialized niches (i.e. would I be able to reasonably compete with a CS grad for a job at a biotech firm?)

If you want to go biotech and software, I'd say try to pivot into a data scientist position

> Do you think the situation is different in more specialized niches

Yes, but honestly it really depends on what you want to do.

As an example, I'm currently starting to hire for a small tech company in the life-sciences space. A candidate with real lab experience would be significant differentiator though its not super necessary for the position. On top of that having a PhD is a strong signal in favor of a candidate. That being said, given my position I would likely just pick a more-technically competent candidate if one is available, though that won't be the case everywhere you look.

The closer you get to the bigger biotechs, I'd imagine the more your PhD will be worth in terms of differentiating you as well. If you need to talk to scientists on a daily basis, you'll need to know how speak the same language, and thats not something you can get from a bootcamp.

My best advice would be to learn a breadth of technical skills and to start honing the ones that make sense for you personally. Don't let any tell you "you need to focus on X to be successful in biotech." There is a lot of innovation going on in the space right now, and if you look in the right places I'm sure you'll find that niche that makes sense for you.

I guess it depends on what kind of job at a biotech firm? SRE isnt the same as a data science/ML job...

I did something similar to what you describe ten years ago, finishing a chem phd and pivoting to data science (back when data science was still the coolest job around)

My first job was at a big consulting outfit, they hired me no questions asked. I did do ~ 2 years of high-volume DFT calculations on a computing cluster during the phd. Ensure you have some edge that makes it believable that you can operate a linux box/do scripting, and you'll be fine.

Maybe the market is different now, but if I'm hiring people right now, having completed a STEM-ish PhD seems to signal intelligence and perseverance. Just don't come off as an academic know-it-all. Noone cares if you're right in industry, your shit just has to be delivered on time.

I never called myself a "junior" engineer, even at the beginning of my career, that is lowballing yourself at best. You are an engineer with 6 moths or one year, etc... of experience. You need to sell yourself to employers, clients, etc... no one will advocate for your success or a fair compensation. If you are really unexperienced, let the interviewer to assess that fact. No need to lie on your resume or interviews, just don't put yourself in a position where recruiters/hiring managers will have very easy to give you a worst compensation for the same work you would otherwise do at a better rate.
Well said.

Giving yourself the junior dev label just makes it easier for them to place you in an unwanted pile.

this.

people need to value themselves based on how much value they can bring to a company, not if they have x year experience writing js syntax.

We do, but we don't advertise. We get them through networking (some of my best developers we found through word-of-mouth referrals by current and former employees vouching for them). And even more so, we dip into the pool of former interns every year and hire a batch of them.
Another issue is that I've spent a lot of time and effort in the past to train up graduates on our grad program. Previously you would train up people and they'd train 2 years then work for at least 2 years after.

During the boom the last few years, people left after a year or 18 months. Only one stayed a full 2 years largely because he wasn't that great. Honestly can't be bothered any more.

>Honestly can't be bothered any more.

This is an interesting point. For better or worse, the people in the tech world aren't "loyal", and salaries are so crazy they are often looking to leverage their experience into a new position as soon as possible. How do you train people up if you're nothing but a feeder trough for bigger companies?

Expecting anyone to stay 4 years in any 1 place is at best unrealistic and at worst sacrificing their potential for the team’s success.

We shouldn’t be surprised when people fly the nest, and for what it’s worth this happens at even the best companies - people leave to start their own businesses.

What we can do is aim to have them do the best work can, build a good rep for our team, and (selfishly) invest in a strong personal relationship with them so that in 10 years maybe they look back and pay back the favor.

So why aren't employers doing more to offboard folks with grace, kindness, and compassion (and maybe some degree of expected severance given the goal) if they are really "sacrificing their potential for the team's success" when all that's needed is for the employee to realize they need to move on?

Is loyalty to any employer so utterly and completely dead that I need to enter my future employer-employee relationships with different expectations about loyalty after 1/2/4/5 years?

I'm incredibly fortunate to have lucked out at a place that was acquired 2 weeks after I was let go for being in a similar place as you can imagine when someone spends 4 years somewhere without a promotion or any material recognition of that loyalty. So my 4 years was worth something - at least the after-tax value of my exercised and liquidated stock options.

But that's an incredibly risky basis for value gained by staying somewhere vs. value gained by going somewhere else.

Well, I can see how some people might take that the wrong way and interpret that as getting laid off.

And yes - the reality is that companies are non-fungible and every company will have different values, levels of team talent, investment in their team. Taking the same approach to every company you join, i.e. not going in with a goal/plan in mind, is how you get the average/median outcome for everyone at that company. And you should be going in eyes wide open knowing what that outcome is for every company regardless of which approach you take.

It's the same question of why isn't every restaurant great? Why isn't every haircutter great? By definition, that's impossible - some will always be better than others and the goalposts shift.

> Expecting anyone to stay 4 years in any 1 place is

So why would anyone hire junior developers than?

Mentorship is valuable both ways & brand building. Not everything needs to optimize for output.

If you're not at a company that supports those goals...that's a different topic entirely.

if only there was some incentive a company could use to retain employees!
You don't even need an incentive. You don't have to hire people at will. You can make them pay a huge penalty if they leave.
Sounds like good way to filter out your good candidates.
Is it? We observe that candidates are unable to find jobs and employers are unwilling to hire candidates. Does it make more sense to address the employers' concerns, or to accept that, for "structural reasons", there's no such thing as entry-level employment?

A huge penalty for leaving the firm that trained you (within a certain time period) is already the norm in other areas. It's also the entire concept of vesting.

Unless you're talking about the equivalent of at-will employment (as far as salary and benefits are concerned) with the firing/leaving restrictions of a contract, "contract work" is absolutely not equivalent to what employees typically get in an at-will arrangement.

My experience looking at contract work is "yeah, I'm not really interested in being my own benefits manager unless you're willing to pay me $25/hr more to do that work in addition to my regular job".

> Unless you're talking about the equivalent of at-will employment (as far as salary and benefits are concerned) with the firing/leaving restrictions of a contract, "contract work" is absolutely not equivalent to what employees typically get in an at-will arrangement.

I'm not really sure why you felt the urge to say this, but perhaps you should be aware that "contractor" status contrasts with "full-time employee" status, not with "at will employment".

At-will specifies who can terminate the contract and on what grounds. It's not relevant to the contractor / FTE distinction.

Even in a senior only org, it is a constant hamster wheel of training people with the current rates of turnover. One of the few long haulers is rapidly burning out supporting everyone else on the team who is green.
I can respect this, but if people are leaving sooner, perhaps the employer wasn't doing enough to retain them? Is it exclusively the employees' fault?
You mean, a business might have to... gasp... compete with other businesses to retain employees?
> train 2 years >Honestly can't be bothered any more.

Between two years and zero days, there's an awful lot of room to adjust a training period.

This happened in the 2000 crash. There were a lot of people with CS undergraduate degrees that couldn't write a for loop.

A letter from an undergrad advisor was usually enough for the strong coders to cut through the noise.

These days most decent coding academies have relationships with hiring pipelines (check before you enroll!), and write recommendations for the strong students. That might only get you an entry level stepping stone job, though. (A letter from a professor with relevant publications is worth much more than a letter from an unknown coding acadamy.)

> These days most decent coding academies have relationships with hiring pipelines (check before you enroll!)

This may be of limited value; my personal experience with a company that hired from bootcamps was that they hired from just one bootcamp, they were very excited about that bootcamp, and the bootcamp's value proposition to the company was that it didn't admit men.

Get a job as an entry level QA. This is the way.
I have seen this work several times. In many cases, it's easier to change roles inside a company than to switch to a dev role at a new place when you have no developer experience. Starting out in QA is a great way to develop domain knowledge, which can be more important than programming skill in many businesses.
Or entry level Developer in Test (takes no less skill actually, but it's less desirable) or entry level sysadmin or tech support, even helpdesk etc. This is what people were doing in the last recession. If you are good at coding, tech support and other entry level IT stuff at the right company can be a great playground to advance your career, because there is so much opportunity to practice
There is an oversupply of junior developers, especially in spaces where bootcamps and other quick, nondegree training was creating them. I can certainly sympathize with people who saw development as a route to make a living, but there are only so many developers needed out there. Honestly I think the industry did a lot of people a disservice by making it sound like learning basic coding was guaranteed to yield a good job, since that didn’t take into account the finiteness of the job landscape.
> did a lot of people a disservice

Although really, the people who were done the disservice to should have stepped back and realized that if something can be mastered (well enough to do it professionally) by any random person in three months, it wouldn't be a valuable skill. Unless they're so arrogant they think they're just that much better than everybody else.

We sure aren't. I advocated for it multiple times and instead we got given a team in india to outsource excess work to. :(
High chance that team in India will have some junior devs on it though
Depends on skill set. A lot of people suggest projects, conferences, etc but I don't think anything like that works at scale.

From my seat as a staff-level and involved in hiring:

1. The average "junior" is really a code camp graduate with skill in one very, very specific thing. The skill is limited however and typically insufficient to call them a full software engineer.

2. From (1) the pool of code camp graduates dramatically outpaces people with degrees. In my experience approximately 1 in 5 people I've interviewed have graduated a full program. This creates a few problems. Namely, the low-skilled pool is significantly higher which allows companies to be far more choosy. Additionally, the majority of software engineering roles these days are "wide" meaning you may be expected to do work that requires more than the formulaic approach a code camp gives you.

3. Degreed hires are still being considered and generally speaking aren't having any problem getting jobs. Not only is a degree a value signal it generally speaks to your ability to adapt. While the industry has been slamming degrees as not necessary the variance is significantly higher with non-degreed hires.

This all sounds like I am trash talking code camps and I guess in a way I am. My interviewing has given me this opinion. Despite specifically avoiding algorithmic puzzles people graduating these camps are just typically insufficient. I feel bad for them because code camps generally feel like the modern take on ITT and other for-profit scams from a decade or more ago. A lot of these people simply want the money. Understandable. However, it's simply not enough to get your foot in the door without help from the inside.

All of this adds up to the general consensus that hiring is getting harder. The code camp pool is taking the brunt of the lack of hiring, the code camp pool is large, so the noise they make about the hiring situation is proportional to their experience. As for senior devs this is largely a good thing going into a potential recession. However, getting promoted above that position may get more difficult.

a few years ago I had a lot of trouble find a "junior" or entry-level programming position anywhere. eventually I found a remote web developer position. then various family circumstances occurred causing me to temporarily leave the position for awhile to deal with things. this was right as the covid stuff was ramping up. when I was once again ready to work, the developer unfortunately instituted a hiring freeze due to covid, so it was back to the job search once again.

I ended up finding work at my local school district. the two programmers who are in charge of our district of some 12,000 students are both over 50, and they were more than happy to hire me to learn how to keep everything running. it's not a glamorous job, and there's no doubt that my salary, even adjusted for cost of living, is not great compared to many other people who post here… but the benefits are great, and being the future of keeping my childhood school district running on the technology side keeps me feeling fulfilled at work. plus, I have incredible job security going forward.

for any "junior devs" looking for work: I recommend seeing if there's any local government positions like this that are available. my district can't be the only one run by programmers who are closing in on retirement, desperately searching for younger people to learn how to take the reins first. I'm mostly self-taught but even a self-taught level of understanding of SQL was sufficient to get hired—I've since learned quite a bit more on the job but a CS grad should have no problem at all.

Me personally: no.

Before Covid, I had an excellent setup to train developers using pair programming and working closely together for months.

Now, training is impossible. I cannot train a junior dev remotely, and the job is remote.

(comment deleted)
What is the benefit of hiring them? Mentorship takes time away from seniors and code needs a thorough review if not full refactoring.