The Stack Overflow Podcast

How developer jobs (and the job market) changed in 2024

Episode Summary

During the holidays, we’re releasing some highlights from a year full of conversations with developers and technologists. Enjoy! We’ll see you in 2025.

Episode Notes

In this episode: Why developers need to upskill faster than ever, the relationship between stock prices and layoffs, how the job market for developers has changed, and the evolution of engineering roles post-GenAI.

Listen to the full versions:

Episode Transcription

[intro music plays]

Ben Popper Hello, everybody. Welcome to a special holiday edition of the Stack Overflow Podcast. Today, we are sharing some of the highlights from a year full of interviews with great developers and technologists. This episode is focusing on careers and the job market as it relates to software development and the tech industry. We're going to hear from different episodes and a lot of different perspectives on what skills you need to continue growing, what it means to be a junior engineer, where AI might take jobs, and where folks can look to grow their own careers in this rapidly changing industry. So without further ado, let's dive into it. For our first episode, we are going to be chatting with Kian Katanforoosh, who is a professor at Stanford and a CEO over at Workera.

[music plays]

BP And I am joined today by Kian Katanforoosh, who is a professor at Stanford, as well as the CEO of a company, and we are going to be discussing deep learning, upskilling, and lots of other things that I think might be interesting to the software developers listening to this show. 

Kian Katanforoosh I grew up in France, my family's from Iran, and I studied engineering back there. Then I went for grad school to Stanford where I originally worked with a professor of cryptography. I moved to AI to work under Andrew Ng. 

BP All right, so let's transition over a little. You are an academic, but you're also in business at Workera, and the idea there is that a company comes to you and they say, “I want to identify what skills my employees have, if their competency is up to the level we need for this project, or if they need to head in a new direction or are missing certain key skills, then we can work with them to acquire those.” So what skills are you seeing being really sought after in the marketplace, in areas of opportunity for folks who are listening, where if they have those skills or they're looking to upskill, this is where they should invest? As folks at large organizations are thinking about moving into the future, what are they hoping their employees have? And if they don't, what are they trying to upskill them in? 

K Katanforoosh Well, last year was expectedly an explosion of generative AI content. Responsible AI has become a mainstream topic in the enterprise as well, so we have a suite of measurements in responsible AI. Other domains that were called out often were working with different data modalities– so language, vision, speech, etc. Initially we've seen teams that are responsible for language, teams that are responsible for vision, teams that are responsible for speech, but it's becoming a little bit more blended where there is intentional upskilling across data modalities. On top of that, I think there is a huge emphasis on data security and privacy, so there is a ton of assessments that have been used for semi-technical people to deeply learn data governance, data privacy, responsible AI, and then data literacy. I would say to a certain extent, the fact that AI is boosting productivity pushes leaders to help their entire workforce learn AI, while if you compare that to 2015 when we started teaching some of these classes in 2017, it was very much center of excellence driven. It was, “You are an engineer– you learn AI; you're not an engineer– you probably don't need to learn AI.” 

BP Right. How do you prepare yourself and your team at your company, and what do you try to do as you're guiding students who are going to be entering the workforce with some of these skills?

K Katanforoosh What is worrisome is– do you know this metric called ‘the half-life of skills?’ 

BP No.

K Katanforoosh It's a metric that the World Economic Forum reports and it measures how long a skill is useful in your career on average. 

BP Ah, gotcha. Yes.

K Katanforoosh And so 40 years ago, you may have used the same skill for 10 years, 20 years without changing it, and it's the same. Now we're hitting rock bottom in terms of half-life of skills. So in digital areas like AI, it's probably around two years, and that probably will keep decreasing to a level where it's going to be scary how fast we'll have to learn, and learning velocities are going to be very important both personally for people. And so what worries me is that the world of education is not set up for that. What universities are teaching today is not set up for what workforces are sustaining. So at some point it's going to break, but we’ll need to make sure that the education system is set up properly for an age where skills are just ephemeral. A lot of skills are perishable. There is probably more fear– that's my prediction– than what's going to happen in the cognitive roles, because if you think about AI as something that just raises up the stack, we started with the Assembly language, C, C++, you go up the stack. When React JS came out, actually it was much easier to be a front end engineer if you think about it, but the fact is that there were more front end engineering jobs after than before. And so I still imagine that as natural language becomes the new top of the stack, there will still be more problem-solving, engineering, science jobs in that area. Maybe they'll differ, but there will be many, many.

BP Right. You’ve just got to figure out how not to be the horse and buggy. There'll be more opportunities, you just have to make that transition quickly. 

K Katanforoosh As long as you learn. 

BP As long as you learn.

[music plays]

BP For our second segment here, we have a home team episode diving into a bit of news about some of the layoffs and what is going on with developer hire.

[music plays]

BP On a sad note, a big story in The New York Times this week: Technology Companies are Cutting Jobs and Wall Street Loves it. This is really unfortunate. We've seen a lot of layoffs in the tech industry, startups and massive companies. I believe– don't quote me on this, don't take this to the bank– that the cuts that are being made still do not bring the companies below the number of engineers they had in 2020, that the massive hiring that was done during the pandemic years still puts them ahead of where they started. But unfortunately this can be a self-reinforcing cycle. They make cuts, the shares go up, the people who decide on cuts love it when the shares go up, and so that's not a great outcome for the developers who work there. 

Ryan Donovan Yeah. And I read something that this sort of layoff strategy to encourage short term stock prices is something sort of pioneered by Jack Welch at GE. He would every year lay off the bottom 10% of the company, and then also do layoffs to improve the stock price. 

BP Yeah. I think there's an interesting question there, which is how many people are going to show you their true abilities in year one and how many are going to blossom in year two or three after they get to know the ropes and understand who they're working with? One year, two years is not necessarily enough time to decide where they belong in the stack rank or whatever it may be. After four, five, six years, you can say, “All right, how much is this person producing for the company?” and make a decision like that.

RD And I think it could be that this is actually a good thing for refocusing. Like you said, maybe folks overhired during the pandemic. Maybe this is a lot of internal feature bloat. A lot of companies stretching out, going different places and being like, “Well, let's stick to our core business.” 

BP I heard some crazy stories recently as I was discussing what's happening in the industry with some friends. Somebody who has worked at tech companies for a long time and is an engineering manager said that prior to the more recent cutbacks, it was not uncommon for people in a high level engineering role or product role at a very large and well established public tech company to sometimes not work for six months. A project they were working on would be shut down. They would want to get on a new project but there wasn't one immediately available and they were basically just on sabbatical. It was like a teacher in the rubber room. And at those salaries, it's crazy, but at that time, the companies didn't care because that wasn't what they were maximizing for. That wasn't what shareholders were clamoring about. So there was certainly, I think, some bloat there. 

RD And I think Silicon Valley the show parodied that where there were just a group of developers that hung out on the roof and drank beer.

BP Right, exactly. The roofers. There's a great article in MIT Technology Review. If you're listening, I would suggest checking it out. It's about a professor from Duke University who decided that for one of his entry level programming courses he was going to change things up and switch from Python to Rust. So this guy has 25 years of experience as a developer, and his takeaway from using an AI assistant in the IDE was that it gave him superpowers. “There's no way I could have learned Rust as quickly as I did without it. I basically had a super smart assistant next to me that could answer my questions while I tried to level up.” So Ryan, I think to your point, it's not a replacement, it's an enhancement in this story. To be able to say, “You know what? After 25 years, I'm switching from Python to Rust in this class,” that's a really meaningful thing. Now all these other kids are going to learn something different and that was made possible with the help of this stuff, so it was kind of cool to read. 

RD And I think this shows the power of generative AI for somebody who is fairly competent in the field. Somebody who's not competent in the field doesn't know the right questions to ask. It's all unknown unknowns. But for somebody who's a professor who knows Python inside and out, what's the parallels? How do I find a way into Rust? 

BP That's interesting. They would probably ask a lot of questions like, “In Python, I do X. How can I do that in Rust?” Just as a corollary to this though, there was a study released this month– January 25th, 2024– that reached the opposite conclusion. We find disconcerting transfer maintainability, code churn, the percentage of lines that are reverted or updated less than two weeks after being authored is projected to double in 2024 compared to 2021, and so there we further find that the percentage of added code and copy/pasted code is increasing in proportion to updated, deleted, and moved. In this regard, AI generated code resembles an itinerant contributor prone to violate the DRYness– do not repeat yourself– of the repos visited downward pressure on code quality. So use at your own risk or use wisely. Don't just copy and paste, that's not what you're supposed to do. 

RD And I think even when folks are just copying and pasting from Stack Overflow, that's not entirely advisable. I wrote something a while back about how good coders borrow, great coders steal, and the stealing is that you have to understand it and make it your own. The same with the AI code. You can't throw things in there willy-nilly and hope that you have a functioning program at the end.

[music plays]

BP For our third segment here, we have something really interesting. We're chatting with one of our listeners who reached out. The listener's name is Patrick. They want to talk about what it was like when they started in the early-2000s, and some of the ways in which the job market has become rough over the last few years and how they're dealing with it. So without further ado, a chat with one of our community members.

[music plays]

BP We have been encouraging folks who listen to the podcast to write in, and we heard from one of our listeners, Patrick, who wanted to talk a little bit about what's going on in the job market. As we mentioned on a previous episode, I think it was in 2002 there was something like 240,000 tech hires, and in 2023 there was something like 700. And so if you go back to 2010 when I started as a tech reporter, and even earlier– five, six years after the dotcom boom and bust, getting a job as a software developer felt like a reliable path in that you were more likely to have lots of recruiters in your inbox and options than you were to be out of work and unable to find new work. So we wanted to have Patrick on to talk a little about his experience, what he's seeing in the market, what he's excited or aggravated or hopeful about. I think this podcast has always tried to be about the practice of software development, but me being the worst coder in the world makes that a little difficult, so it's nice when we have people on who can actually bring a first-person perspective. So Patrick, welcome to the show. 

Patrick C Thank you, Ben. 

BP To folks who are listening, just give them a little background. How'd you get in the world of software development and what kind of shops and firms were you working for recently?

PC When I started, it was right around 2002 when I graduated, so it was right at the dotcom bust. And I had just got a computer science degree and I had trouble finding a computer science job related to that career, as a programmer. What I ended up doing was kind of falling back on my default IT experience. I was at a help desk and I worked at ResNET at the dorms, so I ended up working for Bell-Carter Olive Company. They make olives, but I was the IT guy there. I maintained their systems and their networking and was the IT guy for years. And I went to another company and did IT there, and then when the industry started to resuscitate and I had contacts, I basically got a referral and I got started as a software developer after a few years after that.

BP Cool. So moving from IT into development which I guess had been your goal coming out of college, what was that experience like? You started as an IC and did you enjoy it? 

PC I did. They kind of throw you into the fire. It was sort of like, “Let's see if we can break you.” So it was a tough start, but in a way, it was really rewarding because it was enlightening and reaffirming that I can do this and this is really what I want to do. And it is really exciting to create these things that solve these problems in an automated fashion and you can make them great value. 

RD Did you find yourself having any sort of a specialization, any places that you preferred to write code in or languages?

PC We had this weird mishmash where the people in the back end wanted to do Java and the people in the front end wanted to do .NET, and they don't work together so it was this constant conflict and understanding of this new system and complexities around everything, so I got exposure to all these different things. I started off in the UI, and then I did that for several years and then I had an insight to the back end because I was hitting the REST endpoints and all that. At my next company, I had more opportunity and I ended up going to more of a back end focus. I preferred that because the UI frameworks were all over the place on the front end. They were changing and they were in flux and JavaScript was sort of ugly and difficult to work with. I've heard it's gotten better. So I've preferred the back end. It sort of feels pure, it feels stable, but UI has matured over the years and it's getting better.

BP It's the opposite of a mullet. It's business in the back, party in the front. Reverse mullet. And so one of the things that I'd love to know is, you mentioned graduating in 2002 and it seems like you held a series of jobs since then, and went from a developer level two to senior software engineer, to developer level three, and those terms don't apply everywhere, but within lots of companies, that ranking system is pretty normal and shows you growing in seniority and your ability to take on big projects and work at a scope or with a lot of people. So what was the experience like, let's say, prior to 2020? You felt like you were able to make moves as a software engineer when you wanted to from a position of power, like, “I see a new opportunity, I'm going to leave here and take that.”

PC Yeah, it was very simple to get hired. People were clamoring for you. People were looking. It was more of, “We really want you to be with us and we hope you can accept this pay grade,” or whatever. The interviews were quick, there were plentiful jobs. It was just very simple and very quick. And now it's the complete opposite where there's few job postings, some of them feel like they're phantom postings where they keep reposting the same job.

BP Ghost jobs, right.

PC And you're like, “Are they really hiring?” I've contacted the company and they're like, “Oh, we're in a hiring freeze,” and I'm like, “Why am I seeing job postings constantly coming up?”

BP We have had this discussion about ghost jobs, some of which I think have more to do with some kind of weird compliance or regulatory thing than they do with actual hiring. I don't know. Ryan, do you know about ghost jobs? 

RD What I've heard is that some of it is sort of morale for the team, some of it is collecting resumes for future positions. There's all sorts of reasons they could have it up there. 

BP And so Patrick, what have been some of your strategies? Are you networking with other folks you know? Are you considering, like you did before, maybe falling back on a different set of your skills? Or are you thinking I can afford to, for the moment, just stick it out for the long run and I want to go back to the kind of software engineering job I was doing prior to this.

PC A little of everything. I've hit all of my contacts up, I'm continuing to follow them trying to see if anything opens up, looking at what companies I've worked at before, seeing the jobs they have. And I've also applied to many different places throughout the region. I've looked at hybrid roles, I've looked at remote roles. I think what's also key is you look at the unconventional ones. The job boards are very good for giving you lots of good leads, but they're also inundated with lots of people. If you kind of go with less conventional roles that are not well published, then you have a better opportunity. But it's hard to find those, they're not as accessible if they're not on the job board so you have to kind of seek those out and find them, especially if they're outside of traditional tech. 

BP I had a friend recently in California who was going through a sort of similar experience to you. He's a product manager/designer. He's worked at a bunch of startups in the technology space and a friend of his found a gig at Walmart on their mobile app side. And he was like, “I never really thought I would ever work at a big box store in any capacity and I wasn't really thinking of Walmart as a technology company,” but a company at this size that wants to work at this scale with so many consumers actually has a great engineering team and a lot of interesting stuff going on and it feels modern once they got inside. It didn't look like a tech company, probably wasn't somewhere they would have looked, but once they got there, they were like, “Oh, this is a comfortable place.”

PC One of my old coworkers actually worked at In-N-Out and said that it was surprising. They do have an IT division, they have their own development. You wouldn't think of In-N-Out, but all these companies still have their needs.

[music plays]

BP For our next segment, we are going to be chatting with Kirim. He is the president over at Flatiron Software. He was a software developer and engineer for many, many years, and now builds tools that help to measure developer productivity. So they have a really cool system that looks at your pull requests, your JIRA tickets, your stand-ups, puts all that stuff together and tries to help folks figure out how they can make their software engineering team more productive. 

[music plays]

BP So for our listeners, do a quick flyover. How did you get into the world of software and development and what led you to the role you're at today? 

Kirimgeray Kirimli I've been in software development for almost 20 years now. I studied computer science, then did software development as an engineer for many years, and then most recently, before I started working with Flatiron Software, I was a VP of Engineering at a large media company. I've done pretty much all the roles in software engineering and now at Flatiron I'm working to provide software engineering for companies that need help, that need product development, and anywhere from startups to Fortune 500 companies. We're trying to help companies anywhere from small scale to large scale Fortune 500 companies. And while doing that, we've noticed that there's a big need in the world of software engineering for evaluating good software performance. We've run into this because we believe that we're a great company, but we've always struggled to quantify why are we better than other companies? Why would you choose us versus the next company that has a bunch of engineers? And as we were trying to quantify our success, we ended up developing a tool that helps us measure the efficiency of our teams, that helps us quantify why we think we can do a better job, why we think we're better in delivering products, and that tool is called Snapshot Reviews. It started off as a 360 review platform that allowed engineers to put their 360 review data. Then we continued with adding their sprint respective data, eventually added a stand-up module that allows engineers to add their daily updates, then we started pulling in metrics from GitHub– and not just metrics, but the actual code base and the pull request changes. And that's where it started getting interesting, because at that point we started having all the updates coming in, and we also started having all the GitHub data. Still not very helpful because the activity you have in GitHub without context is not really indicative of anything. We started pulling Jira tickets. So we would have some idea, but still without any deeper understanding, these metrics can be gamed, and they're not necessarily indicative of performance or better work, for that matter. Then eventually, as AI became more popular and more accessible, we started taking a new approach, which essentially is what really transformed the product and made it something really useful. We added a feature that allows you to train an LLM based on all of this data, all of that information, and the LLM actually has access to the code base that you've made, the updates that you've given, the tickets and the ask in the ticket, the code review comments that you've submitted and received, as well as 360 review feedback you've had from your peers every six months, and finally, the sprint retrospective information. And this gives the LLMs infinite ability and a lot of visibility into what's happening so you can see a full picture. We have the dashboards that allow you to see static data, like how many pull requests have you submitted, you versus the rest of your team, how many reviews that you've done, and how often you code. And those are all fairly standard metrics that you can find across the internet, though we do think we go a little bit further with that. I think that our bread and butter is actually the AI portion where we feed that information into the AI, where the AI reviews the code and can tell you the complexity of the work you've done. So I might have five one-liner pull requests, and on a standard graph you won't be able to see much and it doesn't mean anything. But what we do is we ask the AI to create a difficulty and complexity score looking at both the ticket and the pull request that allows you to get an understanding better. Then we use that to map some graphs. We are working on a chatbot feature that essentially allows you to ask, “Why has this ticket taken so long?” or things like, “What are some of the issues that you've noticed here?” or, “Given the past five tickets of a certain person, what is your feedback? What is your point of view, given that you have access to all of this other information that I've just mentioned?”

BP So let's move for a second over to, you're using AI here in a way to help evaluate folks. And a lot of it, like you said, is based on the human input through a lot of very in-person activities. How do you talk in your stand-ups? How do you talk in your reviews? It's not like the AI is judging solely on its own through some abstract process, it's got a lot of human feedback that it's working from as its data source. But one question that comes to my mind is, if folks are beginning to lean more and more on AI-assisted development, and if there might be an AI in the loop writing code or debugging or doing various things, how can you adapt to that, and what impact would that have on evaluating software teams? That's my first question, and then just sort of more broadly, since a lot of what you said that Flatiron does is help companies that need it build a software team to get a great project done, what is your recommendation to them in terms of adopting code gen tools?

K Kirimli Given the current state of AI, there's a lot of potential for AI to aid code. We actually developed a code review tool, AI based code review tool, just like every other company, that helps us give ideas. AI, I don't think at the moment, is mature enough to write an entire software, but I'm sure within a few years it will be able to replace junior engineers. That's the guess that I have, that you should be able to give AI a detailed enough Jira ticket, your code base, and the previous pull requests, and it should be able to write that. That could be on Snapshot’s product road map to do that, given the information. However, at the moment, if you're a junior engineer working towards a ticket, having AI help you will actually clear out a lot of the problems that you would otherwise have in your pull request that would be caught by a senior engineer. A lot of the best practices AI might be able to point out and essentially help out the team produce overall high quality work. And that's the impression that we've had, that's the experience that we've had with AI. However, I wouldn't trust it at the moment, although I'm sure within a few years that's going to be possible, at the moment, I wouldn't trust AI to go full-on develop something from scratch. Or honestly, the amount of prompts that you would need to give to AI to correct that might be more than actually developing yourself. 

BP What do you say then to somebody who just graduated high school and is starting college and has always thought that a computer science degree interested them and that a role as a software developer is high-paying and often in demand, to say in three or four years the AI could be a junior developer, that might be a frightening thing to folks who would need an entry point into the industry. So how do you respond to that? 

K Kirimli First of all, I think if you're interested in being a developer, I feel like there's still going to be a market for it. It's just that it'll be AI-aided development. When I started my development, it was me just being a junior developer, but if I had an AI as a junior developer, I might actually be able to produce things a lot more productively than I otherwise would have. So my advice to anyone who's in high school now looking to get into development is that they should still do some development, and it's good to understand how it works and there are a lot of best practices, and you're still there to ensure that AI did the right thing, because it might not. A lot of the AI-generated content I see looks right, but sometimes it might not be. So the junior developer’s job there is going to be to verify that information. It might be able to write a way more efficient code than they otherwise would have written, but the junior developers still needs to be able to verify that information and that requires computer science knowledge. 

BP I like what you're saying. It's sort of like saying that nobody will come in as a junior developer anymore, you'll come in as a new developer on the team working almost at an intermediate level because you'll have this AI assistant empowering you, right?

K Kirimli Yep. 

RD I think that's an interesting idea, but I think the junior developer doesn't always have the context for good software engineering practices to sort of evaluate the code coming in. We have an upcoming blog post about how software engineering is basically a mentorship program. You come in as a junior dev, you go through the battle trenches, and you come out a seasoned intermediate dev. How do we get those entry level junior devs to move up to senior devs if we don't have them writing the bad code that gets kind of kicked back in peer review?

K Kirimli When I say AI-aided code, it's not always AI aiding you at the stage of writing. Sometimes it's AI aiding you at the stage of code reviews. And we're talking about a few years from now, we're not talking about an immediate presence. Even the code review tools we have right now are fairly decent, so I'd hope that by then the code review tools themselves will actually be a little bit more advanced. So this is how I envision the process: junior developers are going to sit in front of their computer, look at their ticket, maybe get advice from AI on how to get it started, look at the Copilot, write something up, the AI is going to suggest how to improve it, etc. Then you're going to open a pull request, an AI code review bot is going to go through your commits, actually give you feedback, hopefully more than individual function scopes but I'm talking about the scope that covers the entire pull request, and then you follow the regular code flow where a senior engineer can still come in, still give you feedback. And by the way, for me at least, when I was a junior engineer, the most amount of learning I've ever done was when a senior engineer gave me code review feedback. So we can still keep that and the AI-aided bit doesn't stop that from happening, but rather than a senior engineer telling me to remove print statements or do not build a massive function, that could be said by the AI, where the senior engineer could actually give me feedback that has more insight about the larger project. 

RD The senior engineer is no guarantee. I've definitely heard of senior engineers creating very strange function definitions where all the parameters are concatenated into a single parameter.

K Kirimli I've also had my time with senior engineers that are not necessarily giving the best advice, but in that case, AI could even work as an arbiter between the two parties, maybe even help the senior engineer a bit, too. 

RD There you go.

[music plays]

BP All right, everybody. Thank you so much for listening. We are heading into a new year. If you have thoughts about software development careers, about upskilling, about what kinds of languages or frameworks, tools or technologies, what skills are in demand, we'd love to hear from you. If you have a story you want to share, we're all ears. You can always email us, podcast@stackoverflow.com, thoughts, questions, suggestions for the program. We'd love to hear them. Thanks again for listening, and enjoy the holiday season.

[outro music plays]