If there was some formal, or informal understanding that candidates "trained on the job" would stay for a few years, I think companies would be more open to building junior devs.
Does anyone have ideas about how to make this work?
If there was some formal, or informal understanding that candidates "trained on the job" would stay for a few years, I think companies would be more open to building junior devs.
Does anyone have ideas about how to make this work?
Does your friend give them actual, meaningful raises as they grow? Is he actually paying competitively to begin with?
Because I think if you have this pattern that consistently, it's really likely that either you're underpaying to begin with or your raises suck or are not even present.
I love working at small companies. It's by far my preference. But none of the small companies I've ever worked at offered anything like the comp and comp growth that the big corp I currently work at does. In fact, almost all of them offered me near zero compensation growth over time. And in real dollars that effectively means negative growth.
I think what's going on is that after a year at any job you start to see the problems with the code base, and it starts to get repetitive. It will be like that both in big-co and small-co, but in a different way. In small-co you can have a much more freedom, but you reach a plateau of the new things you can learn. In big-co there are bigger problems and more challenges, but you're part of a soulless machine that just wants you to do your job and not ask questions.
Not having experience the soul-crushing big-co life, the brough-up-to-speed junior hires don't appreciate the deal they have, and want to explore their options. It's a rational decision, and come to think of it I'd probably do the same. The code is always greener on the other side... Who wants to be like "no I'll stay here and do 3 years of the same things that I'm really good at now and delivering value for my employer."
From the employers's perspective though was it worth it? Time/energy invested to train them vs. maybe 6mo or 1 year of useful coding contributions.
This is only half of what I asked. What about the raises? As someone in another thread chain pointed out, the expected raise from job leaping is maybe 15%. How did the raises your friend gave compare to that?
I'm not saying they have to meet it, but if you're sitting there doling out 1-2% raises per year people are gonna leave when they get what they need from you.
Also, small companies (frankly, especially 'web' companies) are not even remotely immune to demanding people just "do their job and not ask questions" or forcing their employees to sit in the same box for 3 years doing the same thing. Often the lack of room for career growth in perpetually small companies almost demands this.
I find that small companies are often much worse in all these metrics. As a jr employee they’ll never rise to chief architect - your friend, the cofounder, has that job. And is never giving it up. Plus thanks to cash crunch, making shortcuts to deliver is common in small companies. Especially since they don’t have a reputation to protect. So quality? Well, maybe.
I recently took 9 weeks off from my bigco FAANG, job to help raise my baby. After the company’s health plan was on the hook for a million in costs (baby born prematurely, spent 3 months in hospital nicu). At no point was I worried about my job or company. I’m happily back on the team in my job cranking away and being productive.
Now tell me my experience would be better in a 12 person startup/shop. I dare you.
Ps: in terms of impact, well I work on a small thing in a sense so only a few million people directly use my product. Big companies have big impact. Lots of guard rails which is nice to no longer make the same basic mistakes over and over.
As usual, this is the craziest part of the comment to my European mind. Your healthcare system spent somewhere around an entire lifetime of effort for something that, while relatively dramatic, should still be quite routine for a sophisticated medical organization!
The infant is also financially liable but likely uncollectable. The baby's life may or may not be ruined depending on where the US goes w/r/t health insurance coverage for pre existing conditions.
In the US only the wealthy ( millionaires ) are safe from medical bankruptcy and even they can get taken down by some issues.
I mean, can you even imagine other areas of life where every person you purchase from attempts to screw you over by demanding 2x-10x of the reasonable fee unless you had the information to be aware of it? It would be impossible, because everyone would just take their business somewhere else.
But you can't exactly say "oh, I'm not willing to pay my life savings for this, I'll just take this 3 months prematurely born baby to the shop across the street, or maybe get it done in six months time instead, when it's more convenient.".
Considering that only few people get to the top title at a big company (I think there is ~20 Technical Fellows in Microsoft world wide), I think that is a fallacy. If you work at a small company that grows, you're far more likely to become a chief architect.
> Now tell me my experience would be better in a 12 person startup/shop. I dare you.
Only applies to the US. EU citizens don't really have to worry about that.
Senior/Chief Architect is an engineering/production position, with limited scope for game changing R&D. In a typical 10-20 man shop the position is usually taken by the CTO, who will be usually be in it for the long haul for both financial and technical reasons.
Very, very rarely a startup will turn into a unicorn with hundreds or thousands of employees. You can get some way up the ladder when that happens.
But the odds are against it happening in the first place. And at the higher levels you'll still be competing with talent hired from outside.
This is so important, as a relativley junior developer at a 6 person web dev shop, the owner is the only other backend developer. I have no room for climbing, even if I get a job title upgrade or a raise, my responsibilities and the level I work at won't change. I will handle the day to day backend and the owner works on strategic choices. There is only so much impact I can make in this position
I'm reminded of this talk : https://www.youtube.com/watch?v=hER0Qp6QJNU around the 8m30 mark is the pertinent point, but worth to watch before that to get where his point is coming from.
The first job refused to match the $48k offer. I’d probably still be there if they had, a decade on. Awesome place, awesome people, but... student loans and wanting to not live in a dumpy apartment won...
Startup -> Medium sized company
I didn't have to move states.
Edit: I'm a college dropout too. Rapid learner so I learned a lot on the job at the startup. Did a ton of tasks nobody else wanted to do (devops, automation, performance, tests).
There is no local market, at least not in the long term. Once a junior developer has acquired some skills and experience they're going to start looking at other markets where their market rate will be higher, and being less likely to have attachments that make it harder to move they will find it easier to move than more senior developers.
But still I was being paid less than the job was originally advertised at, because of a missing qualification.
So I moved, yes. Pay people what they are worth to you, not what you think you can get away with.
Altogether, this is the best approach. The guys at two years and slightly more of experience have learned on the job from someone else and you can get them for relatively cheap vs. the huge opportunity cost of having your senior engineers mentor people if they don't want to.
The downside is I can't recruit off this user handle but c'est la vie.
And yes, the employer in OP's example should reconsider providing value through training vs straight cash.
My communication skills are my biggest flaw, especially around things like negotiating salary / talking about how I feel with the job. My technical communication is pretty fair, but I turn into a brick wall when we approach higher level meta conversations. I had plenty of opportunity and I wasn't mistreated, but being paid half what you think you're worth for a year with no change in sight really does a number on your confidence as a new player, and I never spoke up about it. I'll accept if that means it's my fault for not getting myself a raise, but I also won't feel bad about leaving after getting on the job training.
If you want to keep your junior employees, pay them what they're worth now not what they were worth 6mo or a year ago. Switching companies is just the only way to force companies to reset the memory of what your salary used to be and reevaluate your value.
That said, based on your other comments itt, that may not be the case in your example.
Took me less than a month to find someone who was offering significantly better salary, yet the consultancy seemed surprised when I told them. Suddenly the salary bands became a lot more flexible.
I shouldn't need to have another job offer to get offered pay rise in line with inflation.
We already know jumping gives on average a 15% salary increase every two years, so you just have to beat or match that.
Now people might still leave for more interesting projects, but you get one of the larger motivational factors out of the way.
People often leave because negotiating a salary upgrade is way harder than navigating an interview.
So, unless your hidden motive is to have cheap labor just write down in the contract that every two year the salary will increase 15% minimum, unrelated to objective bonus and all that bullshit.
The you have it. The secret for training and retaining talent in a competitive market.
You could argue that head hunted employees that's a good match for the job they leave for probably get higher salary.
The current job of a dev is more likely to be the first job for the dev (after job jumping it's never the first job).
Since the dev age pyramid is quite base heavy, job jumping is a indirect measurement of more experience.
Just being able to job jump is a indirect measure that you are sought after and that brings higher wages.
If Starbucks starts making coffee 3x as good will people happily start paying $12 for coffee?
Because businesses would rather have a person leave and then hire someone at 1.5x or 2x their salary than just pay the first person 2x what they were making the year before.
This happens all the time. Employers want to have 2x people at 1x prices, and that doesn't work for long.
This attitude introduces a skew where your workforce gets progressively filled with people who do not switch jobs. It's a dangerous outcome, to be managed with care. If you get stuck with those who do not switch jobs because they are too incompetent, you have a big problem. If you manage to get those who are competent but content, and not very concerned with higher earnings, you have the ideal result: stable, competent, performant team, with controlled costs.
When Starbucks entered the market here, their $5 coffee was about 3x the price of the status quo cup.
Also, if businesses can't pay the market rate for labour (by definition, the money the employee can get in an open market is the market rate) then they don't have a sustainable business model.
After two years, you’re essentially a mid-level engineer and the money you can command is way more than what a junior developer with two annual “raises” is typically paid.
Isn't this why most junior devs leave? Because they are getting crap junior dev salaries? Once you've trained them they are no longer junior devs. The market certainly doesn't think so.
In my first dev job, which was a fantastic job, some gatekeepers wouldn't give up access or tasks that I was better suited for.
I was always going to be a bit younger, always the junior guy on the team, despite the fact I had relevant education and, in my opinion, was probably better at the job.
Eventually I left and they were upset, but I didn't like being held back. Not everyone is like that though.
Nowadays I build and run teams. I don't do any real technical work unless I need to show a junior a working example on how to do it. I'd rather watch them learn and grow.
If they had an option to move up and work on interesting problems than I would have stayed.
I suspect many others are the same. The only people hiring juniors are the ones who can't afford to pay mid level devs and when the juniors become mid level what are they to do but leave.
Well that is your friends first problem!
For a smart fast learner your friend isn’t providing a benefit worth the cost of a couple of years of low job growth.
Your friend should look for candidates who are average learners, want a steady paycheck, and don’t want to do anything tech related outside of work hours.
Think of Japan, where changing job is like a lifetime event, training is graciously provided, since the firm assumed that your loyalty is guaranteed. Or in case of some companies in China, where they can sue you if you quit your job before the agreed years are met on your contract. Both seems undesirable to me personally.
Pay more. If they can make more money by switching jobs, you're not paying enough. They paid for their training by working for a lesser salary for 1-2 years, and it's not irrational for them to then want a competitive salary.
- Personal growth: Devs in that company were nice, but not stellar (I was the most "senior" one after a couple years), so I couldn't learn much from my peers.
- Nature of the business: I moved from customer service to product development, which is a personal preference.
- Money: The new place paid about 40% more.
Also; most people leave managers not companies. So if pay is right, and the people are otherwise a good fit, it might be company culture that pushes them out.
[0]: https://www.hrdive.com/news/when-an-employee-leaves-can-you-...
There are already many companies that lock you in contract in exchange for comprehensive training.
You could go back to the real apprentice (no modern apprentice shelf stacking mc jobs) route but in that case the apprentice signs for x years and you cant make them redundant - and you also not guaranteed a job after it finishes
Before leaving school you try to find a company that is willing to take you on as an apprentice for a four year contract.
Time is roughly split 50/50 at work in the company and specialized schools. The companies will cover the cost for the school, and pay a small amount to the trainee (~550$ first year to ~1400$ in the fourth year)
On average companies lose money in the first 2 years, but make it up in the last two for an overall win. Especially for programming apprenticeships, this can be quite lucrative for the companies.
So even if they leave immediately after the four years, it is not really bad for the company.
Though the majority of devs would be better of with a programming apprenticeship instead of an university degree in the first place. Only a fraction of devs work on these hard technical problems or complicated architectures that are actually engineering and not just programming.
Ways you can do it in germany: hire. After 2 or 3 months to see if he is a good fit. Give him a bonus to stay. The contract allows you for up to two years without issues, maybe three. If he quits earlier. He must pay back the bonus back (Valles Heilung des bonus in german, healing 9f bonus) after a few months he won't have a chance to get something better.
You also can increase the salary in a bonus. Which he eeds to payback if he wants to leave early.
Is that not possible in America?
If you intend to stay anyway or are not so keen on leaving, why should you say no?
It's similar to stock option vesting and that is very common.
But yes these types of bonuses are common, especially as stock options with vesting. More so outside of Germany as far as I'm aware.
Right to work means you can't be forced to join a union.
He is talking about payments that are conditional upon you staying at the company for a certain amount of time. Relocation bonuses and stock option vesting are a very common type. If the bonus is high enough, it makes it very unattractive to quit. He is exaggerating though.
They need (not just want, but need) progressively more and more autonomy, bigger and bigger tasks, more and more responsibility. It also helps when the company culture/management is such that they can talk openly about their preferences and dislikes. It does not mean they should get everything they want, but there should be no "punishment" for saying what they want.
Even if they leave, they will be back because most companies lack a unified culture with clear values.