I am 41 years old, still doing software development and enjoying it for the most part. I work in France.
Actually I enjoy it better than I used to since I find myself much more productive and I make less bad design decisions than I used to. I code daily in Javascript (NodeJs), Java and from time to time in groovy, python and golang. Being able to switch from 1 language to another, deploying in different cloud platforms also contributes to my enjoyment.
Recently I have had some bad experiences however when I had to work with exclusively young developers in very small teams (3-4 people). I did not like it mostly because either they were not really competent and did not recognize it (wanting to code on hard topics when they showed poor coding skills on easy ones) or because they were very arrogant (notably a Javascript dev who thought that NodeJs was the alpha and omega of the server runtimes) and were showing some signs of ageism. But I blame mostly the weak recruiting process of my company and management persons (for not constituting well balanced teams). Working with exclusively inexperienced (and not well recruited) people can become a nightmare.
But I am mainly worried because in France (and I think the situation is the same in all Western European countries) even if there's a shortage of tech workers, companies are very reluctant to offer decent wages and still prefer to hire young low paid people. Developers are still seen as blue collars in the IT industry and developers tend to hit very quickly the (salaries) glass ceiling. I tend to think that management persons do not recognize the added value of experienced developers. (I admit that things like maintainability or good design decisions are hard to assess).
I keep my skills up to date, but I am also considering about exit plans, well at least moving away from doing exclusively development.
This is what made my first place of employment sour. Everyone was arrogant, less than 1 year of experience, obsessively talked about how we should use the other framework or language and how it would solve all our problems (all these suggestions were driven by unbacked hype and ready-to-be-broked promises) and nobody really wanted to focus on actually getting the work done.
I agree with everything you said except for one thing: developer salaries later-on are not artificially kept down vs the value they create. The are artificially inflated when they are younger due to the scarcity of developers. This is why one can become a "Senior Developer" at 24 (such as I did) because the title is matched to the salary as opposed to the actual amount of experience it would take to be a "senior" anything in any other field.
Is there an official definition chart for terms like junior, mid, senior? I keep hearing people sneer at the presumed miss-use of those terms as if everyone knew the official definitions. Last place I worked, senior was just the dev who's been there the longest.
These terms are often defined in terms of autonomy and scope: if you can look around and see what needs to be done, break it down into workable sub-units, wrangle resources somehow (big projects tend to need more than one person working on them), and get it done, that can mean that you're "senior".
I see people on various forums (fora?) asking what number of years of experience makes someone "senior". The most common answer I see is 5. It reminds me of this https://i.imgur.com/7sws9p8.jpg
I have asked this to, and often get told senior is "5+ years" with a specific tech stack, junior is usually specifically aimed at people with no/little experience in a dev role, and mid is anything in between. Not sure how well that generalizes to other geographic areas though.
> Is there an official definition chart for terms like junior, mid, senior?
No. Every company has different definitions and different positions have different meanings. Then there is lead manager, product manager, team lead, etc.
Not only that, I've noticed the position titles are different depending on the company. A junior developer in one HR department might be Programmer Analyst in another HR department.
But generally for me, anyone with 1-4 years is junior, 5-9 is mid and 10+ is senior. But that's just my arbitrary definition.
'senior' is also purposefully being used to make a position more desirable, by sounding better. People like showing off and tend to agree to a lower salary that way.
Question: how does one become a "senior developer" if one has only worked at startups? Is it as simple as assigning yourself the title? Or does one need to work at a large organization (with large teams) to be able to use this title (with credibility of course)? What if you were the only developer at the startup?
The title will be handed out as a perk when you've been with the company for a relatively long period (on the order of a couple years), or to add and ego bump to the salary bump of an offer at a new gig.
In our field, it's a near meaningless title modifier.
I've actually seen titles being used in very different way, as a form of currency. You can offer people a lower salary for which in return they get a big inflated title to stick on their Linkedin profile. Loads of people love big titles to prance around with (especially the younger ones).
I wonder if it ever occurs to these people that I can still see (on linkedin) that you're a "senior javascript engineer" who just graduated from college 2 years ago. 2 years ago you really were a 'senior', but now it's just title inflation?
I also wonder if these same people assume everyone else with "senior" in their title has as little experience as they do.
Your last paragraph perfectly describes why as a French speaking American engineer I refuse to work in France even though I would love to live there. My salary in a flyover state in the US is 5X the best I could find in France.
Part of the problem is trying to employ people in France or, more specifically, worrying about the day when you need to stop employing someone in France.
After going through it once, I'll never voluntarily do it again.
Germany is also an issue. At a previous job, we completely moved all development work from Munich to Dublin because the added headaches caused by hiring/firing in Germany were enormous.
Our story is similar, though we've chosen other employer-reasonable locations. Netherlands was moderately bad (better than France, though); Switzerland is reasonable.
Do France and Germany have the concept of the "contractor" worker, where the company can just call the contracting firm and say we don't need the developer anymore?
I agree that developers in France are rather underpaid, but you're comparing apples to oranges.
A lower French salary comes with a number of valuable benefits which makes the take-home pay difference much smaller than what you're saying : https://news.ycombinator.com/item?id=13412599
Depending on location, probably less than you think. Because of the general shortage of developers, juniors are probably overpaid. This makes senior positions 1.5x the cost at the high end with 1.2x->1.3x at the low end.
Actually I enjoy it better than I used to since I find myself much more productive and I make less bad design decisions than I used to. I code daily in Javascript (NodeJs), Java and from time to time in groovy, python and golang. Being able to switch from 1 language to another, deploying in different cloud platforms also contributes to my enjoyment.
Recently I have had some bad experiences however when I had to work with exclusively young developers in very small teams (3-4 people). I did not like it mostly because either they were not really competent and did not recognize it (wanting to code on hard topics when they showed poor coding skills on easy ones) or because they were very arrogant (notably a Javascript dev who thought that NodeJs was the alpha and omega of the server runtimes) and were showing some signs of ageism. But I blame mostly the weak recruiting process of my company and management persons (for not constituting well balanced teams). Working with exclusively inexperienced (and not well recruited) people can become a nightmare.
But I am mainly worried because in France (and I think the situation is the same in all Western European countries) even if there's a shortage of tech workers, companies are very reluctant to offer decent wages and still prefer to hire young low paid people. Developers are still seen as blue collars in the IT industry and developers tend to hit very quickly the (salaries) glass ceiling. I tend to think that management persons do not recognize the added value of experienced developers. (I admit that things like maintainability or good design decisions are hard to assess).
I keep my skills up to date, but I am also considering about exit plans, well at least moving away from doing exclusively development.