Most active commenters
  • amrocha(3)
  • trenchpilgrim(3)
  • _heimdall(3)
  • Gigachad(3)

←back to thread

263 points mooreds | 40 comments | | HN request time: 0.001s | source | bottom
Show context
hibikir ◴[] No.45421738[source]
Hiring juniors is always great if you, somehow, have a much better filter for finding the stars than the rest of the market. But if you don't, hiring bad juniors is a disaster: No different than outsourcing bits to a bad satellite office.

So are you actually good at finding the good juniors in this very difficult environment? Can you change your hiring machinery to improve, as most traditional ways have stopped working? Because hiring a lot of juniors that don't work out sure can kill companies.

replies(4): >>45421781 #>>45421872 #>>45422482 #>>45429714 #
goalieca ◴[] No.45421781[source]
Hire one junior per team. Don’t overload your senior staff with OKRs and managerial tasks. Let mentorship and apprenticeship happen.
replies(2): >>45421859 #>>45421956 #
1. throwawaysleep ◴[] No.45421859[source]
I guess what’s the value of the junior there? Why is that superior to just having the seniors have their heads down coding and not being pestered by a junior?
replies(7): >>45421878 #>>45421881 #>>45421905 #>>45421920 #>>45422035 #>>45424270 #>>45430184 #
2. amrocha ◴[] No.45421878[source]
Because the junior grows into a senior in a couple of years and the company is better off for it
replies(1): >>45421928 #
3. decimalenough ◴[] No.45421881[source]
What do you do when your seniors move on or retire?

Also, even seniors are usually more than happy to outsource work they've already done a million times, but that's still new to the junior ("build the Terraform to stand up this cluster" etc).

replies(2): >>45421996 #>>45422042 #
4. jrockway ◴[] No.45421905[source]
There are a lot of projects that involve very little of high level experience and a lot of grinding things. Juniors can be very good at these, and there are probably enough micro-problems that aren't critical that their brain is still being used and they're gaining skills that will help them take on more complicated tasks.

Something I last worked on with a junior engineer was our in-place backup system. I designed it and wrote the tricky part that involves DLL hell in a docker container. He wrote the "list backups", "delete backups", "create backup" CRUD API and CLI. My time was then free to put out fires or design something new.

It's not necessarily a no-brainer to hire and mentor junior engineers like the article says, but it's something you should think about. You will be surprised how much people actually know at job #1, and how quickly they can take on more complicated work that pays back your time investment in their mentorship. Plus, someone probably trained you to get you to where you are today, so there is some fairness in continuing the cycle.

5. komali2 ◴[] No.45421920[source]
Good juniors are cheaper and faster to find. A REALLY good junior will jolt your seniors awake with professional competitiveness as the junior starts finding ways to make a name for themselves - or even just a fresh pair of eyes on the app, new ideas, more familiarity with newer paradigms and technologies.
6. Salgat ◴[] No.45421928[source]
That's fine if you can compensate them accordingly to retain them, but if you're going to pay them senior level in a couple of years, why not just hire a senior level to begin with?
replies(2): >>45421958 #>>45422187 #
7. trenchpilgrim ◴[] No.45421958{3}[source]
Because highly experienced seniors are rarely on the job market.

>The great software developers, indeed, the best people in every field, are quite simply never on the market.

>The average great software developer will apply for, total, maybe, four jobs in their entire career.

>The great college graduates get pulled into an internship by a professor with a connection to industry, then they get early offers from that company and never bother applying for any other jobs. If they leave that company, it’s often to go to a startup with a friend, or to follow a great boss to another company, or because they decided they really want to work on, say, Eclipse, because Eclipse is cool, so they look for an Eclipse job at BEA or IBM and then of course they get it because they’re brilliant. [Replace Eclipse with $HOT_TECHNOLOGY, like AI agents this year.]

>If you’re lucky, if you’re really lucky, they show up on the open job market once, when, say, their spouse decides to accept a medical internship in Anchorage and they actually send their resume out to what they think are the few places they’d like to work at in Anchorage.

>But for the most part, great developers (and this is almost a tautology) are, uh, great, (ok, it is a tautology), and, usually, prospective employers recognize their greatness quickly, which means, basically, they get to work wherever they want, so they honestly don’t send out a lot of resumes or apply for a lot of jobs.

- https://www.joelonsoftware.com/2006/09/06/finding-great-deve...

Most of the best programmers I know have worked 2-3 tech jobs. An internship or entry level job, a cushy job at a major company, and either retirement or a third job that they took because the problem was incredibly interesting and they got nerd sniped. I even saw the "medical internship" scenario happen once; a great colleague of mine had to move to France for his partner's career in medicine, so he quit his job and found something over there.

replies(1): >>45422069 #
8. creakingstairs ◴[] No.45421996[source]
I mean I agree with hiring juniors. I try to push for it as it’s how I got into this industry but it’s a bit of a prisoners dilemma right? It’s best for everyone if we all hired and trained up juniors but one could also defect and only hire seniors.

Besides most companies won’t last long enough to worry about senior talent drying up.

9. _heimdall ◴[] No.45422035[source]
As an industry we can't just cut off the pipeline of future senior devs.

This is the fundamental contradiction of LLMs. The promise today is that the tooling can largely replace juniors, and honestly that may be true.

The hope behind that promise, though, is that the tech will catch up with senior devs before the pipeline dries up and that we have found a sustainable social and economic model before humans truly aren't employable at any meaningful numbers. That hope seems ill placed to me, but I guess we'll see if we develop such skilled LLM or similar tools at all.

replies(2): >>45422287 #>>45429933 #
10. Gigachad ◴[] No.45422042[source]
People only average a few years in a job these days. The juniors are most likely to end up as seniors somewhere else. So hiring juniors who provide negative value at the start is mostly benefiting the industry as a whole at your own personal loss. Which makes it a pretty easy thing to cut.

I know in other industries they have a kind of lock in where they provide free training under the condition that you work at the same company for a number of years. Which sounds bad but I don't see many alternatives.

replies(6): >>45422145 #>>45422726 #>>45429734 #>>45429785 #>>45432462 #>>45443085 #
11. Gigachad ◴[] No.45422069{4}[source]
This might be true if you are looking for some top 0.5% talent to solve the cutting edge most difficult challenges in tech, but for the vast majority of companies building basic apps and saas products, there’s a large pool of talent to pick from.
replies(2): >>45422167 #>>45443564 #
12. abenga ◴[] No.45422145{3}[source]
But you too can hire seniors in the future who were juniors trained "somewhere else". This is the kind of shortsighted selfishness that's ruining most things.
replies(1): >>45422535 #
13. trenchpilgrim ◴[] No.45422167{5}[source]
In my experience hiring, its not just the top 0.5%, more like the top 30-50%.
replies(1): >>45428270 #
14. amrocha ◴[] No.45422187{3}[source]
People aren’t fungible. The senior engineer you’ve trained for a couple years is way more effective than the one that joined yesterday.
replies(1): >>45422898 #
15. nickff ◴[] No.45422287[source]
The problem is that if everyone hops jobs every 9-18 months, it’s not worth training up juniors because the employer will never get to benefit. It seems that we’re in an unfortunate, but stable equilibrium.
replies(3): >>45422490 #>>45425469 #>>45435355 #
16. kogepathic ◴[] No.45422490{3}[source]
> The problem is that if everyone hops jobs every 9-18 months, it’s not worth training up juniors because the employer will never get to benefit.

It is absolutely worth hiring and training juniors. The quality of your onboarding process and documentation will improve. Not only that but a junior will ask questions that senior engineers take for granted, such as "why are we doing X this way?" which can lead to improvements that your existing engineers might not have considered.

Finally, if junior engineers are joining your organisation and leaving every 9-18 months, you need to take a serious look at your career progression ladder and compensation. I have seen way too many companies that have an arbitrary "you cannot receive a promotion in the first X months" HR policy which is just asinine. You know who doesn't have this stupid policy? The company your junior just accepted an offer from.

If your organisation doesn't have the tools and processes to up skill junior engineers into seniors, then it doesn't have professional development for senior engineers and is just a career dead end.

17. Gigachad ◴[] No.45422535{4}[source]
Obviously it's selfishness, but it's a prisoners dilemma where the you just lose if you are the only one training the juniors who then move on to the competitors later.
replies(1): >>45428246 #
18. t-writescode ◴[] No.45422726{3}[source]
Then operate as a manager, leader or company that people don't want to quit.

If people are happy, paid well, with regular cost-of-living raises at minimum, with upward mobility, helpful and useful managers and interesting problems (doesn't have to be an interesting domain. The problems themselves just need a bit to chew on) and the latitude to solve them and grow

They're not as likely to leave.

19. ponector ◴[] No.45422898{4}[source]
But also is paid less than a new joiner.
replies(1): >>45423273 #
20. amrocha ◴[] No.45423273{5}[source]
At most places yeah
21. Yizahi ◴[] No.45424270[source]
Teams are not equivalent in the big or medium org. Some teams are pushing the boundaries (for the corp), some teams are doing grunt work, some teams are doing maintenance, some teams are support for all of those etc. Example - in our company it is often a case when a junior is hired to do lab support or general support, then transitions to a QA team for example, or a junior QA is hired to a steady working team and then transitions to a team doing fire requests and more visible stuff. In the process he acquires both general seniority and a lot of hands on domain knowledge which is complex in our case. Hiring a senior often means skipping only seniority growth, while he still needs a lot time to learn the domain and local quirks. I assume that averaged over years, juniors are still valuable par cost spent. Plus, juniors are sourced from the different pool of people than seniors, meaning more opportunities for a good hire.
22. _heimdall ◴[] No.45425469{3}[source]
Junior devs are just a time suck though. They do require more on boarding an attention than the average experienced hire, but they also bring a different view to the project. I've been surprised over the years by juniors that raise a question or idea that snowballs into a pretty fundament and impactful change, one that could have been raised before but the team just didn't look at it that way.

We also have to remember that if our juniors leave 9-18 months later, everyone else's juniors are leaving too. Churn has a cost for sure, but if I can hire someone else's junior that they put 18 months into then I am still better off.

23. ryandrake ◴[] No.45428246{5}[source]
So motivate them to not move on to competitors. I don't think companies should cynically take it as given that people only last N years, and will leave for greener pastures once they're trained. They're leaving for a reason, so address that reason.
replies(1): >>45430315 #
24. ryandrake ◴[] No.45428270{6}[source]
I think HN's demographic skews young and commenters here vastly overestimate how many of us are constantly job hopping every 3 years.
replies(1): >>45433412 #
25. jimbokun ◴[] No.45429734{3}[source]
Don't vesting schedules accomplish the same thing?
26. smlavine ◴[] No.45429785{3}[source]
As a CS undergrad in my final year of study, a 5-year contract with guarantees with regards to employment, benefits, promotion etc. would appear to me and think would also appeal to many of my peers.
27. nitwit005 ◴[] No.45429933[source]
You're saying the industry, or society in general will suffer. That's an externality. People and organizations optimize for their own profits, not net social benefit.
replies(1): >>45433044 #
28. x0x0 ◴[] No.45430184[source]
It's a hiring pipeline. You're growing modestly underpriced internal talent that, in the upside case, has skills that front-run their salary by a bit. NB: I'm obviously not advocating for underpaying people; just noting that that good junior eng will grow fast and their salary will take time to catch up.

It's stupidly expensive though if you look at the opportunity cost of that already-onboarded senior/lead/staff eng time. And this was obviously more compelling when it was super hard to hire senior talent.

29. mattmanser ◴[] No.45430315{6}[source]
I believe the reason is often not a company problem, it's a variety problem that nothing can solve.

It's a totally unavoidable problem with our industry.

People get bored working on one domain, one product and one codebase.

And most software shops have one domain, one product and one codebase.

replies(2): >>45433637 #>>45433749 #
30. charlie0 ◴[] No.45432462{3}[source]
Give them decent pay increases and I'll guarantee you they won't leave.
replies(1): >>45435909 #
31. _heimdall ◴[] No.45433044{3}[source]
Sore, totally agree. I'm not saying I expect a corporation to care about externalized costs.

I am saying that I care about them, and individually we all should pay attention to them. In this case, I will continue to push for juniors even if my higher-ups push for us to hire seniors only and augment our workforce with LLMs for more junior-level work.

32. trenchpilgrim ◴[] No.45433412{7}[source]
Yeah especially as you age the healthcare policy can become as important as pay. Have known plenty of people who got most of their value from health benefits + stock plans rather than the base salary.
33. DangitBobby ◴[] No.45433637{7}[source]
I have quit a dev job exactly one time, when offered a salary the first one wouldn't meet (the HR person straight up told me she didn't understand why they would pay me $80k in the exit interview, this was like 6 years ago). Since the second company pays me well (with benefits), gives me yearly raises, and gives out generous performance based bonuses, I haven't looked for another job since then. And yes, job #2 is often boring.

It's pay. It's always been pay.

34. hmcq6 ◴[] No.45433749{7}[source]
> It's a totally unavoidable problem with our industry.

It's the pay.

> People get bored working on one domain, one product and one codebase.

Yeah bullshit. It's the pay.

35. kelnos ◴[] No.45435355{3}[source]
This has been the state of things long before LLMs, and companies still hired and trained up juniors, only to see them leave after 18 months.

But that's fine. The junior you trained up will be more effective at their next job, and the junior your competitor trained up will be more effective when you hire them at your company. Again, that's how it's been for far longer than we've had LLMs.

replies(1): >>45447663 #
36. arvinsim ◴[] No.45435909{4}[source]
People can leave for a lot of other reasons than money. You can't control or predict that.
replies(1): >>45463674 #
37. Gormo ◴[] No.45443085{3}[source]
> So hiring juniors who provide negative value at the start is mostly benefiting the industry as a whole at your own personal loss. Which makes it a pretty easy thing to cut.

That's true, but why are you qualifying this with "who provide negative value at the start" in the first place? What if you hire juniors who provide positive value at the start instead?

38. lexarflash8g ◴[] No.45443564{5}[source]
Most companies aren’t Apple, Nvidia, or Google chasing the top 0.1% of “elite” talent. Outside of a few AI-focused startups, the reality is that 90% of companies are sitting on legacy codebases, still running VMs, or duct-taping CRUD apps together with APIs.

If you happen to be a superstar with a rare niche skill (like building frontier AI models), you basically skip the interview loop and get fought over with million-dollar offers. But that’s a tiny fraction of the market.

For everyone else, hiring looks a lot like dating: both sides aim for a “10,” but usually settle for a “6 or 7.” And the whole process is signaling—candidates overstate their skills, companies oversell their culture and tech stack, and the match lands somewhere in the middle.

Probably the most important non-technical skill is dealing with the egos in the industry since you will come across a lot of them.

39. program_whiz ◴[] No.45447663{4}[source]
The only problem with this utopian view of the world is the game theory. My company which doesn't hire juniors gets to benefit from others training them up for free. As a result, companies will opt not to train them (since this is optimal) -- which means they don't get trained. Classic prisoner's dilemma / free rider situation.
40. charlie0 ◴[] No.45463674{5}[source]
Don't be pedantic, you know that for most people, it is about the money, especially when you're a junior living in HCOL area.