316: Job Security - podcast episode cover

316: Job Security

Apr 10, 202529 minEp. 316
--:--
--:--
Listen in podcast apps:

Summary

Marco and David discuss the impact of AI coding tools on programmers, especially indie developers. They explore how AI can increase productivity but also potentially displace some jobs. The conversation covers the evolving role of programmers, the importance of product sense, and how AI tools can help developers develop their intuition and taste.

Episode description

The podcaster did not provide a description for this episode.

Transcript

Welcome to Under the Radar, a show about independent iOS app development. I'm Marco Arment. And I'm David Smith. Under the Radar is usually not longer than 30 minutes, so let's get started. So for today, I wanted to, in some ways, I guess, follow out to a... discussion that was in the overtime segment of ATP about two weeks ago where you were talking about vibe coding and the rise of AI coding tools and some of the implications for that and the way in which it might

adjust, limit, or change the career trajectories of programmers. And as a pair of programmers, it was something certainly that I imagine we have a lot of opinions on, and specifically talking about it. There are some of the ways that I've been, as someone who's a programmer, anytime an automation comes up that replaces or improves or...

in any way kind of changes your role in doing your job, it's going to have an impact and be something to think about. And so I've been thinking a lot about this. And we'd had an episode in January about how we're using this. So in episode 309 of Under the Radar, we talked about

how you and I are using AI tools and code automation and these kinds of things. And that is a useful part of it. But more generally, and kind of taking a step back, I think there is something more fundamental going on here that it was worth unpacking. Specifically, the thing that really kept coming back to me was how several years ago, I feel like there was a movement called sort of the like the everyone can code.

I don't know. It was like a movement, a marketing campaign. Apple was big on it for a while. They had all the learn Swift things. There was this general vibe that in some ways the – next step for like middle class white collar work was going to be coding and that that was a big thing that everyone should try and get into because it's a great career with good stability and

At the time, I would say that is one of those things that it was both true but unhelpful. Saying that everyone can code is a bit like saying everyone can sing. which is true, but it's not particularly helpful for basing life decisions on. That just because you have the ability to sing doesn't mean you're going to be able to make a career out of singing. And in the same way... I think code and AI have kind of fallen into this place where

The type of coding that you could easily, say, have learned in a 12-week boot camp, which would be a front-end developer, which is like a thing that existed. And I know people who went through those and found careers in some ways. Like there was a window where... you potentially could learn to code in a quick way and be able to have a reasonable job from it. But the challenge now, I suspect, not being someone who's doing this myself, but in terms of I can expect that there is a...

The tools like cursor or, you know, resplit or all these, I don't know, they change every day, but even just chat GPT, like those tools ability to create a lot of that basic entry level, straightforward code. kind of eliminates a lot of the reason why someone would hire that person. And that's difficult. Like that's a challenging thing if you wanted to go down that road, because I think there's a large group of people who were doing coding because.

They thought it was a good career path, not necessarily because they had the interest and aptitude necessary to be like that next level up coder. And I'm not trying to be like selective or gatekeepy in that way. But I think with any career, you know, same thing with singing and use that example. Like there is... a difference among people that some people are going to be better at that thing and have a different aptitude and interest and ability to sustain their interest in those things.

And if you are only in it because you think it might be a reasonable career and you don't have that interest and aptitude, it's going to be very difficult now, I would expect. And it isn't perhaps a great place to start a career out. as a result. And so that's just a funny place to be as someone who's in that career. But weirdly, on the flip side, and this was the positive take that I thought was interesting, is I was thinking about as an indie.

how the biggest impact for most AI tools is, I think, in sort of automating some percent of the work. And the logical impact of that is going to be that there will be places where... A company may have had five developers before, and now they have four. Or they had 20 developers and now they have 15 or whatever that ratio is. Like, I don't know what it is, but the sort of available, the velocity of each or the productivity, I think is the economics word, the productivity of each developer.

But the funny thing about being an indie is that I can't really reduce the size of my team because right now my team is one on the programming side. And I can't really go to zero because then no programming happens. And so the nice thing about being an indie is it's actually you are entirely kind of insulated by the advent of AI in terms of it eliminating your job because you can't eliminate a job that.

can't go to zero because then nothing will happen. And so in that sense, it's great. It's a wonderful, like these tools, in some ways, the upside is huge for developers because if I can become 20% more productive, then that's... huge and beneficial for me and it isn't eliminating my job. So as Indies, potentially an upside for the people who are trying to get a job in a bigger team, much more of a challenging sort of scenario and context to find themselves.

Yeah. And I think that's like many other accelerating tools. You know, the fear, which does happen, is that when you make like the good people more productive. You have a lot fewer jobs for the people who are less good or whose skills are less unique. or are less necessary. Yeah, you might be cutting the team down from 20 people to 15 people or whatever. And what happens is that you don't need...

as many okay or very junior programmers if the senior or good programmers can be more productive with some of the more tedious stuff. Over time, we have... always developed major improvements to programmer productivity with different styles of apps, different advances in compiler technology, different programming language techniques and concepts. Having more and more safety checks and dynamism in different things. These are all things that have improved programmer productivity.

The fear is always, again, that you will lose the jobs for the kind of lower-tier programmers. What has actually happened so far, mostly, is that the market for programmers has not gone down. Usually by making software much cheaper to make. The actual outcome is people just start demanding more software in more places to do more things. And they raise the bar for what they expect their software to do.

And so what ends up happening is whenever we make programmers more productive, so far, we have just actually increased the demand for programmers because the value of programmers has gone up. And, you know, we're kind of just moving the value chain. There are things that we will still be able to do even in a world where AI tools might be writing a huge amount of code because, you know, as you said, like someone has to direct them with what to write.

Now, maybe down the road, we don't even have to do that. We'll see. But someone's got to plug in the server at least. At some point, the human decision is what to do. And, you know, like in that ATP over time, one of the things that John Siracusa said was like defining what to do.

is harder than it seems like you don't just write a prompt and have a complete product come out of that you have to define like well what's the behavior what what do we want this thing to do what do we want this thing to look like what features we want this to offer and all of that like If a lot of the drudgery of the code writing gets automated away...

Those jobs still don't disappear. If anything, they become more important. Every time we have made programmer productivity better, that just becomes more tools for programmers above them to use. we've made art easier to create over time, but there's still huge demand for artists and designers. Like we've like, graphic design and all these things. These are huge fields that keep growing even as we're making things easier to make for non-artists. All these giant AI tools recently.

They're also doing things to create art and make that easier. Is the market for artists disappearing? No. It gives the artists greater tools for their own brainstorming and automation of drudgery. And then it gives potential customers, here's a bunch of things to try. You can have some AI tool generate you like, give me 10 different logo concepts.

and now give me 10 more now give me 10 more oh let me expand on this one and maybe you know tweak this a little bit and what you get out of that is not a final product what you get out of that is then something you can like you can go to a designer and say

here's the direction I'm thinking. Here's some concepts I tried. Here's what I liked. Here's what I didn't like. And then you can get a good look from a designer. So these are just, you have all these tools that They are – like if you look on the surface, you might think they are getting rid of jobs, and they might get rid of some jobs.

But what tends to happen mostly is expanding access. You know, as programming has gotten easier and these tools and, you know, tools like memory safety languages and autocomplete and stuff, you know. What has happened is programming has gotten easier. You no longer have to be an assembly language genius to be a programmer.

But you do have to actually do the work. You have to actually be a programmer. You have to actually decide, I'm going to direct these tools to do... this to do what ai tools are a huge leap in a lot of ways but i think they still need that they still need the person to say what to do and to take their output and know what the heck to do with it

Yeah, and I think it's interesting the way you're framing that there. It's in a weird way. It's almost like it isn't necessarily that everyone could code. It's almost like everyone can make apps. Now, in a way that like you're moving up the stack another level that the code itself is less.

And I think increasing accessibility is an interesting aspect of that as well. And I think it's like, what is it, the term people have been throwing around a lot, Jevons paradox, I think, which is as efficiency increases, demand increases. And so you don't end up like destroying the market in a way that you potentially could. But obviously this is one of those things that doesn't isn't like a guarantee. It isn't necessarily that if you make.

programming, in this case, more accessible, there will be more demand for programming because more people can do it. That is one outcome. The other outcome is that there will be a certain fixed amount of it that is sort of reasonably possible or does exist.

And so you can't get beyond to that point. And like, what is the, which of those things is, is the outcome? It's like, I don't know like that. And I think none of us really do it's, but it's definitely an interesting aspect in all of this where you can. get a lot farther than you could without deep knowledge previously. But that isn't a guarantee that...

Yeah, everyone will be able to do that or that there'll be more sort of demand and jobs for this because it's like there are other examples you can think of which. I think line up reasonably well. And it's like specifically, I was thinking recently about how in like carpentry, so like building a house. In some ways, this is the sort of... increase that you get in productivity, say, between a hammer and a nail gun.

that they are both ultimately just things that, you know, affix two pieces of wood together by driving a nail into it. But it dramatically changes the kind of nature and relationship of that thing where now it doesn't you don't just have. The challenge of putting the pieces of wood together, that's essentially free and instantaneous. A nail gun is massively more efficient.

But instead, the challenge, and this is one of these things like, I don't know, I've fallen down the home building YouTube rabbit hole recently. And like watching people build houses is super interesting to me. And I think the thing that was fascinating reminds me a lot of programming is how. you get the impression that the amount of time people spend... Sticking pieces of wood together in a day's work is relatively small.

What they spend a lot of time doing is working out which piece of wood goes where and how to frame it and how to structure it and how it's going to be like all dealing with the constraints and the rules and the code and all the stuff that goes around it. The actual part of combining the wood together into the shape you want. That's easy. And like that's used to be much harder if you had to just nail and hammers. Now you have a nail gun. That's super quick.

but the actual, that's, you know, that is actually like 20% of the job. The other 80% is the knowing which two pieces of wood to combine in which shape, in which configuration using what fastener, like that part. doesn't change if there's an efficiency gain that happens. It's like there potentially are certain laborers, in this metaphor, who would not be employed now, who would have been employed previously.

But the fundamental like knowing what to do when part, that hasn't changed. And that is I think like fundamentally it's almost like in the way that we used to think of – What was it? The word computer used to be a person who did numerical computation. Like it was a person who would sit there and do the math. And now a computer is the thing that does that.

um it makes me think in some ways how like i've never really loved being called like i don't think programming is really what i do um you know if someone asks me sort of what a job description or i'm filing my taxes and i have to like give myself a name feels much more true to what I do in the sense of it is this multi-disciplined thing of combining around. And one of the small parts of that is programming. And that small part of it, that programming part, potentially is becoming less and less.

specific knowledge and much more just something that you can deal with at a much higher level in the same way that you don't need it to have a person who's actually doing the computation before. Now you can have a computer or a calculator do that for you. But my job is now moving up to the engineering aspect of it and knowing what's the actual structure? What are the architectural plans? How should this go together? What are the constraints that are beyond?

Just now that I have a prompt of like, give me a thing that takes. these fields and stores them in a database and then a thing that takes them out of the database and displays them in a table view or whatever that might be. Those parts are becoming commodities.

But the actual knowing what parts to put together, like that is still the, you know, it's like the instruction book of the Lego is still the part that is very difficult and challenging to build. The actual snapping the parts together much, you know, has become much easier. We are brought to you this episode by Sentry. Sentry are the people who help you avoid your mobile app being the one that gets deleted next.

From getting deep context into crashes to seeing full insights and performance issues, Sentry is here to make sure your code doesn't suck. You can fix what's broken faster with Sentry and keep your app running smoothly with application monitoring built for mobile developers just like us.

So important that your app not like have weird bugs or slowdowns out in the field. And it can be really hard to know what's going on when your users are using your app. Are they like hitting stalls? Are things breaking in weird ways? Is there weird latency?

you need to have insight into that, and that's what Sentry gives you. So keep your mobile users happy. The great news is Sentry is totally free to use, so there's no reason not to check it out. And even better, as an under-the-radar listener, you can get six months of the team plan for free.

Just click the link in the show notes and use the code radar. That's six months of the team plan completely free at sentry.io slash four slash mobile, or click the link in the show notes, then use the code radar. Our thanks to Sentry for the support of this show and Relay. Yeah, I think the deciding what to do is underrated as a skill for any business, honestly, but especially for software and especially for indie developers. We see in software all the time, like...

We are not usually limited by typing speed. Like, if an AI tool can type a bunch of code for... that's usually not our limiting factor. Usually our limiting factor is, first of all, debugging tricky problems. which I don't think the AI tools are likely to be massively helpful with. They can find probably small errors like typos, syntax errors. really obvious logic errors. I'm sure they already are able to find some of that stuff.

programming, when you look at the amount of time in a day that you spend as a professional programmer, most of that time is not spent typing new code it's usually like debugging trying stuff out like we're moving stuff around thinking about like what's the best way to do something trying to keep track of all the complexity in your head And what AI code generation does is, first of all, none of those things. But then also, it gives you a bunch of completed code and says, here, here you go.

And that's great in certain contexts and certain sizes and certain types of code. But what you then have is a whole bunch of code you didn't write, and you're integrating it into a product. Well... That has time costs to it. Like, sometimes that'll be worth it. Sometimes it won't be. Sometimes you'll actually, you know, you won't be coming out ahead trying to integrate that kind of code rather than writing it yourself or using something that you already know.

There's going to be a lot of different trade-offs with that. And the tools will advance. They'll get better at certain parts of that. They won't get better at other parts of it. And it is still on you to... And figure out, first of all, do they work? And you'll probably have to do like a lot of testing and validation and everything around them. And then figure out like, okay, well now, how do I build that into a product? And more importantly, what product do I even build?

Because the other major time sink of professional software development, again, it's not typing. There's debugging, the problems, like figuring out why things don't work. And then also the other major time sink is... That is possibly the biggest. Like, I can't tell you. Look around the software business. Look around your own apps, your own life. How much time we spend doing the wrong work, building the wrong feature, building the entirely wrong product.

There's so much wasted time doing that. And that's something that none of these tools are going to help you with. And as indies, the most important... skill that an indie developer can have. is that kind of product sensibility of like... what is the right thing to build? That matters so much more than how you build it. In a lot of ways, honestly, it matters so much more. That's why you can look at the App Store like top charts over time. You can see all these, you know.

apps of mixed quality let's say and sometimes you're sometimes you look at something like that why is that popular that's a piece of crap but It's popular because it was like the right products, the right people at the right time. And so – These tools are going to help parts of our job. Yeah, they are. And they're going to put some people out of work. Yeah, probably not indie developers, but they're going to help us probably.

What we really need much more help with is debugging and product decision making. And that's something that we are not seeing a lot of help yet from these tools. And maybe we will over time, but we're not really seeing that. What we're seeing is faster typing of kind of rote, simple stuff. That's not without its value, but that's not most of the job. Yeah. And I think a lot of the things you're describing in some ways come to, like, I think combined in my head as like intuition.

There's a sense that over the years of being a professional programmer, I have developed a sense of intuition on the technical side in terms of... When I'm debugging, which you're 100% right, I spend two-thirds of my programming time debugging code, not writing code. The actual putting characters into a Swift file, a very small part of my day.

running and testing and debugging that code that I've created far, far more, far, far more of my time. And I think that requires a sense of intuition, both to know how to fix it. So like when something isn't working. And then perhaps even more subtly, and I think this is the fundamental part that I think is going to be much longer horizon before. I would be able to tell you is, is it working correctly?

And this gets into the halting problem of these deep challenges, things in computer science of knowing if a program is doing the thing that it's supposed to be doing. requires this paradox of knowing what it should have been doing, and you can't know what it should have been doing until you know what it's supposed to be doing. It's this very nuanced, challenging thing. And so a lot of that, as a developer, is about understanding

You have to develop this intuition that be like, ooh, that doesn't look right. And then knowing that it doesn't look right is the first problem. And then knowing what it should look like is the other problem. And so that is an intuition that I think just comes with time and with taste.

And with aptitude and with ability, like, I don't know why I know that something isn't right. Or like, ooh, when this kind of bug happens, I've developed like the sense of like, ooh, I know where I need to go to look. And very often like. I think my speed as a programmer, my ability to do a good job at what I do, is that I'm a fast debugger much more than I'm a good programmer. That is, I think...

Something I've learned over the years that I'm not actually a particularly good programmer. I don't under like as a from a computer science perspective. There are huge swaths of things that I'm just not very good at and I don't really understand. I still to this day do not understand Swift like async concurrency stuff properly. No one does. It's OK. Like I know enough to write like a bad vaguely working version of it. But like.

Some of the stuff when it gets like, when is this isolated and what is an actor and when I should use my own actors? Like, I don't know. But I'm very good at like making something and then working out sort of reliably working out how it isn't working the way it's supposed to and then how to fix it.

And so like, rather than maybe like the, you know, measure twice, cut once, I'm like measure, measure once and then like duct tape together four times. And like that works in the sense of like, I ended up with something that works. But it's a different approach. And that works for me. And I'm good at debugging. And that's allowed me to have a good career because I think that is the part that is ultimately the essential. And that's one of the things that I'm good at. And it's one of the things.

And that's even just like to say that this is even just a small sliver of our work. that you and I do, like being a successful indie developer, like there's so many parts of it that are nothing to do with, you know, code or apps or software at all. Like dealing with App Store Connect. getting a Dun & Bradstreet number, dealing with your accountant, getting paid, filing paperwork. These things are the essential parts of being an indie.

that AI isn't going to help you with. I don't think there's any AI in the world, even with AGI, would be able to get a Dun & Bradstreet number. I found that incredibly difficult. And I was a well-qualified... smart person so like ai can't help us there yeah because like what the ai tools like the way they work what they are best at is brainstorming like they're so good because what what these you know what llms especially what they are is bs generators

Sure. You can use that like when when you are when you're doing something where like there is really not like one right answer, but you're looking for like, hey, give me some ideas for whatever. Like it's really good for that. Because it can't be wrong. If you say, give me some ideas or draft me some concepts for this.

Hallucination doesn't matter. You're asking it to hallucinate. You're asking it to generate. And they're really good at that. I find as creative brainstorming tools, they're great because... I don't have that kind of creativity where I can just have a blank sheet of paper and come up with something. I need prompts, or I can riff on something someone else says, but I can't come up with the first original thing. And so it's great for stuff like that.

What you then need to do is be able to look at the BS that it's generating for you and be able to say, oh, you know what? That one, that's something. Let me build on that piece. Let me throw out these three ideas. Let me start with this and expand on this a little bit. And keep using it. You know, you can iterate. You can say, all right, well.

Give me more on this theme or cut this down. Or if you're doing like a design with it, you can say, you know what? Get rid of this. This background thing's not working. Make this bigger. Throw in this style. And it's great for that kind of like, you know, brainstorming generation kind of thing. That is part of a process. Like if you use the output, like we were for the restaurant, we were looking at like different logo ideas for like how we can put certain shapes together.

And any of the images, and this is like with ChatGPT's brand new image generation, it's super high quality, super cutting edge. But the images are unusable that it generates. There's basic geometry problems. The text is really still very messed up. There's conceptual things where like, oh, that goes behind this in a way that wouldn't really make sense.

They're not usable final products, but they're great for brainstorming. And then we can go to a designer, or Tiff is a designer, so we can do it. But we can then use a human who's good at these skills. with this like brainstorming input and say, We like this, but can we work with this and make this into something real? And you still need the human for that. Well, the same thing is true of software. You can take what ChatGPT generates for you, and it's okay, and it's a good starting point.

But it's just that it's a starting point and or maybe it's an idea or it's a brainstorm. And you have to be the one with the skill and the discipline and the product sensibility to be able to put those together into an actual product that people want to use. And then as you were saying, like to then be able to do. everything else about like I would love if an AI could automate getting a John and Bradstreet number

I would love if I could automate negotiating with AppReview to get through basic problems. That'd be great. But that's still going to be – those are still going to be very human problems. And so at the end of the day, you still need to be the director of what's going on. The tools can do a lot more of the work for you, but they still need a director who knows what they're doing. And that's us. Yeah. And I think maybe the positive way to end this is like if you are someone who is starting out.

thinking if you want to be an indie or trying to develop in this sort of line of work. is understand that I view these tools as a way to develop your intuition and taste. And your ability to direct them in the way that like, I think I am good at making apps now because I've made so many apps and I've launched so many flops and failures.

that i've learned a lot along the way and i think these tools like you're saying are great for getting you to a place that you can learn, to getting you over the kind of awkward just...

boilerplate code that you have to write that is not particularly helpful or interesting to the place that is interesting and useful and you can learn from. And I love the thought of someone who kind of wants to be an indie developer but isn't of a huge programming background, their ability to potentially get to that place much sooner now and to start failing and to start learning and then start succeeding.

And I think that flow and that ability that these tools potentially allow, that's exciting. That's cool and interesting and is far more compelling in some ways than... trying to teach everyone how swift concurrency works, that it is instead about teaching people how Giving them the ability to teach themselves how the app business works and what's a good app and what's not a good app and get to that place quicker. And I think that's exciting and that's fun to me.

thanks for listening everybody. We'll talk to you in two weeks. Bye.

This transcript was generated by Metacast using AI and may contain inaccuracies. Learn more about transcripts.