How Programmer Jobs get created and destroyed, & how AI might change that.
So in my last video I talked about how the new O1 AI might impact roles for entry level developers. Based on some of the comments, there are a lot of folks out there who have only or at least primarily dealt with the industry from the "Let's try to find the job" side. And don't have much or any experience with what leads up to the position opening or how those positions get closed. So I think it would be useful to give an overview of how tech jobs get created, destroyed, and how that's changed over the last 35 years. For those of you who have been in the industry for years, this might be old hat, or your experiences might be different than mine, in which case, please let me know.
Along the way, I'm going to talk about some of my guesses about what I think might happen in the near future. For context, my general belief at the moment is that code-generation AIs are starting to impact the programming industry for better or worse, and that those AIs will continue to get better, cheaper, and faster up to a point. I do believe that at some point in the future, AIs will be created that are equivalent to human intelligence and judgment. I do not believe the current generation of models is capable of that, and I do not believe any model will reach that level for a decade or more.
Probably much more, but I could be wrong. And in the unlikely event that, despite all evidence I've seen so far, the hype is correct, and the super AI is just around the corner, then the entire job market for programmers and every other white-collar worker is about to change completely, and this advice isn't worth sh- This is the Internet of Bugs, my name is Carl. I've been working with code for a living since 1989. I've worked at a bunch of different companies in a bunch of different roles, managing consulting, training, programming. I've been at startups, tech multinationals, worked for the government. Several governments, and I'm going to try to distill all that into a coherent narrative today.
Two caveats: One, I haven't worked in the game industry at all, and don't want to. And, although I've worked on projects and managed folks remotely that are in other countries, I've never personally tried to find a job that was outside the US. So, I want to start by trying to explain how different the tech sector is from the rest of the economy.
With the exception of IT internal to companies, so like office productivity, desktop support, email, which that kind of stuff, which I'm going to ignore for this video, pretty much everything in the tech sector right now was built custom in the last few decades. The non-tech sector parts of the economy are largely the same as they've always been, except for the changes that were enabled by the tech sector. Why is that important? Because you need to understand that all programmer jobs fall on the spectrum. One end is building and writing some system from scratch, and the other end is maintaining a system that someone else wrote, or often it's somewhere in between.
You're adding new features for a while, and you're maintaining the old ones kind of at the same time. There's an analogy here a lot about how programming is like building houses, or at least like construction. That's both a really good and a horrible analogy. So here's the deal:
It's a lot like construction was centuries ago. Back before two by fours, and sheet rock, and I-beams, and girders, and bricks, and blueprints. When every structure was made out of whatever materials were in the area, and each structure was custom created on the spot. That analogy breaks down now because construction is very standardized, and programming isn't. This has two implications: The first is that in an industry with no real standards, at least not yet, there are no absolutes, and there are always exceptions.
I'm going to talk about the things that I've found to be patterns over the last few decades, but there will be companies and roles out there that are going to be different. One size does not fit all. Second implication is that the best place to start is the beginning at the point where the system gets built. The first thing that generally happens is that someone has an idea for something they want to have built, and then they get some money from somewhere to make that happen. You might not think that's true, because sometimes that's not what happens first, but go with me for now, and I'll explain when and why things happen a different way later in the video.
Sometimes this idea of person is a solo entrepreneur getting money from investors, sometimes they work for an established company, and they've been assigned a budget and told to start a new group for a new product or a new service. Quick aside here, let's talk about why money gets allocated for new projects and where it comes from. Sometimes, rarely these days, a company is making so much more money than it's spending, that it has lots of extra money in the bank to spin up new projects. That was what the big tech companies were doing a few years ago when programmer salaries were going through the roof. Failing that, either the money to start the project is being borrowed, or the money is coming from investors who hope that once the product is built, they'll be able to get their money back, or it's a form of government contract based on taxes, but I'm going to ignore that for now.
So this is where interest rates matter. I've mentioned that before on this channel. When interest rates are high, the product has to make a lot more money to be worth it, because any borrowed money is going to cost more to pay back, and any investor is able to get money from just putting their money in the bank and earning interest, so the project has to make more money than the interest they can get from the bank. Okay, back to the project itself. So assuming that the person with the idea isn't going to build it themselves, then they're going to need to get technical people to help.
We've got another spectrum here. On one end, they hire everyone as employees, and on the other, they bring in a bunch of consultants from some group that build software on demand, or in between, they bring in a mix of employees and contractors. In an ideal world, the first person brought on is a senior tech person who can validate the idea, put together the plan, define the team, leave the things on the technical side, all that kind of stuff. This is rarely an ideal world, though.
Most of the time, the next person can get involved as a recruiter, either one that's an employee in the HR department of the same company as the idea person, or one from a dedicated recruiting company. Even if the idea person decided they were going to outsource the whole thing to a consulting company, unless that company happens to have a bunch of people who just finished up another project and are ready to roll onto a new one, the consulting company is also going to have to use a recruiter to hire new people, too. So the path to new jobs almost always leads through some kind of recruiter. Remember that. We'll talk about that later. Okay, so now we're at the point where one or more recruiters are looking for one or more people. Now, things get complicated because good candidates get found one at a time and not always in the order you want, and every time one gets hired, compromises have to get made for who's left.
Depending on who got hired already, what skills they had, what skills you're still missing, and how much of your budget you have left, the positions you can still hire for can change, although that doesn't always mean the job descriptions change, because deleting a job posting and creating another one is a pain in the neck. Again, in an ideal world, you can figure out exactly what skills you need for the project. You figure out what skills you have, what you're missing, what you need more of to be as fast as you want, and then you hire someone with exactly those skills or a combination of someone's. Almost never works that way. You have to decide how much you're willing to compromise, how much you're willing to wait for people to learn stuff if you want to hire somebody who doesn't have the experience but can learn it, or if you want to hang on to find somebody who's exactly the unicorn you need to fit in your puzzle pieces.
Sometimes you end up just eliminating positions altogether that you were planning on hiring, because based on who you've hired already, you think you might be able to get away with it, or you might not be able to afford it, or you might decide it's taken too long to hire someone, so you reduce the scope or push out the timeline that it can do with the people that you have. Periodically, also, people leave. And then you're in the same boat, figuring out how much budget you have left, what skills you need, what you can find, et cetera, et cetera. As a growing business, that can be annoying. And if your goal as the head of the business, not the idea of person necessarily, but the head of the whole company, is to grow revenue to make your stockholders or investors happy, then you don't want to wait for this weird hiring process that's inconsistent and hard to predict. That annoyance had a solution for companies that could afford it, which was let's hire a bunch of programmers all the time on the assumption that between new projects and holes that are left because people left, you'll be able to find something to do with them.
The world where there are a bunch of big companies who are all playing the strategy of "hire as many programmers as you can, assuming you'll find something to do with them" that's the world that spawned the LeetCode interviews. You don't necessarily know what you want to hire them for. You don't know what project they're going to be working on. You just want to fill up a pipeline, so you interview and hire for generic theoretical skills, and when they get dropped onto a project, either they adapt, or you fire them a slot in the next person. The word that's used to describe this in the business world is "fungible." That's the F in the middle of a recent three-letter acronym that I'm not going to say, and that you want to avoid if you don't want your AdSense feed filling up with blockchain scammers.
For our purposes, fungible is economist-speak for interchangeable. The idea here that, like dollar bills, anyone can be substituted for any other at any time. The concept of fungible programmers only makes sense at large scales, when management wants to be able to move resources around on a whim. It might make a little bit of sense to do an early-stage startup when you might need to pivot to some other technology based on market fit, but for the vast majority of software roles, it's somewhere between unnecessary and counterproductive. Unfortunately, there are a bunch of people out there who don't know what they're doing, and they should be hiring based on useful skills, but instead, they're hiring based on mimicking what the huge tech firms do.
Now that the huge tech firms are cutting back hiring, maybe that mimic group will scale back, we can hope at least. A while back, I said it might not seem true that every group starts with an idea in a budget. This is why that doesn't seem right, because hiring is so annoying, and it takes so long, and companies want to grow so fast, and have big enough budgets and workforces, and a high enough turnover that they created this weird proactive system. As near as I can tell, that proactive, "hire fungible programmers, because you'll need to have a need for them by the time they show up" strategy, it's coming to an end.
At some point it might come back, but right now it's slowing way down, because of the economy and because of AI. And that's why I started talking about the older process of starting with an idea in the budget first, because that will keep happening, even if the hiring people without a role thing means we're not doing that anymore. So now we have enough context to do a very brief detour about the impact of AI on all this. First off in my last video, I talked about how the new O1 AI from ChatGPT can do as good a job as many of those fresh out of school people have no experience. That's one reason why the proactive hiring model is going to be ending, because those "I can only answer LeetCode" question roles are less needed now. Some people in the comments objected that if people stop hiring entry-level programmers in favor of AI, that means it'll hurt the industry as a whole, because that means that no one gets in a position to get enough experience to become senior, and when the senior folks move on, there's no one to backfill them.
This is exactly correct, but nobody cares. Because hiring managers don't make decisions based on what will be best for the industry in a few years, they make decisions based on their marching orders for the next three to six months, a year if you're really lucky. Hopefully we as an industry will figure that out before it becomes a big problem. But I have no idea how that might happen in a world where every decision that gets made is getting made while people are wearing blinders that prevent them from looking past the next quarterly investors report. So the second thing, which I mentioned in my video from March 19th about the real problem with programmers' AI and jobs, is that AI is flooding job postings with crazy numbers of applications that are overwhelming the system and making hiring take so much longer. That has been getting worse, and there have been several recent articles about it, and I'll link those below if you're interested.
The third thing is that at least at the moment, lots of people seem to have stopped caring about revenue at all. To a large extent lately, the cycle of a company has to add new products and features so that it can get more money, so that stock price can go up, so that companies executive can get their big bonuses, that cycle is just broken. Investors in and around tech have stopped caring about actual revenue, or seem to have, and started investing based on theoretical, AI-driven future growth possibilities.
My buddy Jack over at Nobody Special Finance, the channel here on YouTube, has been beating that drum for a long time. If you're curious about how the stock market feeds into all of this, you should be following him. Links in the description as always. So those company executives, now that they're largely free of needing to worry about revenue, but who want their stock grants to go up as much as possible, can now cut staff, including programmers who are expensive, and then use that money for stock buybacks, which drives the stock price up even more. That change has two impacts on the job market for the programmers that AI can't replace. One, those companies that have been hiring like crazy for years are slowing their hiring massively, and secondly, the programmers that they've been laying off are also on the job market, so more supply and less demand means things are getting messy, and they probably will be for a while.
We'll get more about what's going to happen in a bit, but for now, let's talk about the other side of the job timeline, the way that programming positions end. So we just mentioned layoffs, so let's talk about how that happens. Sometimes the decision is made that a particular product or service is going to get shut down, usually, but not always because it doesn't make enough money to justify its costs. Sometimes, that means a whole company just goes out of business, sometimes a whole group is just summarily all let go at once.
Other times, the programmers can transfer from the dying group to another one, making the new group's job no longer available. Other times, the product or service isn't really involved decision at all. It's pretty common for lots of managers across a big company to each be told "Your current budget is being reduced by X% get with HR and figure out how you're going to do that." And at that point, as the manager, and I've been there, you just create an Excel spreadsheet with all your department's costs, and you figure out what positions you have to eliminate to get under your new budget, and you might end up eliminating some so you can hire somebody else that's doing a different thing at a different rate.
It's not optional, you have to get your costs underneath that number if you want to keep your job. Sometimes there's a clear solution, there's a whole product you can kill, sometimes you turn the dial from adding features and maintaining code to just fixing major bugs and letting all but a small part of the team go. Other times, you have to take risks. Maybe you'll let go of the people that are maintaining the system and just hope it keeps running without them until your budget gets back up, or maybe you can find another job and make it somebody else's problem. This is another place where AI might have an impact.
If you're trying to reduce the budget of your department, you might cut folks you need and hope that AI will make the remaining folks productive enough to get by, at least until you can take another job and make it somebody else's problem. Sensing a theme here? Short-term thinking is just killing corporate America. So we're hitting kind of a perfect storm at the moment. Stock buyers care more about AI hype than revenue. So revenue doesn't matter, so companies can cut costs for stock buybacks to drive the stock price up even more, and then those cost reductions can be driven by claims and hopes about AI, which makes the stock price go a little more, which means that the executives who are mostly compensated in stock make even more money.
Now we're heading for one of two things to happen: Either the AI bubble is going to pop, which is going to be painful, but it will return rationality to business. Or AI is going to reach human levels, and the entire job market will be completely different forever. So if you want to bet on AI becoming human, you're watching the wrong video.
I have no idea how that would play out. I don't know what that scenario would look like, and neither does anyone else, and if they say they do they're lying. And I don't know what to tell you, other than get a job in an AI company or something. Even studying AI might not help. I have a friend I used to work with who quit his big company programmer job in the late 2010s to go back to school and get a PhD in machine learning. And as of the last time I met him for coffee a couple of months ago, he said that the market for AI programmers was depressed too.
If, on the other hand, you're expecting that AI won't become human level for a decade or longer, which is the camp that I'm in, What do you do then? I say this a lot, but Don't Panic. We as an industry have been places like this before. That "hiring everyone who can answer LeetCode questions, whether you have a job for them or not" thing, has only been going the last maybe 10 or 15 years, and it's only been happening at certain companies, although a lot of companies lower than that are mimicking them without any good reason. But those technologies and companies, the big ones have dominated the conversation. We'll talk more about that in a moment.
But that's why most people think of those kinds of jobs when they think of tech jobs at all. Those of us that have been around a long time, and those of us that don't want to work at those kinds of big companies have been working with a different kind of job hunting all along. Spoiler alert, it's pretty much the way that non-technical people find jobs. Why? Because people fundamentally are the same, and people generally drive hiring. And the way that people interact with each other hasn't changed that much over the last decades or centuries.
So here's the thing that seems to be happening. Tech and programming has, at least for the time being, at least for non-AI positions, stopped being a special case in the economy. There have been a few times in history that a particular profession has had way more demand than supply.
When that happens, like we had a few years ago, a bunch of people jump into that profession for high salaries and easy job hunting. And when that happens, a cottage industry always springs up to try to make money from those people. Training boot camps, interview preparation for profit colleges, that kind of stuff makes a ton of money that they suck out of the ecosystem. And that's one reason why talking about big company jobs has dominated the conversation, because if the people that are trying to suck money out of the ecosystem can get you fixated on the idea of a high salary big tech job with on-site gourmet cafeterias and game rooms, they can get you to pay thousands of dollars for boot camps and interview prep courses. That was happening to tech also back in 2000.
A lot of people who just didn't really like tech had just gone into tech for a lot of money and an easy job. Then the dot-com bubble burst. And a lot of us stayed in tech, we eventually came out fine. But people that wanted an easy ride, well, a lot of them found other things to do. And here we are again.
I expect that the people who only got into tech, because they thought it would be an easy way to make a lot of money, are going to be finding other things to do. And that's probably better off both for them and the industry. If all you want to do is to find a profession that's an easy way to make money, I'm afraid you're missed your window when it comes to tech. It's possible that tech and programmers will become really hot again, but probably not for years.
There are probably much better professions for that for the next few years. If I had to guess, I'd say that the next big tech boom that we're going to get will be when affordable, normalish looking augmented reality smart glasses become affordable and popular. No idea when that will be, but I think it's very likely to happen a lot sooner than human level AI will happen. But it's perfectly possible to make a living between booms.
I've done it several times. It's not as exciting, but there's always been lots of work to be done. The secret to longevity in this industry is, and I mean this sincerely, to not care about technology. That sounds weird.
The secret to a long career is caring about solving the problems, about defining the solutions, about satisfying requirements, about anticipating finding and fixing bugs, and not getting wrapped around a certain technology because whatever technology you're excited about, eventually it's going to go away and something's going to replace it. It means focusing on knowing how things work, figuring out how to dig into unfamiliar technology, figure out what's going on in it, figure out how to set up tests to find the problems. Memorizing algorithms is pointless. Just know the classes of algorithms that exist, and then, if you need them, you can and should look up the details. And falling in love with any particular tech is just asking for the rest of the industry to pass you by. Like I've said several times, there's a difference though between the skills that you need to pass an interview and the skills that you need to actually do the job.
Hopefully, now that AI has made LeetCode problems even more pointless, and it's better at interviewing than any of you are going to be. The interviews will start to hopefully reflect that, but it will probably take a while. But those changes will show up first in smaller and more nimble companies. Those are the best places to ride out a downturn, at least in my experience, often it's your only choice unless you go out on your own. The giant companies lay off people like crazy when the economy is bad, and they at least mostly stop hiring, which leaves us with a question. If you aren't in tech just because you thought it would be easy money, and you want to stay in tech, then how do you ride out this or any downturn? I've made a couple of videos about this already.
One was that mid-March video about the real AI job problem, and I talked in it in more detail about how to do a job hunting in this kind of environment. The other was in mid-September about starting a side project to get you more experience, make you a better programmer, and make a little money on the side, or maybe a lot, to get you through. So you can get more detail there, and I've got more videos in the works about the side project thing, and links in the description as always. But to summarize the "how to look for a job in an industry being depressed by AI" thing, the old way of just applying to jobs online just isn't going to be nearly as helpful anymore. The better strategies to find jobs through other people.
Now, before I talk about how that works, though, let me give you a warning. There are a ton of people out there. I've seen several of them recently that are giving ridiculous device on how to find a programming job in this environment. There are, of course, a bunch of people selling "how to get a job" classes, and "how to pass your interview" courses, and "learn how to code" boot camps and the like, and just save yourself a lot of heartache and avoid wasting your money and time on that kind of crap.
But aside from the scammers, there are still a bunch of other people out there that are giving just awful advice. Some of the worst advice I've seen recently is "post regularly on social media, ideally like Twitter and LinkedIn, maybe some others as well." Now, this is horrible advice for three reasons. First, it's just a waste of your time. You're not going to be able to get noticed in a sea of people unless you've got something special going on.
Second, it's a waste of time that forces you to look at social media, and that runs the risk of sucking you in and wasting even more of your time if it doesn't give you anxiety from looking at everybody else's best selves. But worst of all, it makes you think that you're doing something productive, which means you're less likely to be spending your time on the thing you really need to do to be able to find a job. There is a pretty clear reason why people believe that this kind of advice will work. This is a chart on tech sector employment from September 2004 to September 2024. The dip on the right is COVID quarantine.
That was a weird time, and it's not much like the current job market, and we can't draw a lot of conclusions for that unless we hit another quarantine. Ignoring that weird dip, if you look at the rest of the graph, you'll see that from 2010 to 2023, there was pretty much a constant increase in tech sector employment. Here's a chart of information sector job openings from 2005 to 2023. You see the same pattern there. What that means is that anyone who joined the industry since late 2009 has never lived through a tech downturn. And that means that they have no strategies to be prepared for what's happening now.
The strategies they have have only ever been tested during a period of near constant job growth. We're not in a near constant job growth anymore, and we might not be for years. So here's a graph of job growth from 1990 to 2015.
The red is the US tech sector. Now, notice that this graph is job growth, whereas the other graphs were absolute number of jobs so they're not directly comparable. There's some spikes here that aren't there in vice versa.
One is basically the derivative of the other. But even given that, the trend is clear. This is my fourth tech industry downturn. Trust me when I say that I've had to learn a lot to get through the rough times. The 2008 Great Recession was really bad, but that 2000 to 2002 period was so much more brutal. That was the offshoring wave.
And for the record, although COVID was a weird situation, at one point during quarantine, I had three different clients I was doing work for simultaneously. And all the clients that I got during COVID, I got through people that I had worked with before and kept in touch with. I got zero jobs or clients or even job leads from posting on social media. So, aside done, back to how to look for a job. I said early in this video that one of the first people to get involved in the hiring side of any job search is a recruiter of some kind. Getting to know recruiting professionals in your area, either in your geographic area or your area of expertise is invaluable.
I spent quite a bit of time talking about recruiters and job hunting, not using job sites anymore in my video from March, 2024 about AI job application services and why they're screwing everything up. So if you want more information on that, you'll see that video. Again, link below. It's also important to make and maintain connections with folks that you know, folks you've gone to school with, folks you've worked with.
The University of Maryland says according to the US Department of Labor, approximately 70% of jobs are found through social and professional networks. The University of Texas at Austin says 85% of people are hired a result of networking or some other kind of referral or personal content. The 85% number might come from this 2016 survey, although I'm not exactly sure. And here's a paper from 2020 with a lot of research and citations in it, if you want to dig into more detail. But regardless of the actual percentage of jobs that are found via networking, in which study you look at, a lot of jobs, a lot of jobs are found via networking.
And you should probably pay attention to that. I have gotten a ton of my projects that way. There's an old list that's still in my documents folder of projects that I've worked on. It has 25 projects listed on it and it's dated May 17, 2013. I haven't bothered to try to update it since and I don't know how long it would be now, aside from a lot longer.
And definitely more than half, probably as much as three quarters of my projects have come through people that I had known or worked with prior to starting the project. I haven't done a rigorous study, but that would be my guess. Now, I don't want to turn this into a "how to job hunt via networking" channel.
And I'm not the best person to give you advice on how to get started networking because I've been building my professional network for more than 30 years now. Plus, this video is already long enough. But, I'll tell you this. There are a ton of resources out there to help you professional network get started, improve it and use it to look for a job.
Here are three quick book recommendations. "Dig your well before you're thirsty" and "never eat alone" are two books that I swear by on professional networking. And "what color is your parachute?" is still still a great book on job hunting. The first edition was published in 1970, that's the year after I was born.
And they put out an updated edition every year or so since. I bought at least a half dozen copies over the years. But despite my giant bookshelves, I can't find a single one to show you now because I keep giving them to people. I will tell you that lots of people out there, especially tech people, and people who just want things to be easy, will absolutely not go through the effort to build a network, and that will give you an advantage. It's not easy, it takes effort, but it does work better than anything else I've ever heard of. I wish there was an easier way, but there just isn't.
And anyone who tells you that they have a low to no effort way for you to get a programming job in this environment is either clueless or trying to sell you something, or both. Probably both. Until next time, let's be careful out there.
2024-11-19 04:49