As a good dev looking for a job, I can tell you with 95% certainty that the good devs are not applying to your job because your company is a boring knockoff doing boring things and your job sounds like a boring dead-end where developers will be cordoned off into a little box with nary enough room to turn around while they implement mandates handed down from above by a product owner who never uses the actual product with no opportunity for actually discussing whether this new silly feature will make the product worse or not (it will) while technical debt and cruft accumulates and any attempt to invest in the long-term health of your product will result in a reprimand.
After months of looking at job postings, hiring managers complaining about not finding good devs just sounds like incels complaining about not being able to date hot women. Look inward. Lots of good devs are out there looking. They're just not looking at you.
> trying to revolutionize
There are a lot of aspirational companies out there. I'd rather work at an aspirational company than one with no vision at all, but you still need to convince me that there's an actual chance you can deliver on this vision. If you told me you were going to revolutionize the world's energy sector with a perpetual motion machine, I'm obviously passing. Treat me like an investor -- convince me your company has a future. Because, of course, I am an investor; I'm considering investing a large percentage of my professional life in your company.
> nuclear power deployment performance
Nuclear power is interesting but highly regulated. If I come up with new and interesting ideas that contribute to this space, is it too tightly constrained by regulation to have any chance those ideas could get applied? Will I be in a position where anyone will actually listen to my ideas, or have you already made up your mind about how everything is going to work? Am I going to get to talk about the product development, or is this going to be handed down to me with people taking offense if I try to explain why that latest change doesn't make sense with the rest of the application?
And what is "deployment performance" -- trying to cut the costs involved in building and deploying new nuclear power plants? If it is, just say that. Don't make me guess what your company actually does, because I'm going to guess using my priors, and as you probably guessed from my other comment, my priors are very negative.
> a highly customized PLM app
Two red flags here: "highly customized" -- I'm a software developer. I write code (among many other things, of course). What does "customized" mean? Are you building this in some other inner platform? "Customized" sounds much weaker than just plain new code. Will I find Apex code built on SharePoint or something awful like that? "Customized" is a huge red-flag word for me because it's almost exclusively used by people who are afraid of programming and don't understand the software development lifecycle.
The other red flag: "app". You're trying to "revolutionize nuclear power deployment performance" with an ... app? Look, I get that "app" is just short for "application" and therefore could mean anything, including an advanced industry-centric analysis tool. But it doesn't, does it? You wouldn't use the word "app" for that. So you're trying to revolutionize nuclear power with a $2 app in the Apple Store or something? That's what it sounds like to me.
Again, think of me as an investor. If that's your elevator pitch, I've come away with the message "big ideas with absolutely no idea how to deliver on them".
I truly wish I lived in the world you imagine. I've been in the job I'm leaving for 13 years, received top-tier performance reviews every year, constant improvement, very good software, technical lead of one of the most profitable teams in the entire (huge) company. Everyone who has ever worked with me directly has great things to say. Meanwhile the vice presidents of such-and-such that play musical chairs with their titles every 2 years do not care. I have made it very clear what they need to do to keep me (and it's not onerous, in fact it's mutually beneficial for everyone and completely in line with the CEO's vision), and they do not care. I'm not sitting in the right seat; I'm not already buddies with the right VP; so fuck me. I can go get fucked.
It honestly sounds like you either have no real-world experience or you've gotten extremely lucky with the company you found. If it's the latter, do whatever you can to stay there as long as it doesn't turn to shit (and it can, at any point).
Yeah, they aren't going to be the best with a specific company's stack, but they'll likely have a better perspective on how it can be improved.
There's some longer-term things you can only learn by being at the same company for a long time (such as "how to grow a startup from 1 to 100 employees" and what comes with that), but those things are usually outside the realm of what software engineers interest themselves with.
If you're spending more than 2 years at the same company, the only domain knowledge you're growing is that of how to be an employee at that particular company, and very little of it is very useful outside of it. Things like "I know how all these Facebook internal tools work inside-and-out". Cool, we don't have or need them cause we're a totally different company, now what?
Whereas a lot of even surface-level knowledge can bring a huge amount of unique perspectives and solutions. And my own most successful projects have been the results of combinations of experience in multiple domains at once.
And none of this prevents you from actually developing deep domain knowledge. For example, I have NOT held the same job for a decade and a half, but I HAVE been using Python (and other various software) for all that time, in a large amount of very varied situations, and I absolutely have "deep domain knowledge" there.
I built a full stack app in about 6 months, at one point, 5 years ago. (frontend js framework, backend js framework, SQL framework)
I now work for a company whose applications aren't much more complex than what I built, in terms of systems and complexity. Though the apps are definitely much more polished and with many more complete UX & usage options. It makes millions of dollars.
At least at most large companies which are lumbering, slow moving, where 60% of people contribute and 40% of people barely hang on by pretending to work
(largely because A. they don't know what's going on due to poor documentation and poor requirements gathering, and B. they aren't qualified in the skills needed for currently under development work).
As a solo developer, I move much faster and learn much more on my own, than I do at my current job. Why? Because I direct my own work, on my own projects. I don't have someone who has never built an application, who has a project/product manager title, trying to gather requirements for something they've never done before.
Not to mention that they've never founded an organization and led it to success. So, they don't understand how Apps are built, and the don't understand how Organizations are built and guided efficiently...
Combine this with a company that has a bunch of legacy applications and is now moving into somewhat over-hyped frameworks...
Yeah... Don't get me wrong-- I like the people I work with. I see a lot of under-qualified people in management who are slowing down the system because they can't efficiently organize people to do what they don't understand-- they have too many unknown unknowns in their ability to parse out upcoming work. Unfortunately, most of them were hired for currently-fashionable political reasons.
This is exactly what I’ve found. Most of my work is technically easier than my personal projects.
There are definitely parts that are far more complex, but the vast majority of the company isn’t working in those areas.
From what I’ve seen, if you want domain knowledge you have to dig for it.
So everyone assuming that I stopped learning anything new 12 years ago can fuck right off.
I'm not saying this to brag, I'm saying this to point out that all these assertions that "you should change jobs every 2 years or you stagnate" or "you can't learn your job deeply in 2 years" are both completely unfounded bullshit assumptions. It completely depends on what the job is.
The reality is that for a massive number of devs working for traditional businesses, there isn't all that much on the table. You can try to move up into the management caste and get big bumps, but you're only going to get incremental advancements.
I actually wonder if any companies have considered massive salaries to be a liability in litigation, because it could be pointed to as an example of unfair wages.
Anyway, you're getting a fancy management job, or some super elite dev job.
Similarly, I have worked at places that have had "good devs" who didn't have such image problems, that worked at places that did not understand (or appreciate) what it was that they had, and did nothing to keep them on the staff. "Whatever. It's hiring season anyway." After their departure, productivity suffered, and when points were reiterated (that were covered before the person left), the response was something along the lines of a timid, "Oh...I thought you were joking."
Your assumption is constructed around the idea that people will always do what is in their best interest, and be in a frame of mind to appreciate the "big picture" things. In my own experience, this is rarely the case. More often than not, it is a sort of miracle that even some very well-known places are able to stay in business.
I'm sure there are exceptions, of course. Some upper management really are very smart and "keyed in" to the value of specific employees output and are also in a position to do something about it. I would simply argue that those arrangements are significantly less common than you might be led to believe, and that such remedial, reactive measures are unsuccessful far more often than they are successful.
Just a thought!
There is always a reason the devs are not coming and most of the time it has something to do with work / life balance, benefits or salary or any of the above.
I dont know you, you could be the coolest boss on earth but if something is wrong with the above points then you wont find what you are looking for.
I have noticed that too many times employers want literal gods to come in and fix their entire tech stack, their product, and by extension their company.
Of course, they are frequently only paying average salaries.
"there is a massive shortage of blue collar jobs like truck drivers, hospitality and restaurant employees, and other employees necessary for actually creating and delivering the goods and services that consumers want and need on a daily basis."