Ask HN: Senior Devs, what career have you moved on to avoid impeding doom?
As I was browsing the job boards in the EU area, I was faced with several unpleasant realizations. Companies, for the most part, are looking for devs with 2-3 years of experience in a given tech. Having 10+ years of experience in anything is not required and might as well be considered against the applicant. Work is being off-shored to low income countries. Adding to that, stories of ye olde programmers bringing in major dough 15 years or so ago sound like fairy tales today. It would seem coding was reduced to gluing things up from pre-made blocks and is not viewed with awe and respect it once may have had.
This all is written from perspective of a senior software dev in Europe. I realize FANG and or devs with extremely niche or trendy skills might not perceive this the same. However, I do wonder whether there are people like me who feel the impeding career doom in next <10 years in case a substantial pivot is not made.
For Senior devs, do you agree with my premise? Have you moved on to a different career? Could you share your interesting career pivot stories?
78 comments
[ 4.1 ms ] story [ 171 ms ] threadI imagine some of that is how people understand job postings over time. Reading between the lines there's a lot of fairly junior roles out there that include a lot of senior sounding requirements. It's also not hard to find many senior roles which only offer a junior salary (I wonder why those listing stay open for so long...).
It seems the job posting all want seniors. The jobs themselves usually turn out to be boring and could be done by a junior.
I remember working as an entry level and thinking that you could spend one day training a high school grad to do 90% of the job. Now I'm a midlevel and the this job is so boring and could be done better by an entry level (because they're motivated, happy just to have a job in the industry, and don't realize how boring the work is).
I have heard so many business oriented people say that they want to do the 20% of the work that gets 80% of the way to the destination.
80% of the way to destination means "0% of the value delivered".
Percentages over 100% occur all the time in project management, such as
https://en.wikipedia.org/wiki/Olkiluoto_Nuclear_Power_Plant
where you might have spent 500% of the budget to get 50% done. (China built a reactor of that type and turned it on but they had some fuel rods burst right away and had to turn it off.)
Why hire a couple senior devs to spend 90% of their time on junior tasks? A better model is to hire a couple juniors to handle the junior tasks and use the seniors for the senior tasks and oversight. Much more efficient that way.
Sure, you can have percentages over 100% for many things. When looking at a breakdown of tasks/time/work for an individual, you are constrained to 100% (the pie chart values might get bigger but it always adds up to 100%)
The data scientist who thinks he is too good to check his notebooks into version control is just one version of people who think they are "too good" to be doing what they are doing.
In small teams people do the work that is critical whether it is too "easy" in their estimation or if they have to stretch themselves to do something difficult. Sometimes they need to get help. A few people on the team can indulge in doing only the work they feel like doing, but that's because there are adults on the team who cover for them.
There are many advanced programming tasks which could, in principle, be assigned to some juniors. For instance, CS majors usually take one or more courses in compilers and programming languages. If your organization is dependent on a legacy programming language you could possibly get one of those juniors to write a transpiler that compiles it to something current. Succeeding at that takes some guidance, but it might take some form that some "seniors" would find offensive such as writing a really tough set of unit tests.
Many "seniors" on the other hand never took any compiler courses or sold their textbooks and forgot everything 10 years ago.
First, you seem to have dropped the percentage topic, which you had initially talked to. It seems like you're just changing the topic for the sake of arguing something on a tangent (isn't that against the rules here).
Now you seem to be talking about people who are too good to do things. Which is entirely different than what I'm talking about - appropriately staffing a team based on expected tasks and minimizing budget.
Tasks are not really "junior" or "senior" tasks but really tasks that juniors or seniors could do with different results in terms of time, cost, quality, etc.
Sometimes a "junior" is more experienced at the latest methods. This is one thing you see with medical doctors or electrical engineers, that many people go through their careers and keep using the same methods they used at the beginning. (Think of the old saying that "Science advances one funeral at a time")
For instance 20 years I go didn't expect an undergraduate student to have any idea what version control is, today I expect them to have a Github account.
You are putting words in my mouth. I never called the tasks "junior" or "senior". Looks like you agree with me, but felt the need to argue anyways.
Instead of thinking of junior devs as cheap development resources, think of them as your depth in talent. They can do the easier tasks and cover when somebody is out for whatever reason. Manage your team like a GM would a sports team.
Sure, you can have percentages over 100% for many things. When looking at a breakdown of tasks/time/work for an individual, you are constrained to 100% (the pie chart values might get bigger but it always adds up to 100%)
What is a "senior" task and what is a "junior" task depends on the organization of labor.
It's certainly possible for a senior to divide a big task into small chunks that juniors can dispatch with great haste. You could possibly put 1 senior and 4 juniors together in a bullpen and get them to do the work that (say) 3 seniors or 10 juniors could do with a different organization.
To realize that you have to get the human relationships right, a theme I keep harping on is that the people involve have to feel the tasks are worthy of them. Many juniors, in a situation like that, might feel like they are being micromanaged.
Another thing you need is for the senior to have enough of a global view of the situation that their seniority really produces value. If you really don't understand where you are going and you'll need to rework everything you aren't getting value out of that kind of situation.
Around my farm we have a large number of "junior resources" available for construction work. Those young people make silly mistakes that cost time and money and that's one reason why they make $18 an hour compared to a more experienced person who makes $40 an hour because they are twice as productive.
But when you ask those juniors, a "senior dev job posting" is one that requires 3-4 of experience.
"5 years or so."
(my resume had ~15 years of continuous work)
Everything went downhill from there lol
In the EU, the trend that I'm seeing right now is even "remote" contracts require you to be located in that specific EU country. Haven't tried US yet, but I assume without personal contacts and impeccable credentials it is not realistic to convince someone beyond the great pond to hire me.
I imagine my colleagues in the UK or elsewhere might not feel the impending doom, because contracting/consulting over there is pretty much the norm.
1. Age. 2. What some specific company do
As a dev you must keep your skills up to date and try to become expert in up and coming tech. I am not sure why this changes with age.
I have heard EU is experiencing a different market right now, and there’s a variety of threads on this site why that might be. But I also know many US companies with remote work know this and are beginning to market to EU devs more.
Pretty much this. Outside of the large metro areas like London, Berlin, Amsterdam, Barcelona, Stockholm, Warsaw, etc. where all of the finance and investments are already concentrated, it's an absolute wasteland (at least here in Austria). Unless you work for a FAANG, a US company, FinTech or a successful well funded unicorn, EU tech salaries take huge nosedive and are in line with your average office grunt work.
The main difference in the EU vs US tech job markets is that in the EU there is far more qualified talent due to free higher education vs the US, and far less job opportunities due to the smaller, more fragmented and slower growing EU economy (just compare the US vs EU stock market growth and see), so there are much fewer good local job opportunities. All this means competitions for well paying jobs in the EU is fierce and employers can be very picky so EU devs do not experience the same explosion of opportunities the US devs experience where anyone who can write a for loop lands a tech job.
Then again, due to offshoring, my friends in Eastern Europe are constantly showered with better and better offers, reaching Western EU wages at much lower CoL so maybe I should move there. Or maybe I'll go to med school since it's free and become a doctor, a much more respected career here, where your value increases with age and aren't at risk of offshoring even though there has historically been (and still is) a perpetual shortage of doctors.
I wish the SW engineering culture in Europe would improve, it seems like we get treated as grunts (best case) or as toddlers (no offense to the said party, toddlers are cool, they just dont get as much credit for their hard work as they should sometimes).
agreed on the doctor route. unfortunately, I'm a bit too old and a bit too married to invest 6 years in medschool.
moving to eastern Europe and getting remote contracts seem like only viable route in Europe. However, it feels like this is only speeding up the decline by de-valueing our western colleagues.
There is some truth to this, but that is one difference between senior vs. junior devs - the senior devs create the blocks used by the junior devs. I don't yet see us being at the point where a team of nothing but junior devs can create a product. This is particularly true in the back-end, when you need to actually read/write and manipulate data, and know which tool as well as which layer of the stack is the best answer for any given problem.
If you are struggling to find senior level work, I'd recommend expanding your skills to a part of the stack that you don't know as well to be sure you have the ability to do that level of work.
It's a lifelong obsession with learning.
The key is that you have to keep working on your skills to stay valuable for your (next) employer. When you're 40+ you can't compete with a 20 year old anymore when it comes to the ability to work crazy hours. But do you even want that?
As a senior you have a big advantage though, and that is your experience. But you have to make sure all the time that that experience is useful.
20 years experience is some dying language has very limited value. But 20 years of studying algorithms or general language concepts can get you almost anywhere. It helps of course if you like what you're doing, not everybody likes to study algorithms all the time. But there are plenty of other specialties around that will always be in demand.
I don't think that's quite what's valuable though. I'm right in the middle of "senior/not" (~7 years of experience) and I think in general, even our new hires can code fairly well, and can even design quite well. What seniors have over juniors is just battle experience.
I liken software devs to jungle guides. Even the best jungle guide hasn't seen every scrap of jungle and probably doesn't even necessarily have the best map of the jungle you're going to go through. But what they do know is how to use a machete and rope like its an extension of their arm, and what all the different kinds of quicksand and poisonous frogs are, and which water holes have clean water.
Similarly, experienced software devs are going to know when it feels right to use various stacks of various complexities, when to KISS and when to do big-brain CS stuff, when to argue with someone else's manager and when to pick their battles. They'll just generally be more acquainted with the entire techno-social process of developing software that drives business value.
"20 years of studying algorithms or general language concepts" would leave me with a pretty uninterested view of a candidate since those are frequently the least interesting parts of driving business impact.
I thought of becoming a business analyst but analysts seem passé nowadays.
also, i only accept american market rates -- i will not work for less than what an american would make just because i live in a cheaper country.
The industry is huge, and there are plenty of companies who hire (and even prefer) very experienced devs. As I've aged, it's taken a bit longer to find new positions, but I've always been able to.
That said, I do have an escape plan -- it's not to change to a different line of work, it's to start my own venture.
I assume Europe must be a lot different than the US because I certainly didn’t notice it here.
From my previous role…the amount of “decent” devs out there is staggeringly low. The bullshit I’d put up with because a dev was technically competent was astounding given how much they were paid. It took months to find replacements that were passable. Again maybe it’s just US centric but I don’t see it. There is definitely a shortage of competent developers.
At the end, I've also chosen to join a public institution as a freelancer. Depending on where you are from, public institutions may pay quite well. You can go there as a freelancer, but even public servants in their 40ies or 50ies have very good salaries. Age is a big factor in salary calculation there.
Coming from a Silicon Valley style unicorn, public institutions are refreshing. Everything is much slower, people are gentle, humble and unassuming. Technology is a tool, there is just enough of it, and everyone takes on the simplest path to solve the problems at hand.
Of course if you live in Poland or Bulgaria where public service can't match IT salaries, this is not an option.
I believe this is the expected outcome of "Work from home" and "Remote Work" trends. It will get worse, as more and more companies set up their infrastructure and culture around "remote".
More and more high paying jobs will be eliminated and moved to lower income countries. If you can hire a remote worker with a similar skillset and reasonable communication skills for 1/4th the price, why wouldn't you?
That's been the pitch for the last 30 years. The "similar skillset" is rarely true, certainly not at "1/4 the price." That's the kinda thing that gets managers fired.
I say those things actually matter more than skills in many cases.
I've had to hunt for talent myself, and reviewed dozens of software developers, and finding someone with 10+ years of good experience is close to impossible, so I would never have that as a request in a job posting, but it doesn't mean I wouldn't want someone like that in my team.
Up till today I was lucky on companies I worked for or with. It's just that every time I open up the job boards these days, I pray my contract gets renewed.
After ~5y, it's easy to get lost. There's a huge amount of ambiguity in that 5+ range.
Most employers want a young Senior. They're the most cost effective. In the US, no matter how old, you can always find work as a Senior, especially if you're willing to work cheap.
The problem is not getting stuck there. You may end up pushing yourself and becoming super skilled but never recognized. You may end up complacent and never grow. Either one suits the employers fine as long as they can keep you on cheap.
It's really up to you to define. You have to decide for yourself what you want. You need to have the audacity to then put yourself out there and fight for it publicly. You need to have the tenacity to not give up or settle in the face of certain, persistent rejection.
The market is not perfectly efficient and it certainly is not fair. It is competitive and indifferent to your personal needs. To a certain degree you need to put yourself out there to learn the game and then commit to playing it.
Ideally, along the way you commit to be kinder to others than people were to you.
Just roll with it if you like developing.
One upside of contracting that I never realized was if you do good work, with every new client you take on, you will increase the list of employers that would hire you in a heartbeat if you fall on hard times.
My only advice is to try to become "T shaped" (I hate the term but it makes sense), a generalist with a few currently marketable specialisms.
Moving from Sr Dev to Lead Dev, Staff Dev, VP of Engineering, or CTO means you're now able to do things like 1) architect better systems 2) restructure for growing pains as well as 3) come up with new ways for your company to expand and grow.
Companies will pay a lot for resolution of pain points or growth plans. That is your next step.