I think I know why you can't hire engineers right now
cushychicken.github.io
cushychicken.github.io
>Is an extra $10k per year worth learning a new org, a new skillset, a new set of expectations, a new set of coworkers, and a new boss?
For many engineers, the answer is: “No.”
Yes I could quit and get a ~20k raise by shopping my resume around, but I don't need the money. I have enough for a down payment on a house, I meet my expenses for the month with 1/2 of one paycheck, I can buy a new car on a credit card if I wanted to. More money would be _nice_, and I imagine I'd be singing a slightly different song if I had kids, but it's much less important than knowing the work that I do has meaning and an immediate impact on the world, and about as important as working with new/interesting technology. I imagine there are a lot of early career (26-30 year old) software engineers who are in a similar boat. If money was a motivator I'd be serially founding companies and striving to be The Next Big Thing. I'm just not. I'm happy being hire number 13, or 99, and working with people I like doing work I find value in.
Edited for spelling
If you look outside of coastal cities, there are plenty of job offers for engineering jobs that pay less than 6 figures. Over in Europe and East Asia, $50 to $60k salaries are the norm. And people job hop frequently for a few extra $k because that corresponds to a significant increase in quality of life for them. The difference between a 2 br and 3 or 4 br apartment, between another kid or not, etc...
People will absolutely leave your company if they think they can get paid more elsewhere. People will absolutely pass over your job offer if they think they can get more elsewhere.
You also see the reverse phenomenon which is that you'll find plenty of engineers doing soul-wrenching, boring jobs in toxic environment who still say because they are very generously compensated (hello FAANG).
Yes, and we have plenty of nice stuff that goes along with it
Healthcare, 30 paid holidays, unions, paid overtime, weekends and calls off work come extra (it is 40h week period, want more pay for it), retirement, flex time, ...
Like the OP, my expenses are more than covered, getting more isn't worth the hassle to change.
Ah, and in some countries having too many companies on the CV isn't well seen, it appears the candidate isn't able to fit-in anywhere.
Considering that each of these tech companies are trying to hire in the order of hundreds of engineers, and willing to accommodate remote work from locations that they previously did not consider, is it really a surprise that other companies with less competitive compensation packages are struggling to find talent?
This is also what a lot of europeans do with FAANG jobs.. get a FAANG job, move to america, live there for 3-5 years in a 4 bedroom apartment with 12 roommates, eat ramen, come back home, and buy a house.
There's also a question of how much more money do you get... 5% more to do something shitter than now... not worth it... but 50% more, is enough to think it through, if nothing else, how much sooner can you retire with that.
As a newly graduated CS student in Denmark I got a job earning $74k a year. I got warned by my union that my salary was on the low side and, come the first negotiation round of the year, I should ask for a larger raise than simply a yearly adjustment. And based on my union's numbers I don't think almost any developer is working for $60k or under in this country.
In my eyes, this is a good point.
Currently working in Latvia and getting a net salary of around 2k euros a month now - staying at the same company makes it increase by a few hundred euros per year. Actually provided more information in another comment of mine, compared some of the public sources for software dev salaries in the adjacent countries too: https://news.ycombinator.com/item?id=29595158
Also wrote about my savings and financial circumstances on my blog a while ago as well: https://blog.kronis.dev/articles/on-finances-and-savings
Thus, job hopping even for comparatively small increases is the smart thing to do, as well as looking for opportunities like side hustles and attempting to take advantage of a globalized economy that lends itself well to remote work (something that i'll inevitably need to explore once i'll have finished a pretty large enterprise migration and some pilot projects in my current place of work).
Now, my salary is still liveable and certainly better than those of who work for the local government, who receive about half of what i do (according to https://www-visasalgas-com.translate.goog/valsts-iestades?_x... which is a site that displays the published data per government org) and many other seemingly essential jobs (like teachers, medics, firemen, policemen all of which are comparatively underpaid). Even as a software dev, buying my own house anytime soon is unlikely, as is buying a new car, or many other luxuries that others take for granted.
In short: the original argument definitely holds true for those who are well compensated, but yours is also valid for those less so. Already, there is talk locally of not having enough engineers, especially in those aforementioned government jobs.
Indeed, the population of people who post on this board are very binomial, and it often causes blanket statements to be confusing to one side or the other.
> People will absolutely leave your company if they think they can get paid more elsewhere.
Maybe you will. Maybe they won't. Everyone has his own bar for "enough" money. For some there is no such bar.
Didn't the parent directly say that? Money not matering after a certain point means that it still matters before that point.
> Read any publication that cares about business, from the NYT to the Wall Street Journal, and you’ll see a ton of hand wringing about The Quittening, and the accompanying talent shortage.
These publications aren't talking about the workforce in general, they're pseudo-gossip articles about the wealthy top engineers and how well-off they are that they can focus on things other than how much they put into savings each paycheck.
I'm personally in that boat, and frankly, I'm a little bored but not bored enough to go back to work as an SE full time. If companies offered more part time work and highly flexible work, it might be enough to drag me back in.
Even large six figure salaries just aren't enough money for the soul crushing reality of renting out my brain full time to solving someone else's problems now that I have enough.
Maybe a small subset. The median dev salary is $110k. So no, only a very small number are able to retire in their 30s.
That's cuz your numbers are too small. Offer a 50% raise instead of a 20k raise and you will see different results.
> Yes I could quit and get a ~20k raise by shopping my resume around, but I don't need the money
Plenty of stories on Blind of people shopping around and going from 150k TC to 350k TC, so I guess it really depends on your situation.
I've never seen in the eurozone the US-style crazy-high 100k+ salaries. In general, here an IT engineer hired fulltime fetches a rate which is comparable to many other regular jobs, and generally lower than other engineering positions. However the churn and stress is much, much higher in my career experience. We joke about JS, but almost everything around the IT has now super-fast refresh cycles which require never-ending honing of your skills just for the sake of it.
That initial candidate surplus is now starting to age and drain. These CS candidates have now a decades-old experience in the current tech stack which is worth gold, but are also tired of the churn. You can still get them, but be prepared to pay them a lot more. Many companies which were founded on entry-level salaries will now see their workforce explode in cost. This is going to be huge with the current inflation in the next 2-5 years, where your average company raise won't cut anymore and you're forced to jump ship to maintain your purchasing power.
The young talent is still there of course, but it's often more specialized than what I remember a few decades ago due to the growth of the field. This means that finding a good fit reduces your pool significantly, unless you accept your candidate will be learning for a long time.
Depending on the person, that may be a good motivator for them to not seek more money, but to seek more time instead. I'm certainly there. I've turned down more money when the position would mean that I was responsible for an awful lot more and it would take time away from my kids. When they're older and possibly out of the house, that may change, but for now? I'd rather have the time than the money because, like you, I have "enough." It's just not a limiting factor at this point in what I care to do, but time is.
> For many engineers, the answer is: “No.”
> Yes I could quit and get a ~20k raise by shopping my resume around, but I don't need the money. I have enough for a down payment on a house, I meet my expenses for the month with 1/2 of one paycheck, I can buy a new car on a credit card if I wanted to.
This entire thread is mind-blowingly backwards though it totally explains why we the industry is in this position. It starts with people saying that "they don't need more money" because they can borrow or they can $20k more by shopping around their resume if they need to, followed by people waxing about how $50k-$80k is a decent salary, followed by people saying "no one gets paid $250k out of college"
It is very simple: $20k extra over a period of 52 weeks is extra $384 per week, which is less than extra $10 an hour.
Here's why you cannot hire engineers: you are not paying them enough money.
Engineer: $55k is good if i have <blah blah blah>
Someone who wants to hire him and has no toys: $80k
Engineer: I guess but only if I get to work only really cool projects
Someone who wants to hire him and has shitty projects: $100k
Engineer: And I want to have super smart people working with me
Someone who wants to hire him and does not have smart people as he wants to build a team around this kind of engineer: $150k
Engineer: Yeah, i guess it will work.
Someone who wants to hire him and does not want him to shop around: $170k
Engineer: hell yes! I'm going to unshitty these projects and make people around me smart!
Oh, you don't want to pay $170k/year for an engineer because you think those plebeians should be working for $55k? Well, that's your problem.
P.S. Can't hire at $170k/year? Offer $220/k.
P.P.S. $10k/year is not a raise.
> 3. Some degree of repeatability in work environment.
Instead of the above point, I am looking for...
A place where I make greater impact in a small company working along side ethical people who are not trying to exploit their customers/consumers, rather than a FAAMG where you're replaceable within a few days and follow no ethics just revenue in mind...
A place where managers are accommodating of suggestions just because I write code doesn't mean my ideas about the product/solution aren't worth listening to...
A place where you admire or atleast respect the CEO and the company's business tactics instead of my ex-company whose past CEO is now an "astronaut" just to play a marketing gimmick I guess... :p
Please connect with me if you consider your startup/company is one such place... ;)
> For many engineers, the answer is: “No.” Yes I could quit and get a ~20k raise by shopping my resume around, but I don't need the money.
Would you feel the same if you were enticed to switch jobs with offers of 1.5x, 2x or more than what you're currently making?
I think plenty of people would consider leaving their current employer, even with the headaches that comes with doing so, to make 50% to 100%+ over their current compensation package. I know I would.
I agree that engineers might not jump ship for a $10k increase in income, and it seems to me that the market rate for engineers based on current demand isn't captured by offers of $10k to $20k above current salaries. That would suggest that if employers are truly that desperate for engineers, like they say they are, then they'd need to offer more money to outbid their competitors' offers.
Truthfully, I have a feeling that many employers' choices of not offering larger compensation packages to potential employees don't stem not a rational economic choice, but from a feeling that such offers are "too much" for engineers. Some companies would rather not hire, and make less money, than hire new employees at their market rates and profit from their work.
I think most people of working age now have been part of the individualism movement, which leaves us pretty ill-prepared to deal with the feelings of discontent when we finally succeed at "getting ours" and realize it wasn't all that fulfilling. Solving problems that matter to the community you live in, or the greater society you're part of, has so much more intrinsic reward.
If the money is the same, I'll happily take learning a new skillset, a new org, a new set of expectations. When I had not accumulated enough money early in my career, I consciously had to think about stable income. Now that I have accumulated non-trivial sum of money, I'd happily and readily take new and exciting challenges - i.e. I can take more risks as I can afford to, and I'm willing to take more risks for non-monetary reasons. And if the money is better, even better! Thus, in fact, that's exactly what I did in 2021 - I switched my job.
All the things you mention matter to me, but I added 50% to my salary on my first jump, then another 110% on my second. All in just over a year.
Money is still my primary driver. It will be until I am fully financially independent. Not just able to live on a FIRE budget of $30k a year, but able to chase my own fairly expensive interests.
You're right, I'm not going to leave for another $10k, but another $100k, sure, and right now that's not that difficult to achieve.
Not to mention how much effort has to be put into the interview process, my time is worth money, I'm not giving away minimum 6 hours of it for free if I don't need to.
When you are out of school a change of 1000€ per year means nicer vacation. Go for it.
The same 1000€ is something I would not even consider. I am at a plateau where it requires significantly more money to change your way of life, and the 1000€ would not be perceptible.
Maybe that of you add the "retire early" part it may make sense to optimize your income, but it is too late for me anyway.
True. But... When I hear "Best year ever!" But then hear, "Sorry, we can't give more than 3% raises". Someone is getting theirs. I want mine, too! I helped make this the best year ever, in very substantial ways.
Not too long ago, I was at a Very Large Tech Firm. Base pay was great, and the RSUs were really great. I ended up leaving for a smaller company where IT is considered a cost center. The tech stack isn't all that exciting, total comp is a significant step down, and the only way to stay here and get a substantial raise is to get promoted... but I get along well with the people there, and I don't have to worry about off-hours emergencies. The only companies that might be willing to offer enough for me to take the jump away from that, would likely be a well-capitalized tech firm, of which few have a physical presence here.
Fixed it for you
I would be genuinely amazed if you couldn't fill your positions once you started offering upwards of $1.5m yearly.
Extra X a year for a couple of year? No.
Extra X a year for the rest of your working life? Yes.
Consider that some employers anchor salaries to previous salaries ala "we won't pay you more than Y more than your previous salary" - so any raise represents an increase in all future offers.
So despite the downsides, working for a couple of years under a new salary has essentially increased your worth in the eyes of the market.
I'd move jobs if someone I knew and liked through my network wanted to hire me for the right job for a nice increase, but the idea of taking a +20k job with some random boss I have never seen under pressure or on a bad day--no way.
Taking a job when you are older is like buying a house without an inspection--you better really know and like the bones. Who you work for is the #1 factor for me. Nothing worse than hitting 50 and having some hateful blowhard breathing down your neck. Stress just sucks in your 20s and 30s, it can kill in your 40s and 50s.
I dunno... maybe for hotshot FAANG jobs?
I mean, I love where I work now, but if some company were to offer me 250k to jump ship, I'd be MIGHTY tempted!
Money just needs to be enough. After that you have enrich the job sufficient to hook people in.
Perhaps the first thing a business needs to do before it starts hiring is learn how to hire.
I don't know... as soon as you do the stability of an existing job seems more compelling.
clearly you've never been poor.
1. The TC is a lot higher, like 1.5-2x.
2. They don't have to move; or they do want to move, just not for a job.
It doesn't matter that the work is boring (really fungible cog low-impact stuff). It doesn't matter if the colleagues are meh. It doesn't matter if the company has a reputation for lay-offs/churn/etc. If you have those two items above, you'll likely have a good hiring success rate.
Even stronger: many of the "fads" (like cool programming languages, toolkits, frameworks, etc.), moral/virtue-discussions du jour (like hating on: FB, crypto, commercial spying apparatus, AMZN work conditions, etc.), etc. also don't appear matter in the large. Someone boycotting AMZN one day will be happy to accept a very healthy salary + benefits package writing legacy Java 6 backend code if it means a good double- or triple-digit percentage in compensatory promotion.
For this thread, I just asked an extremely talented programmer ex-colleague (Linux kernel hacker, expert at C) how his job is at Oracle and why he chose it:
> Ex-Colleague: Funny you ask, because I was stuck on-call over the holidays. I'm basically a plebe to Larry Enterprises. Mostly that and having a side gig. Not writing any cool code for sure.
> Me: Why not go elsewhere where things are a little more interesting for you? You have no shortage of talent.
> Ex-Colleague: Pay is great. Not a lot going on. Not a lot of fuss on the job. I easily own a house and pay a mortgage and have a lot left over. Definitely put in less than 9-5 worth of effort. Probably can retire early at this rate.
This type of attitude doesn't appear to be so uncommon, at least among people I know.
In my case for the company I hire for: Extreme stability (check; been around and stable for ~60 years), excellent work-life balance (check), really cool work (check; cutting edge research and engineering), and really good and diverse colleagues (check; gender balance and representation, stable personalities, highly interdisciplinary skills, sometimes world renowned), open-source and conferences (check), education and 20%-of-9-to-5 time benefits (check). Those things may matter to some extent, but contrary to the article, they don't seem matter as much as an extra $50k to $250k pretax compensation in the bank and being able to do so from a low CoL area at your comfort.
The good news for me at least is that we aren't a mega-growth-kind of company, so we can take our time. Ultimately the candidate that values the above does find us (or we them), considers it a dream job, and tends to stay for 5-25 years.
A 3rd factor for me however has always been the tech stack. Engineers I recruit are keenly aware that if they get stuck in a non-modern or too-modern tech stack that it could hurt their future career opportunities.
You can’t just contribute to open source and reach a high level, at least not very quickly very often. They want to jump into a high growth company and contribute to large interesting apps / services that get used in production. Open source is great, but on a resume, it’s nothing like saying you launched an app that handles millions of dollars in transactions, or billions of API requests.
The gilded cage.
As you get older, you have seem to have less time. It's some sort of biological illusion, but having to spend time prepping for interviews, running your life, family and so on, means the incentive to move from a very comfortable job to another has to be a lot more than when you were in your 20s.
Compensation, WLB, and benefits matter FAR FAR more for the majority of people than "good projects" or "smart colleagues". If you want those and can't get it in your job, well that's what open source work is for.
Sure if you pay me twice my current salary, I will probably do whatever you ask me to without complaint. But around here such a big pay increase would be a fantasy.
It's my case too. I worked until 40 with a great job doing cool things, with a lot of free time. I'm not materialistic at all, don't care about wealth, social status and stuff. Yet, I started worrying for my retirement and savings, wasn't able to buy a house. Now I work for a FAANG for 5 times my previous salary. It's not easy, I don't always adhere to the company's values, oncalls suck, it's a lot about patching broken systems I didn't build. But money is important.
Unlikely these are the same people tbh
Basically, my job requires using a lot of tools and technology and processes created by other people, but none of those tools are easy to use or well documented. In order to get stuff done you have to have a social network of people who know how to do the things you need to do, and know all the secret tricks. The right environment variables to set. The right arguments to pass to simulators. How to find the important bit of data buried webapp developed by people who apparently like to invent new words for old concepts. I get a lot of terse autogenerated emails that probably mean something to somebody, but not to me, and don't have human return addresses or really any way to discern the context of where they came from or why. A lot of tools use domain-specific configuration languages that are usually just python scripts that call a bunch of functions that are defined elsewhere and have no documentation.
These things might be reasonable in a startup with a dozen people, but we have over a hundred thousand. My opinion is that once an organization is a certain size, everything really needs to be written down and easily accessible. I shouldn't have to regularly ask people how to do basic things, it should be on a wiki. If it's complicated, it should be in a training video, or a user manual.
Here's the root cause of your bug:
> Individuals and interactions over processes and tools
> Working software over comprehensive documentation
I remember when my employer adopted agile. One of the first things they did was lay off their team of technical writers.
Also you wasting your time flailing about probably makes some manager's budget numbers look good, because they got to "save" the money that would have prevented you from flailing about.
When I first moved into management roles I didn’t fully understand how much of my job would be simply saying “no” to a constant stream of engineers wanting to write or rewrite custom tools, libraries, frameworks and platforms when otherwise sufficiently good alternatives already existed. Not all engineers, but once you get into a big enough organization there are a lot of engineers who want to do meta-work and rework things instead of actually shipping things.
The worst offender I worked for had meta-tools on top of everything. You couldn’t use GitHub, Slack, or even our cloud platform without first learning how to navigate all of the custom tools and bots that had been put together to gate access to everything and make it work. And like you said, it was poorly documented. It turned into little fiefdoms where you had to know who to talk to if you wanted to get past the systems to get things done.
This can all be avoided with good management at an organizational level, but of course some managers want to get in on the situation because it puts them in a perceived stronger position in the company if their team is at the center of everything.
This %100. Automate all the things, but for any part of the process that cannot be automated/scripted, write it down. And don't just put it in some random Google Doc or Sharepoint where it is lost forever in the ether. Put it in a README that lives with the code or have a shared Wiki for the team. It need to be somewhere that is generally available, searchable, version controlled, and easy to update.
In the open source world, I've developed a large low quality codebase that is very complex from when I was less experienced. This project has gotten plenty of contributions over the years, some from less experienced and some from more experienced.
The experienced developers know how to get around the codebase, but the lesser experienced ones tend to complain about quality. I see this in the workplace as well.
I had this exact same issue when I was less experienced. New codebases was very difficult to understand, but now that I've been through a lot of them in various languages and quality, it's not as bad as it used to be.
I guess the argument here from the business point of view is that we write code for the less experienced? In a way this makes sense, but paradoxically some complex codebases that I thought was messy in the past have become more elegant today as I've gained more experience.
1.) The people who can do this aren't going to do it for 30k or $10/hr. Properly solving this problem requires an understanding of tech and the development process, pedagogy/communication/instructional design, and information management. Lacking any one of those would result in a system that's an unusable vanity project. I have a couple of decades of small-shop coding experience, experience as an instructional designer at an Ivy, and graduate education in information management, but if you want me to use all of those it's going to cost you and companies are resistant to that. (See: How a lot of non tech product companies treat their IT teams since they don't generate revenue). Now imagine if the project were led by someone more qualified, which it should be for a company of your size.
2.) Most companies don't have a culture which would allow this to be done well. This is the sort of work which requires both a lot of honesty and a lot of careful planning. A lot of information ends up hidden or inaccessible due to people's egos, or executives not being able to handle the information so it's buried. People need to be honest about their workflows and what they don't understand, and they need to feel comfortable being honest about such things. This gets really messy. On the dev side, a common cultural issue is "I had to learn it, they should too" or the urge to make understanding the complexities into a shibboleth for the in-group.
So I agree with you, but it's unlikely to change soon in my opinion.
All in all, this strongly reminds me of the "Collapse of Civilization" described by Jonathan Blow: https://www.youtube.com/watch?v=ZSRHeXYDLko
It's for similar reason that I like to keep unreliable dependencies to a very strict minimum. I can rely on my compiler, my editor, my OS, and to a lesser extent a bunch of extremely popular libraries. But as soon as we get to internal tools & processes or obscure third party libraries, certainty goes downhill very quickly.
More money does not compensate for this. I thought it would when I interviewing a few months ago (50% salary increase). I was wrong.
Problem is, at mature companies there aren't enough greenfield problems to match the large number of engineers who are looking to climb the ladder. So stuff is rewritten, then rewritten again since nobody understands the rewrite, and so on. Managers kind of look the other way because retention and the ecosystem becomes messier and messier over time as promoted folks leave and new folks come in that need to be promoted.
This is the world of professional software development at pretty much every company not a startup.
The article mentions 3 things engineers care about: Technology, Intellection and Stability. Perhaps your pain fits into the 3rd category (if extrapolate a little).
If so, ironically, the first 2 at scale is what causes the lack of the 3rd.
When you make wider roads, the traffic will get worse, not better. Perhaps it's similar technology organizations. It's almost inevitable.
Anecdotally Amazon figured this stuff out by mandating well defined organizational boundaries (kind of like solid white dividers on some section of the highway, eh?) and by making each team responsible for its own developer infrastructure. It seems wasteful at first, but maybe less so at scale. Maybe someone working there can confirm/deny whether this is the case.
I've had this conversation before where documentation is proposed as a silver procedural bullet and it never works. Documentation gets stale and eventually out of date. Do you really want to be in a position where you have to /recompile/ all of those documentation/training video/user manual materials? Unless you're selling it, probably not.
The solution you are looking for is not documentation but automation and training. The things which can be automated to make the process closer to obvious should absolutely be automated. The things which are intrinsically more challenging and can't be solved through automation should be covered through training -- and not a "training video" but a real set of sessions where someone (likely your manager or a tech lead responsible for ensuring clean consumption of their modules) is walking you through the right way to do things and leaving time for questions.
I say this having worked at a place that touted a documentation centric culture at the level of organizational scale you suggested. If you're doing anything remotely challenging, documentation only gets you to the starting line. It doesn't get you to being useful and autonomous.
Fortunately, that’s often me (a supervisor), so I get to be self-deprecating when conveying this requirement.
Maybe "Institutional Complexity"?
Some degree of complexity is intrinsic to the problem domain, but it's the incidental complexity that emerges as a thoughtless side-effects of other efforts that is the most annoying, especially when it compounds.
To flip your comment on it's head... Some of my most satisfying projects have been the ones that eliminated this type of complexity where I work, because they improved the quality of life of everyone I work with and gradually remove all but the necessary work. However because these things are usually difficult to isolate and deeply engrained, this is only usually possible once you've gained enough trust and autonomy, which I suppose makes it a hard sell for a new job.
Plus business won't put in the budget necessary for practically no change from their point of view.
Technological + organizational debt?
To me, what it sounds like you are describing is the developer experience. Or "devX".
* The highest paying software companies employ LeetCode style interview. That is off-putting to a lot of people even though the money would be super sweet to have.
* Some wannabe startups also employ LeetCode style interview even though they don't pay anywhere near FAANG/Unicorns.
* You know what's worst than LeetCode style interview? LeetCode style interview with really long rounds. It's super off-putting to be tossed around for weeks.
* You know what's even worse than that? Lowball offer after completing the entire circus.
* PIP culture is scary and it's hard to judge if the new company have it or not, except Amazon. We all know Amazon has PIP culture.
* Long hour culture is not desirable and hard to judge. What's the point of making 20% more if you ended up working 40% more?
Ugh yeah it’s ridiculous. We can’t hire anyone! Have you considered not putting candidates through months of studying to memorize a bunch of algorithm tricks and then grilling them for 5-10 hours total on those? No - that’s not what the cargo cult manual says.
Not only off-putting but out of reach to older engineers with family responsibilities. I would also add that the value proposition for working at a FAANG isn't nearly as competitive if based outside the US.
That's why if you're a small start up, trying to hire like Google is the dumbest thing you can do.
Money should be a big factor. Imagine a job where year 1 you work and year 2,3 you get to do whatever you like and own 100% of the equity. That is what 3x TC basically could mean.
And I do the same for all other parts of an interview too. If I were asked to knit a scarf during the interview process, my reaction would be similar.
Even rewinding to just 5 years ago, there were much fewer companies flush with cash. Now with the hyper-capitalization of so many up-and-coming startups, a lot more companies are now at the bidding table for the same pool of candidates. And even large incumbents have big plans to double in headcount, effectively making the tech market talent side constrained (it always has been to a large degree, but even more pronounced now). So now companies are largely competing on compensation packages, because the ball is very much in the candidate's court. Amazon is starting to pay up to ~$400k in total compensation for an L5 mid-level engineer due to retention and hiring issues, and it's commonly known within tech that Amazon has traditionally lagged behind other large companies in compensation.
Job seekers have options and are very much in a position of leverage. That is why it is hard to hire right now, because everyone needs to hire, and your company probably isn't paying as competitively as others.
It’s bizarre how secretive they are. I imagine the recruiters are looking out for their own interests.
Recruiters are in the way.
I’m a software engineer that started a recruiting company. The current state of the industry is pretty bad. We are trying a different approach- we are transparent. We share all the details about the company right out of the gate. Including salary info. We refuse to work with companies that won’t let us publish salary ranges. I’d love feedback (https://app.facet.net/jobs/search)
So much this. I've had many conversations with interesting companies that have good pay and cool products, but recruiters/hr keep coming up with bullshit policies and processes that are just obnoxious and only serve to sort out the compliant from the competent.
It seems like it would usually be in the best interest of the potential candidate to work through the recruiter. By having been sought out, you have an advantage. You can actually talk to a recruiter and check status of your progress, where as a web application is a black box of which you may never hear another word. At some point the recruiter is going to feel invested in you.
Like, I just don't understand the audacity of most of them. Especially when almost invariably their competitive pay is 30% of what even base level fangs would offer. Its a complete waste of everyone's time.
I'm astounded at how awful recruiters have gotten. What's insane to me is how no one in the industry seems to question the spray and pray approach to recruiting.
There are a few "whoa that's neat!" things on my resume such that if a recruiter or hiring manager looked at it they would certainly notice. This works as a great test for if a recruiter is really looking at me or just spamming a keyword on my linkedin. This filters out essentially all recruiter spam.
What's funny though is how much energy companies spend to pretend like they've read your resume and want the actual you as a candidate in any way. Facebook recently tried a tactic of sending email from the hiring manager. "I really want you on my team, let's find a time to chat!" But clearly it was just an automated email since the message didn't mention any of my resume that might make me a particularly interesting candidate for the team. Another company clearly automatically scraped my resume to make it sound like the read it, but picked the most bizarre, nonsensical things to pull from it.
The funny thing is, even though I love my current job, if you came to me as said "it_does_follow, I've noticed that you worked on XXX and YYY projects, we really need someone who could do that type of work for our team, we're working on exactly these type of problems" and they touched on the actual work I've done that I'm proud of, I would jump on a call in a heart beat.
Every engineer really would prefer to work on problems in their particular domain that interest them, for a team that values them as an individual. I am certain that if recruiters spent their time targeting a much smaller pool of good candidates that really are a match for the role, they would have much higher success rates.
Instead I get wordy yet vague e-mails or dodgy calls where they don't dare drop the actual name of the companies until you've agreed to go on an interview. And of course, being recruiters instead of actual engineers, they don't actually know what they're talking about.
I just don't get it. I've only been approached by a 'first party' recruiter once, for Google Docs in Germany. I didn't want to relocate or work on Docs though so that was a pass for me, and that was after the 'shine' of Google had passed as well.
One recruiter just couldn't understand that the commute for me was major. I had just left a job which had a 1-1.5hr commute each way for me, and I was looking exclusively for something with no more than a 30 minute commute. They kept trying to toss my resume at jobs that had equivalent or longer commutes because "the perks are really nice" or the "pay was really good". Which I took to mean their commission would be really good.
The only roles I've ever accepted were roles that involved a hiring manager reaching out directly to me. There's a reason for this, namely that the only recruiters worth a damn seem to be working in boutique firms and want to take a significant bite out of my future pay.
Really, just avoid them if possible.
Looking at it from the candidate's point of view: Being rejected is actually something that psychologically kind of sucks a lot. Even if at the level of higher cognition you are perfectly aware that it's just a numbers game, and that you shouldn't let rejection get to you in a psychological way, we are not vulcans but humans. Rejection means cognitive dissonance in a big way: You applied for the job, so that means you wanted it. But they rejected you, so that means that you're not getting it. It's also a threat to your identity, because you think of yourself as being pretty good, and now there's someone who thinks you're not good enough for them. It just sucks.
So what do you do? You engage in cognitive dissonance reduction. You look at that recruiter spam, and you immediately start looking for reasons not to apply. Because if you find any reason not to want the job, then they can't hurt you by not giving it to you.
Recruiting is broken in a big way: We need to find ways of doing it that causes much less psychological friction.
On top of my resume, you want me to fill out multiple text boxes with information about why I want to work at Random No Name Company, what I expect from my time there, what my personal ethos is... Then you ask me for a cover letter?! This is literally to just initiate a lottery where it seems the odds of the next step happening are less than 1%.
It's more brutal than dating. I do not envy any single engineers who are juggling both games.
It could equally well be that some candidates get rejected 1000 times, while others get hired pretty quickly.
Nowadays, work is just signing into my machine every morning and joining a Zoom meeting for standup. Interacting with coworkers is either via Zoom meetings or via Slack. I hardly need to interact with them apart from work-related matters. There isn't an opportunity to chat at the coffee machine, or grab lunch together, or get drinks after work. The work is now just the work that I do and not the people I work with or the building that I commute to.
What does this all mean for me? It means if I find the kind of work I do boring, or I don't think I'm paid well enough, I can just quit. I can judge companies I work for based on pay, type of work I do, likelihood of promotion (for more pay), and how many hours I need to put in. All the other things that could impact how much I love working for company X are gone. It's purely "what is the job doing for me?" now. I think that's playing a role in people wanting to quit. They're no longer tied to their jobs as much as they used to be. They're realizing if they don't like it, they can just leave.
The difference in how the day-to-day activities 'feel' between company A and company B just isn't as big anymore now with full remote.
We're struggling to hire senior talent, well, senior, entry level, anything but apprentice. The thing is: So is everyone else. There are statistic on these things, there aren't anyone to hire, you have to get people to leave other jobs, but then those companies are just shorthanded and you solved nothing.
So we hire as many apprentices as we're able to handle and legally have. When their training is done, 4 years from now, the majority of them will receive a job offer. So far we hired all but one of our former apprentices.
Engineering isn't the only line of work with this issue. My wife business is in the same situation. Unemployment rate is at 0,7%. The people not employed are all in that situation due to personality issues. The only available people they can hire are those toxic enough that most would prefer not to hire them if ANY other option is available. Other than that, take in as many apprentices as they can handle and ofter them a job in 3,5 years time.
This is debated in Denmark ever year, in July, when schools announce who got in to which universities, colleges and so on. Every year: We're missing nurses, engineers, STEM, all the usual. Not once have I hear anyone mention which subjects people need to stop applying for. My personal favorite subject that can be cancelled: SoMe marketing manager. The amount of people applying to those educations are insane and they can't even market themselfs well enough to get a job.
Any < 100 person startup which is doing Leetcode interviews is letting go of so many great candidates who will actually get the job done.
A lot of times interviewers turn interview into an ego contest where they are looking for reasons to reject. Try your best to remove those biases. If you are a company, have a predefined set of 10 questions that your interviewers can ask from -- make the evaluation criteria as objective as possible. There is no place for "vibe check" in technical interviews.
If any company offered me a shot at management right now, despite the fact that I have no management experience, I would do it in a heartbeat.
Do you have any ideas about how to match the kind of compensation so that it is aligned with that investment. If I employ somebody and build up their skills, what's to stop them from just jumping ship and capturing the payoff for my investment all for themselves?
Heh, maybe this is why I am an average engineer.
The truth of hiring is nobody is actually honest about it, most of the advice you read online is unrealistic. Engineers mostly care about compensation, working conditions, and future job prospects. Companies mostly care about whether you fit some pre defined funnel and can pass their interview hoops they don’t care about how interested you are or “how much value you can bring” like you read online.
Companies will hire the engineer who passed all 5 technical interviews with good feedback over the engineer who got medium feedback but has experience and interest in the field. And engineers will turn down the most interesting job with middling pay for the high paying boring job that offers remote.
Hard lessons I learned over the last 24 months:
- Titles don't matter. Promotions provide minimal pay increases. It's better to focus on finding another job.
- Job difficulty doesn't scale linearly with salary. I'm working roughly the same as I did in jobs where I earned 1/3 the salary I get now.
- RSUs are the way to get crazy money. I completely disregarded them early in my career.
I'm very much on board with this. I put stability and money on about the same pedestal and is why I still work where I do after many years for a salary that is fantastic for 90% of the country but is "merely average" for Seattle.
Working for a rock solid medium-sized that's been in existence for a hundred years and funded by a stable endowment and a pile of public service contracts and has never had a layoff is more interesting to me than knowing that the odds of me still having a job in the 2030s, if I still want it, is well above 90%.
I definitely prioritize a certain level of money over cool stuff. However i make money to spend on things that make me happy - what's the point if you don't spend it. Taking a lower paying but cooler job, is just another way of spending your money.
Now I can be choosy, for even more money
This is the plain fact that those well off with their jobs just don't understand. Education is far too expensive, causing anyone but the funded kids to have to work - not focus on education. Walk into any university and see it in realtime. We treat students like cash cows, give them no support, and expect they will want to take on a hard degree when seniors are being turned down left and right? Yeah, no. American companies have created this problem for themselves and deserve to close their doors.
The problem with offloading it to universities is you turn the academic and foundational theoretical into the practical, thus making them vocational schools.
There needs to be a system of apprenticeships in software, not just internships for some and co-ops for University of Waterloo students.
I think a lot of companies are like an ecological niche that is tuned to a particular kind of candidate. That is actually part of the business model.
In the end the project failed, but the guy got promoted. It was just like a play. The script was pre-ordained by the management chain and we all had to play our parts.
Productively - we have to understand that different people are motivated differently. Some are motivated by money, some are motivated as in the article by cool tech. But others simply want time to learn, a contractual obligation by the company to provide time to work on open source, compassion, or any number of things.
The issue becomes when an organization continuously tries to filter people into an exact box. Systemic hiring produces systemic outcome - but if we value diversity, then we can equally value diverse motivations. A key part of managing properly is recognizing and working with the differences in people, helping them (and by nature all of us!) be the best we can be.
Okay, second /rant over.
On "hygiene" — quoting from Clayton Chirstensen's "How Will You Measure Your Life?":
“Hygiene factors are things like status, compensation, job security, work conditions, company policies, and supervisory practices,” he writes. Critically, it turns out that compensation is also a hygiene factor (as opposed to a motivational factor): “You need to get it right. But all you can aspire to is that employees will not be mad at each other and the company because of compensation.”
“If you instantly improve the hygiene factors of your job, you’re not going to suddenly love it. At best, you just won’t hate it anymore. *The opposite of job dissatisfaction isn’t job satisfaction, but rather an absence of job dissatisfaction.*”
On motivation:
"Motivation factors include challenging work, recognition, responsibility, and personal growth … The theory of motivation suggests you need to ask yourself a different set of questions than most of us are used to asking. Is this work meaningful to me? Is this job going to give me a chance to develop? Am I going to learn new things? Will I have an opportunity for recognition and achievement? Am I going to be given responsibility? These are the things that will truly motivate you. Once you get this right, the more measurable aspects of your job will fade in importance."
Many are perhaps realizing they may have decent "hygiene" in their work life, but "motivation" adjacent factors have been dragging, and continue to drag.
I’d rather make half faang compensation and work half as much.
My priority is my SaaS products I’m making on the side.
Why would I risk my ability to work on what I care about with a change? I could get an asshole manager, shitty coworkers or bad projects at a new job. If you stay at a non-tech company that doesn’t know what they’re doing, you’ll end up being the only person who knows how everything works after a few years. I can just coast maintaining that software now. Screw big-tech, they’re a bunch of pro-censorship authoritarian assholes, even if I could get a job at one of them I wouldn’t.
> I Think I Know Why You Can't Hire Engineers Right Now
But nothing on the article touches on an exploration of why these factors (which seem reasonable, in general) are any more relevant now than they were a year ago. Or five years ago.
Funny how my career started in electronics and embedded software and one of the cool things I saw back then was smart home. It was before "IoT hype" and I really thought that controlling your lights or curtains remotely via XMPP is cool. Now I'm building a house and hell no - I want to stay away of this crap, I want "dumb house" not smart. But still, technologically it's kind of cool
It's overwhelmingly a work force of thwarted techno-utopians. And that means many of the disillusioned workers have crossed the floor to become techno-dystopians, possibly bordering on luddites towards the very tech they are creating, which is an extremely demoralizing position to be in.
But to me it's just wild that working to bring about a net positive impact to the world isn't mentioned anywhere.
And no: that's not even remotely the same as "cool stuff". Making a rocket taxi for the super rich or tunnel for SOVs is not it. We are on the brink of a global environmental collapse, and a lot of the blame is on the "cool stuff" designed by engineers.
Engineers need to seriously start asking: would the world be better or worse off if this company trying to hire me didn't exist at all?
EDIT: and those rare islands of sanity are mostly small companies where the hiring process is entirely conducted by the software engineers themselves.
I get bombarded by recruiters all the freaking time, but I tell them straight up that I will not be offering any references except straight to an employer after an offer in hand (this kills off most of their interest) and that I would never entertain an offer unless it was a significant pay increase (which means it's gonna have to be an SV company doing the hiring).
On the other hand, there is more money floating toward more startups than ever, across every imaginable industry. They all need people.
Taken together, demand is through the roof, and the massive companies are pulling salaries up as someone senior or higher could ostensibly get a job there vs. your random Series A-C startup.
If you can't pay top dollar, you are in the zone described by the author. You need to offer whatever a particular candidate is after: respectable salary; a chance to own some massive new development area; a chance to go deep on a set of technologies; and/or a schedule that supports their lifestyle.
His view was that he didn’t need the money, he is a 25 year veteran, pre 2001. He was sick of incessant meetings, being a bum on a seat, a pawn to empire building, a body to throw at a problem. He became an Engineer to build cool shit and was being kept from doing it.
I did promise post grad level Engineering problems day in day out and that sealed the deal.
If the company becomes successful I would bump up pay as best I can, but it’s so risky ATM that I wouldn’t make a promise of better future pay part of the offer.
The other part is on blind/levels/hn etc people regularly expect 300,400,500+ but those jobs seem to be just for people with the right background.
They pay $180K full remote for Rust. (I may try to go there myself, so if you want to avoid me, keep that in mind...)
A ton of people in my professional network doing RF, ME, and EE are getting a taste of how sweet WFH is for the very first time. Many have been in industry for decades, and never had that kind of flexibility before. We're also in fields where people can't solve a hiring shortage by offering $400k total comp. There just ain't that kind of budget at hardware companies. (Except maybe Apple.)
The kind of raises offered just ain't worth giving up a cushy gig right now! The pull of money alone isn't strong enough.
1. Senior position with junior-compensation.
2. Junior position with intern-compensation (but senior skill profile)
3. No intern positions at all, or, if there are intern positions, they demand 10E12 years of job experience for the exciting opportunity to haul cables and monitors around all day every day...which is not only badly compensated, bu also provides ZERO useful experience for the next job.
I've spent more than 2 decades in various large corporate environments and things couldn't be more different on the ground...
Most developers aren't Star-trek types at all, and not even engineers. They don't have a strong talent or appetite for tech. They're what some call "bread programmers". At best, they do a reasonable job, and then go home.
I've worked with many "senior" developers in this space and even they do a terrible job in keeping up. They seem to have a large disinterest in the field altogether. These people are invisible, you will never find them online in forums like these.
But there's another aspect: age. It's fun being on top of tech in your 20s. It's quite different when having a fulltime job and a family, in your 40s.
Most never get to work on anything cool or fun.
In this large group of bread programmers, which I estimate may be the majority of the market, there's still people with useful skills or experience that other companies would look for. The reason you can't get them to move is because in most parts of the world, you don't get a 50-100% increase simply for moving jobs. It's more like 10%. Since they're already comfortable, they won't move.
Also people don't want ping pong tables or mission statements where we "push ourselves beyond our limits". They want a life.
I hate my job, and would likely hate any tech job at this point. Shitty companies are having trouble hiring because people know they're shitty. People examine they're being used.
This is the first time in my career that I’m happy to finish a contract without having another with paperwork all signed as I know I can get another one with the minimum of effort.
This makes life a lot less stressful and less likely to put up with nonsense, I am alot less stressed tbh.
Imagine you have ambition and you work in a team of 100 people. How do you get promotion if you don't want to leave? Headline-grabbing stuff, not good, solid, written down, maintainable stuff. It is said many times but it is true.
The only other way you might choose the good over the noticeable (assuming you want promotion) is when you get genuine recognition from someone you look up to. Imagine getting called out at a department meeting for sorting out the documentation or automating a load of rubbish stuff.
I guess either way you want to be noticed/make a difference right? This is easy in small companies because everyone makes it better or worse. Once you reach 50+, I think it all starts going downhill. Maybe some of these companies just need to organise as microbusinesses - something that microservices promised, so that everyone can make a difference.
Software pays way better than hardware in Silicon Valley. I would argue that the current engineering "shortage" is because a bunch of hardware companies haven't adjusted to the fact that they're competing against the FAANGs.
I’m weighing this against my own career. I’ve worked with very short sighted business managers a lot (IT at a large casino). They absolutely don’t care about tech the way us techies do. They also don’t care about a technician or engineer enjoying their work past whether it means they can pay less or ship faster. They probably assume all techs/engineers are or should be equally skilled. Many might even take learning on the job as a sign that employee lied in their interview or something.
I’m definitely jaded against management. For them to “learn” from the current environment the current environment will need to hit their revenues directly for a quarter or two-as a guess.
Seriously. I have had 7 managers in my 2 year career. Yet to be in a job where more than half of the team I started with stayed a year. It has always been frustrating, but granted I can't blame them and jump around myself as that's where the raises are.
Actually, programmers are a dime a dozen these days (soon to be a penny a dozen), but companies (we’re hiring!) want only “special programmers”. They can’t actually describe what they want, other than for entry-level programmers, but they’ll remain ever hopeful someone special will turn up…
We’re hiring!
What's interesting here is not the engineers becoming wise to the poor value proposition, but rather, the market's failure to respond with alternatives. In some cases, there is an inability to pay (e.g. "startup X cannot match FAANG company Y"). But in many others, perhaps the optimism of the person making the equity offer is blinding?
as far as engineer or IT jobs are concerned, I have been wondering for years: is the root cause that we can't produce enough STEM graduates? starting from k-12.
I have no strong evidence, but my current company could not even find candidates(we're doing chip design), in the past it would have to work with H1B workers but covid19 made that a slow and impossible task.
some could argue H1B is just cheaper, per my understanding it's not always the case, it is more likely that we just don't have enough STEM graduates to fill the pipeline over the last 3 decades.
A lot of people think that as software engineers they get to develop the product. In practice, I have mostly been an ticket processing Oompa Loompa. You can get some input, but that requires arguing with people you would often rather not argue with. That drives a lot of people away.
If so, I'd bet it's a large and relatively untapped pool of candidates, especially outside of the CS/EE departments. A lot of fields now make pretty heavy use of programming, ML and other tech. It's true that some folks are definitely in the "I tweak the script that gives the numbers" camp, but there are proper coders as well. Plus, you're pulling from a pool that's smart, good at teaching themselves, and probably making $25-$60k.
I do care about how much money you'll pay me, and how little of my time you'll ask for in return though. I don't need a corporation to provide me with "meaningful work" in my life. I need them to pay me an obscene amount of money with as little commitment as possible to facilitate my own self actualization.
While we are off topic, that opening by apenwarr (linked in the article) was epic:
> Recently a security hole in a certain open source Java library resulted in a worldwide emergency kerfuffle as, say, 40% of the possibly hundreds of millions of worldwide deployments of this library needed to be updated in a hurry. (The other 60% also needed to be updated in a hurry, but won't be until they facilitate some ransomware, which is pretty normal for these situations.)
The default expectation (from business school?) seems to be if for a given job interview you are left (95% of the time) with say 1-4 (reasonably) good choices mangement is quick to cry wolf: you see, this is the skill's shortage everybody is talking about.
You can make this - at least here in Europe there is a tendency for that - a numbers thing (i.e. performance indicator) which mangement is "measuring". Meanwhile what "specialization" in the labour market meant in the 70's and what it means now a half decade later has changed significantly, multiple times.
For example: We are long at a point now where paradoxically time spent in the educational system is simply time lost for developing and honing skills (for a rapidly changing environment) which is exactly the opposite of acquiring as much "competence" as possible in order to "catch up" with the pace of innovations.
You want to expose young people to real challenges in the world as soon as possible and when they become frustrated with a problem you offer them teaching fundamentals they obviously lack. I am mostly oblivious about my ignorance but when someone can show me how e.g. a mathematical concept can possibly package my problem to make it manageable I will bite.
My reaction was "OK, this is the guy everyone is talking about".
A few months later - the job market was entirely different. And that stuck for many years after that.
Or maybe I have too much stuff I work on on my own to worry about it...
For myself, this certainly rings true. I was fortunate to get my salary in a comfortable spot early on in a career (outside of tech), and spent a few years in that comfort zone to begin dialing it back often taking salary cuts to move towards things that were more interesting and/or had better working conditions. The security kept me around, and now that I have the physiological and safety needs "locked in," I can't imagine myself pivoting into anything else - it's a rat race to the finish line from here, and maybe I'll climb up the levels of the next 3 in the hierarchy.
[0] https://en.wikipedia.org/wiki/Maslow%27s_hierarchy_of_needs
For "senior" devs, I think there are two additional things just as important as the mentioned three: good compensation & minimal BS.
The techno-utopian perspective tends to fade away with time (and acquiring of a significant other), replaced with pragmatism and realism which brings these two elements much more into focus with time.
This is literal - you can't hire engineers because you don't hire good ones. The process is more broken than before.
It's both hilarious and sad to hear complaints of employers. The non-hiring is on their side, there is little engineers can do if they aren't considered good - great experience notwithstanding.
When I was at Microsoft, pre-COVID, my daily commute was no big deal. But having lunch every day with other nerds was definitely one thing I enjoyed about the office environment. So when the pandemic started, we immediately lost that, and that's definitely one reason why I left several months later.
I am the "kind of engineer" that stereotypically should be throwing themselves into the cogs -- mid twenties, bachelor, etc.
I have the fortune of working for a B2B shop that is exactly like this, and sure -- I might not have quite as much experience now as a guy that has spent the last 18 months doing 60-80 hour weeks. On the other hand, I have been able to focus on my writing and speaking, build some cool projects and work on an open-source team, not to mention really improve my physical health.
Living to work is not worth it to me, and I am very hesitant to look at low-to-mid-level positions in FAAMG or startups as a result.
How did you do that?
My company gets tons of candidates. We reject 90% of them because: they do not pass our tech interview (I couldn't pass them either and I have been working here for 3 years!); when do they pass we cannot pay what they are asking for.
In that case, wouldn’t it theoretically be possible to convince an engineer to work for free given enough awesomeness? Or, conversely, convince them to work on something profoundly uninspiring given infinite salary?
for free given enough awesomeness = FOSS
something profoundly uninspiring given infinite salary = facebook
I was really disliking the tech stack, I could not change it even after trying. But there were lot of nice people, pay was above market levels. But i was still not satisfied, I could have stayed there and earn good increment every year by just doing 4-5 hours daily work.
The new company is a big Australian start up. My hope is that in the new company I’ll get to work with smart people and learn new things which I consider as an investment for my future growth.
I once had a recruiter tell me: “Elon Musk is one of the easiest people on earth to poach senior leadership out from under.” After eighteen months in the gulag of rocketry/EVs, many managers are ready to cry “Uncle”.
As a non-native speaker, I have the hardest time parsing this sentence, could anyone help me out?What does it mean when someone poaches “leadership out from under” — does it mean that leadership grows internally, rather than sourced externally? Or that they’re fleeing away (assuming “poaching out” mean the reverse of “poaching”)
And I assume that the “uncle” in this case is Elon?
Since you can only hire people willing to quit, you currently can’t find many software engineers that were rare even before Covid. Developer leaving their job by the masses is probably not a real thing at least from my experience. Maybe in some regions of the US. But a shortage of qualified personnel in general probably is.
Even hiring people from within Europe is hard, many companies are hiring from the Far East or India still because there is too much work. I think we have a decent company with some great positives but we might struggle to even get 5 applications and that is via a recruiter.
All jobs can be scored on three metrics:
1. The nature of the work;
2. The compensation;
3. The people you work with.
The article is really just zeroing in on points under #1, but #2 and #3 matter to most people, too. You can do cool work at home alone for free, but that wouldn't be a very good JOB.
In my 30 year career, I've had some jobs that scored poorly across the board (but hey, paid the rent). I've only had 2 jobs where all THREE were at least B+.
My job right now -- 14+ years! -- scores B+ on the work, but A and A+ on the other two points. Which helps explain the 14 years.
https://en.m.wikipedia.org/wiki/Drive:_The_Surprising_Truth_...
That said, I think you may have missed an important one for engineers: respect
In my experience, engineers highly value respect in their current position and a slap in the face from the company can breed lasting resentment or an immediate job search in the current environment.
Respect comes in a few forms:
1) Believing you were actually listened to and your ideas were fairly evaluated, even if in the end the decision didn't go your way. If you're repeatedly getting shot down and don't understand why that feels like the company doesn't value you or your opinion.
2) Compensation: While the absolute number itself to a surprising degree doesn't matter all that much, what effort the company puts in when it can, does. If the company posts record profits, gushes about your performance, you max out your rating and get a 2% bump in pay as a result when at the very least inflation seems to be 6% right now that cognitive dissonance hurts a lot. This is another form of lack of respect that engineers rarely let slide.
3) Clear growth path/investment: If the company respects you and your term goals, you'll see it through an established career plan, at least for the short/medium term (1-3 years). If you're going about the same stuff every day with no room for growth and no one seemingly cares that you want to take on more or you don't see how you could given the pile of work you're stuck under, that's demotivating and shows that the company doesn't really care about you, just about your monotonic cog-like output.
4) Impact and impact recognition: Engineers want to do things that matter. (Already a theme in your article) and often they want that to be known. Not in a cheap artificial pat-on-the-back and flattery way, but in a tangible way. Success should lead to greater responsibility. Failure should lead to introspection and another swing with advisors brought in. Given your successes you should be given opportunity to advise others working on similar problems you've been successful solving. If all you're doing is solving problems in a silo and no one seems to notice or care, it gets demotivating again.
I'm sure there are others but I find that a general theme of respect for the individual is usually very important for engineers.
The completionist in me notices you didn't mention NeuroLink - his wiring of brains to computers. It's not often in the news.
Only thing I can add is that due to the difficulty hiring, you can attract mid-level talent with more money (they're more likely to be underpaid). I'm sure the efficacy of that approach is diminishing as steady-state is reached by people in that experience level.
They are too different from the hiring companies to be of interest for them. Or too risky, because they are sick or from suspicious countries.
It's a hodgepodge of cloud toys, stitched together by multiple teams who do not want to talk to each other, hiding behind "microservices".
#remote should mean remote
I often wonder how many of the people working at cool places are doing cool stuff and how many are doing the same things as elsewhere.
Does it help working in a place building autonomous cars, rockets if you’re not doing that, but doing the same web dev or door knob release software that you could do in a hedge fund, accountancy firm, or evil corp.
Anyone have any experience?
Even web dev is interesting. lots of bespoke visualization and debugging tools had to be created from scratch because nothing on the market solved the problems that autonomous cars pose. Look at webviz created by cruise as an example.
now throw a pandemic into the mix. everyone’s lifestyle has been disrupted to a lesser or major degree. everyone’s rethinking certain key aspects of their life, whether intentionally or emotionally. relevant to this: employees are just a lot more discriminating in their job evaluation than they used to be. the pool of jobs i’m willing to take has shrunk by 2-3x. again, that doesn’t mean the total matches must fall. but it does mean that it’s going to take more effort to locate matches. i.e. “it’s harder to hire engineers”.
Here "what would you do for +10k" -> "ANYTHING"
I've been there - that company you didn't like, the boss that didn't like you, etc.. Every since that company I have been a LOT more selective of who I want to work with and don't just take a salary bump over SUPER job stability.
I may be living in a bubble (I've been building https://4dayweek.io) but for me and those around me, the main attraction is a better work-life balance, then technology etc
I politely replied to each that, I interviewed, thought it went quite well and then got ghosted (never heard anything, zero), hence not going thru that again. Besides current job pays more and is interesting
For one everyone is looking to hire talent but not develop them. This means that most companies don't have talent development plan.
There are huge amount of engineers who have kids and mortgage that they need to pay off, so for the right price they will work on any none cool tech.
What is he now, He-who-shall-not-be-named?
> (I ain’t speakin’ his name; the dude gets enough press without me helping his SEO.)
I hope this comment was tongue-in-cheek. This person's SEO comparatively speaking does not even register.
I don't mean that in a bad way. The article is well written and, to some extent, well thought. The problem is they usually -as in this case- extrapolate a fairly limited experience to a very general explanation of just about everything. This can be also noticed in some of the absolutely tiring clichés of engineers being Trekkies and dorks and whatever. But more than that, it usually ends up being that the conclusions reached are mostly a mishmash of reasonable things which miss the point, at least as a general explanation.
But, as I can't consider myself an expert in the USA job market -or should I say "the quite specific USA FPGA / RTL design engineers job market"-, I'll do something else instead. I'll paint you the picture of a very different market, the Spanish IT job market. The common point is they also whine a lot about an engineer shortage and a lack of available skilled force.
Here the market is defined by the following:
- The market is mostly dominated by a handful of big players. At the tipping point, there's maybe 6-8 large companies that hire a lot of developers -even though I personally think they don't really need so many-. These are, mostly, bank and insurance. There's also one or two more directly IT related.
- The market is actually layered through a pile of leeching^H^H^H^H^H^H^Hconsulting companies. There's an initial layer of larger "IT consulting" and "IT Integrators" who provide the above banks and large companies. Then there's the smaller ones which mostly provide bodies to the bigger ones. It is not uncommon for a particular job to involve at least 2 subcontracting steps. It's also not uncommon for them to lie about it at the beginning of the hiring process.
- Salaries are being contained or even lowered right now. It's hard to break around this because of hidden price collusion. Right now, as I said, salaries are low. Every time someone mentions "talent shortage" there's at least half a dozen of comments saying "well, pay more" or "don't pay so low, then". Personally, I'd say that most IT related jobs, and particularly those that actually create/operate/maintain the things, are being pushed into being considered as an "operator level" job. Low pay, easily disposable. Experience is, generally, an uninteresting trait beyond 2-3 years, and job offers reflect that. Entry level jobs are, again, paying low to very low. I know it can't be but it all feels kind of orchestrated. I mean, it can; it has been done before, but I'd rather think it can't be.
- Job offers hardly even mention anything. I've seen some hiring companies which will simply not put any details at all, not even technologies involved or anything. In any case, there must be fierce competition there because they all tend to be more secretive than usual. Not only will they not give you the name of the company -which may be understandable- it can sometimes be hard to even get general information like what sector it works on or an approximate location. This is most frequent, obviously, when it is not one of those big, few banks or insurance companies.
- Hiring processes are mostly clueless. They are heavily focused into that "operator mode" and usually ask for stupid things like very specific versions of tools -e.g. like "I see Spring Boot mentioned in your resume, but which version? You don't mention which and I'm looking for version 2.5.x" or "I need to ask you exactly how much experience in years you have with Angular 8 and how much with Angular 11"-. You can easily have to go through technical tests -and I mean things like building a 40+ hour demo project- even before they will even talk to you at all. In a couple of cases these were so specific and large one could even wonder if they were actually getting some smaller tools done for free through this.
- Job security is mostly a myth. During 2020 and 2021, quite a few of the big hiring companies and many of the body providers simply dropped hundreds or thousands of developers with little more than a snap of their fingers. To some extent they are trying to re-hire now, but not as much and, naturally, with lower salaries.
- There is, sure, a smaller market where smaller companies hire. This is a bit of a hit or miss. Most of them don't/can't pay too much but are, usually, better places to work at. There are also a number of startups -and companies calling themselves "a startup" because it's cool-. Most of these come and go, of course, and only a few of them aren't working on yet another "customer experience optimization" thing -i.e. tracking and advertising- or on "online gaming which actually turns out to be online gambling". One or two of those startups have even thought about a business model that is not crossing their fingers very hard.
- There's also the "agile market". Even if you like Agile, this is a circus. I've seen ratios of "agile coaches to sw engineers" which would make anyone wonder if anything is done at all in there. And the answer is no, obviously. I spent some months watching one of those big banks which don't want to be called a bank any more and it was absolutely ridiculous. I vividly remember some sort of retrospective meeting or whatever they called it where literally everyone was lying to avoid saying no progress at all had been made in the last 3 month period. And everyone knew everyone was lying. And still, these "agile coaches" were doing some happy dances and saying "good, good, this is very good, we're doing very well". I don't mean this as an attack on Agile, but more on the fact that it has been co-opted to burn loads of money at some of these larger companies. I mean, it's business as usual, but now under the name of Agile. It's sad.
All in all, here in Spain the answer to why it's hard to find engineers right now is... it isn't. But some players have twisted and broken the whole system so much that the job isn't that interesting any more.
I would rather do anything else. Try my hand at the markets while traveling, launch a project or two, fly a girl out for free using my rewards points and be a fun host that’s not preoccupied with meetings.
Hiring is not agile.
No matter what the personal choices and predilections of any engineer, the software industry is fundamentally constrained by the twin forces of capital and engineering talent. When there is lots of capital, there are a lot of companies, and there is insufficient talent. When there isn't a lot of capital, no one can nor wants to pay for talent so they can weather the storm. That's been the case since at least the 1970s.
Through this cycle, there are so many "engineers" working tirelessly to put other "programmers" out of work (not the shift in labels there, because there is always an unjustified scent of snideness in the air) as well to reduce the cost of engineering. All the no-code revolution now is part of this cycle.
There's a wonderful book angling for a Marxist revolution of engineers from 1977
Kraft, 1977. Programmers and Managers. The Routinization of Computer Programming.
I love it because it's cute, and since it's 2022, proven to be a dud. Like any Marxist analysis, it is accurate in assessing the problems and hopeless at prescribing a solution.
Regardless, the main lesson I have taken in my career is the absolutely top priority a senior engineer should have is building tools and processes to eliminate the need for code to generate business results. You will never be able to hire warm bodies fast enough, so all you can do is radically increase the power of each engineer on the team.
Those have always been the most fun teams I've worked on. It almost feels like being a wizard.
p.s. All that being said, I'm hiring. :)
I’m not. Although I’m more of a technologist than an engineer.
If anything I’m techno-dystopian.
The world’s biggest problems are political, technological. And fantasies of fixing them with technology are just that.
The author touches on this a bit, mentioning Elon Musk and Tesla/SpaceX, but focuses more on cool products like rockets and self-driving cars and not about, say, the future of humanity in space, or reshaping personal transportation. These are the kinds of impacts that really matter: What is the company actually doing for its users? Does it solve a real problem? Is society better off because of it?
Start by addressing these concerns and I will be much more interesting in working for your company.
This quote is great. Explains how our career evolves into doing less and coaching/guiding more.
Questions? Comments? Get at me on Twitter - @cushychicken
If you earn a lot you somewhat have to deliver but more importantly you [should] want to deliver. Sure, there exist jobs where one is paid a great salary without having to do much beyond sitting around not doing much of anything. I consider those prisons. If you have such opportunity and take it you will become good at not doing anything.
The contrast is with jobs for which you are overqualified, can use and expand your skills and earn very little. There is no obligation to deliver here, its fun if you can but not at all required. There is no pressure, you can walk away whenever you like and find or forge 10 such jobs the same day. In this setting you can give the employer a sense that you are there because you actually want to be there. Its quite surreal. Almost anything you ask for in exchange for a pay cut you will get.
Now the real joke is that I work really hard for the small pay check but I work 3 days, perhaps 4 per week. I go home if there is not enough to do but work 7 days if the situation requires it. The 4 day weekend is a blast! It feels like the whole year is one giant vacation but that is not the big joke of it. In order to grow either physically or mentally you have to push yourself to your limit. If you push yourself like that for more than 3 days per week you won't grow, you will destroy your body, your mind or both.
I run circles around coworkers who work 5 days. Their performance usually declines while mine gradually improves. Their head is full of work stuff while mine is mostly empty ready to take in whatever comes next (which could be the next job)
If the situation requires me to work 15 hours for 30 days I'm up for it. Ill work a 2 day week after that for each 8 hours. Call me if you need me, ill probably show up. Even if they hate me or are the psycho dictator type they are quick to remember how much money I make for the company, how I got their things done before the deadline, the credit they took for my accomplishments.
I also learn that it doesn't matter how much you make, you can always find ways to run out of money before the end of the month.
Sure, if you have a bigger salary and work full time you can buy the fancy new car but why? To drive to work? Its just sitting there outside on the parking lot. You are not doing anything with it. It's for work. You've worked to earn it and use it for work. You can buy the big house but you are never there. You can eat in fancy restaurants but the satisfaction is mostly because you don't have time to cook elaborate meals. If you engineer your meal to the best of your ability restaurants are pretty disappointing. I'm slacking off but if you grow some of your own food the satisfaction is 10 fold.
What I found annoying was the repeated use of Elon Musk and his companies as examples, while refusing to type out the name fully due to not wanting to "help his SEO". That just struck me as being fundamentally dishonest, and made me quite skeptical toward the content.
For example, I abort discussions gravitating towards "oh hey could you do this coding exercise" with a simple "No, I don't do coding exercises, ever. Good luck finding a junior engineer for your role.". I keep it polite but such a question basically means I'm talking to the wrong person that obviously has no idea why they should be begging on their knees for me to consider working for them.
The first contact should be with a decision maker that knows exactly why you are interesting for them. An HR person or recruiter does not qualify for this. Use them for screening CVs but don't ever let them do the initial out reach. If based on a CV, github profile, linkedin profile, etc. a you are not able to figure out why someone is interesting for a particular position or not willing to do the work to find that out, a phone call with an HR person is not going to be helpful. And if the match is obvious, you should move much more aggressively and faster.
Like everybody in the industry I get a lot of very poorly targeted outreach from completely clueless and incompetent recruiters. Most half decent engineers in this industry are busy, not looking, and blowing off recruiter spam on a daily basis. Inviting them to engage with your HR bureaucracy via some recruiter is a non-starter. The more qualified people are the less likely they are going to be interested in your coding exercises, screening mechanisms, job application bureaucracy, etc.
Cut all that bullshit and figure out what you want before even reaching out to someone and figure out how you differentiate from your competition (hundreds of other companies looking for the exact same thing). If some HR drone reaches out with some templated drivel, chances are extremely low that I even respond. It's not personal, I just don't have time to keep up with all the inbound nonsense I get. However, if a CTO of or engineering manager reaches out with a well motivated reason why I might be interested and what they are looking for, they'll get a reply and a conversation starts. I'm actually pretty approachable; you just need to do it right.
The way to fix hiring is to get HR and recruiters out of the loop as much and as early as possible. Their role is to screen and never to act as middle men. These people scare away all the good leads you might get, if any at all. They are the last persons you want people to talk to. In the case of HR quite literally, you involve them when you get to the salary negotiation phase. Screen based on the available resources. Use Google. Look at their Github profile, linkedin, etc. If you like what you see, make a plan for reaching out in the most effective way. E.g. find a way in via a mutual acquaintance (preferred) and be ready to move very quickly. If these people are available at all exactly when you need them, it's not going to be for very long. If they aren't, you need to be ready to really to sell leaving their comfy job for you. That starts with not treating them like numbers.
Nothing in this article wasn't true two years ago; This could of just as well been titled "I think I know why you can't hire engineers" and been posted any time in the last 50 years.
If you mean they think the future can be made better with technology in the abstract, sure. But I think some, maybe many, engineers think that the current way technology is being developed and deployed is leading towards dystopian futures, not utopian ones. They may tell themselves that the cool problem they are solving would be solved by someone else, and they get money and a good puzzle. They may tell themselves that it's not their work. They may admit that is the future and say they just want to be in an excellent position in the dystopia. But if you look at the efforts put forth by open-source advocates to fight against closed-source, or the work that goes into blocking ads and tracking, or the way that misinformation propagates over the internet/social media and the responses written about things like that on HN, you see that some engineers are pessimistic about the way technology will be used.
Or see how the inevitable (and existing) facial recognition companies are talked about. Some love it, but some don't.
Would you have an engineer any other way? I'd argue you can't be a good engineer without an objective worldview - because engineering is the art of making physical things outside your body do what you said they would, reliably. Yes, code eventually runs on physical things.
It doesn't matter what you believe, how you think the world really works, whose side you're on politically - it matters that the bridge stands. That the networking router ASIC routes 100G of traffic accurately and with low latency, without randomly locking up. That the airplane's fuel burn is what you say it will be. These are all pretty hard objective external truths that don't care what you think about them - they are what they are.
On the other hand, especially in the "consumer tech" spaces, I think a lot of engineers (at least those I know and converse with) are looking towards early retirement, or at least "not doing that which they've done." The state of modern computers can be described as "broken and getting more broken," with the fixes for the last complex hacks breaking and requiring yet more new complex hacks. Do that for 20 years, and you end up with this teetering pile of... something, and then you do the same thing with the software on top of it. Piles of libraries, running on a pile of libraries, running on gigabytes of God knows what, running on... all the way down. It's a security mess.
Then what do we largely choose to do with it? There's some neat stuff, yes, but a lot of the tech industry is based, tightly or loosely, around collecting all the data, processing all the data, and using it to predict all the things, then sell those predictions about human behavior to whoever will pay. It's the default model for a company these days, and it's increasingly hard to ignore that - even for an awful lot of money. If you've looked at the past 15 years of your work and realized that it's gone to some pretty human-toxic ends, "not doing that anymore" is pretty appealing.
The security, similarly, is a pile of crap, and everyone knows it. But, despite that, nobody is willing to consider alternatives to "Well, patch it and carry on." Say what you will about the conveniences of digitalization, things like the OPM "theft of everyone who's ever applied for a clearance's life history" wouldn't have happened if the data had been stored on paper. It's mighty convenient to have it digital, but it's a lot harder to have someone haul out 500 tons of paperwork without someone noticing.
So, yes, there's been some interesting work going on, but there's also an awful lot of "Well, it sounded interesting, but it's definitely been not used how I hoped..." work done in the past decades.
And if someone is in that state, you're unlikely to hire them for much. They're probably planning their exit already to go be a gentleman farmer of llamas or goats or something. Emus are just too mean to bother with.
I know a lot of people somewhere in this pipeline.
Another issue I've seen is that there are a good number of engineers (again, I talk to a variety of them) who are a bit hesitant about the Covid vaccine mandates - especially those who have already recovered from a bout with it before the vaccines were available. Quite a few companies are covered by some variety of uncertainty with that, so there's some decently sized pool of engineers (typically older, more experienced) who just aren't going to go work for some large set of companies. You can agree with them or disagree, but it doesn't change the fact that it's going on, and people are trying to figure out how to work with it.
I think we'll just see a big wave of retirements in the next few years of senior engineers who have no interest in the tech field anymore, and are happy to let it spin in the wind after what it's done for 20 years.
People/Environment -- If I hate the people I'm working with, I'm not going to stick around long. I've quit jobs for that reason before, and I would do it again. I have a low tolerance for assholes. For example, worked for a vending machine OEM that shall not be named. Boss was filthy rich and said "oh we'll pay for you to go out here to X!" and then had me ride a fucking Greyhound. I should have bailed right then and there, but I gave it a try, since I was young and fairly new to actually getting paid for my work. Guy had a new secretary every other week, and they always looked like they were one sharp comment away from swan-diving into a wood chipper. I've never seen office workers with that much terror in their eyes and voices before. Needless to say, I didn't stay with him long. Paid well, but getting technical specs, tools, and the data I needed for projects was like pulling teeth from a methed-out rhinoceros, and that proved to be the last straw. I remember once I was told to my horror and disbelief that they had literally completely lost core technical specs that I needed for the project, then they wanted to know why work was progressing slowly. At that point I just quit. Tried to ship his equipment back to him but the cheap motherfucker wouldn't even pay for the shipping, then just stopped talking to me when I asked him to. Guess he didn't care about the vending machine parts. Ironically they were worth more than the shipping, and totally worthless to me.
Integrity -- I look for a company that isn't actively making the world a worse place. I don't mind boring code, as long as I can write it well and be proud of what I've created at the end of the day. What I do mind, however, is predatory practices, unethical dark patterns, and user-hostile design and terms of service. If I think you're Facebook 2 Electric Boogaloo, I won't apply in the first place. If I think you're the "good guys" however, you'll have undying loyalty. *Sidenote: Sickens me to hear that so many of my fellow developers are willing to worsen the world for an extra zero on their check.*
Technology -- You must be asking me to use a language/toolkit/etc that won't make me want to blow my brains out every day at 5:01pm. I can work with tools and languages I don't particularly like, but do not, for example, ask me to build you an Electron app, PHP backend, or Java app. I will walk rather than endure that. Maybe some help in an emergency, but if you make that my main duty, I'm done. I'm fussy, but that's just me. It's very important to me personally to be able to respect the tools I'm using.
Autonomy -- I hate being micromanaged. I'm not incompetent. I've created programs with hundreds of thousands of lines of C++ and Python code by myself. If you second-guess every tiny decision I make over long periods, I will descend into quietly loathing you at the very least.
Money? -- I'm not a greedy person, but don't insult me. At least pay me something close to market. There's great irony in that statement right now, as I'm not making even close to what I'm supposed to (basically poverty wages for some of these months), as I'm trying to help a tiny startup keep its head above water because the boss is actually a decent guy and someone I respect. I suppose it illustrates just how much the kind of people I work with matters to me.