I've been developing software for well over a decade and everything's changed. In this video, I'm going to tell you what I would do if I had to start from scratch getting into software engineering. A lot of people are actually really scared about this. Is it over? Are we just moving on from coding? Are we going into a Star Trek or a Terminator future where the agents are better than we are at everything? Well frankly, yes, coding is over. But I don't think that means we can just give up. So first, let's talk about the things that you can do right now today that would make you super valuable. You need to have systems thinking. You need to be able to understand systems and design systems. So what that means is you have to decide what the different pieces of a system are, what each one of them is responsible for, and how they talk to each other. So here's how you would practice that. If I was starting today as just getting into software engineering, here's what I would do. I would pull up an agent, and I would work with it to sketch out the systems of applications that I'm already using. So you're like, just pick an app on your phone. How does the DoorDash app work? Or how does the X app work? And we would just talk about that system. And I'd have it create visuals for me. And I would push back on different things. And of course, the agent might not really understand those systems. Lots of them are closed source. And so you could point it to open source ones. But it actually doesn't really matter. It just gets you into that mindset of thinking about things from a system's perspective. And then the second skill that I would learn today that's valuable right now is learning how to communicate intent. Communication matters so much. And not only having some good intent (that's a whole other subject), but being able to take that intent that you have, this problem that you're trying to solve, and communicate that effectively to an agent is a super valuable skill. So intent is the what and the why, not the how necessarily. So you're focused on the outcome. Who is this for? What does done look like? And you need to outline the constraints. So what must not change about this system? What matters the most? And what's fine if we skip right now and maybe we can add it later? And thinking about making sure that you don't paint yourself into a corner where doing this eventual thing, this long-term vision for the product, becomes really painful. If you don't do this very effectively, then agents are just going to fill in the gaps with guesses of what they think look right. So your skill today is noticing the gap before they guess, like understanding what they are trying to or what they will probably do. And this is the sort of thing that comes out of experience. And so the more and more you practice with this, the more experience you're going to get with this. And then you have to be able to check the results of what the agent built with your intent. And that doesn't mean that you're reviewing the code. That means that like you are encoding the intent as tests. So give your agents a mechanism for verifying your intent. So yeah, you're going to be thinking about helping the agent verify its work as much as possible. So that's one of the things that you're going to be talking about with the agent is, okay, so how are we going to verify that this does what we expect it to? And that will help the agent be a lot more effective in building the right thing. So to be clear, understanding systems and communicating intent, I think are valuable skills that you need to develop today. So if I were starting today, these are two skills that I would absolutely work on developing. And that's how I would practice them as well. But I cannot guarantee for you what the future looks like. Even three months, six months from now, I don't know how good these agents are going to get. And maybe they will supplant the need for you to have those skills. It's possible. I don't know. But there is a durable skill that you can learn that is going to be valuable to you no matter how good agents get. And so I want to take you through that. But before we do, let's hear a word from our sponsor. Let me tell you about WarpBuild. CI is a problem for me. I've got to have validation before I merge a PR or push out to production. And that becomes even more critical, the more serious my application gets. But it also takes longer and costs more as my application grows. Not to mention the volume of PRs and deploys climbs rapidly with coding agents. And that's exactly what's happening here. I've got an 11 minute and 46 second validation pipeline. That's not even the deploy part. That's just a validation. And yes, I've got several layers of caching and everything. But I still would like it to be faster, especially because the number of PRs I've been shipping causes my agents PRs to constantly hit concurrency limits. And that's really slowing me down. So I installed WarpBuild. And with a single change to my GitHub Actions files, I was able to get twice the speed at half the cost. It supports all major operating systems and architectures, including macOS and unlimited concurrency so your agents aren't waiting in line for the next available runner. And I'm only getting started with WarpBuild. So I'm excited to look at optimizing further with them with unlimited caches for artifacts and npm packages and remote container builders. And they've got an MCP server and you know how much I love MCP servers, agent ready products for the win. And goodness gracious, it's even showing me recommendations of how to save even more money by downgrading runners that don't need such a beefy box. That's sick. I'm glad I finally stopped letting my CI stop me from shipping at the speed of AI. If that sounds good to you, click the link in the description to get started with $50 in free credits on WarpBuild. So what is the skill? What's that one thing that is going to be valuable to you even as agents continue to get better? Well, let me tell you about two really important principles first, and hopefully you kind of come up with the skill idea yourself. So there's this idea from a biologist named Stuart Kauffman called the adjacent possible. This is a set of next steps that only became possible once the step before it exists. I heard about the idea of the adjacent possible from a book by Steven Johnson called Where Good Ideas Come From. Definitely recommended. I want to tell you a couple of examples to help like solidify this. So Martin Luther just didn't just have a bunch of ideas. He had a printing press and his short cheap pamphlets in plain German spread across Europe in months. About 90 years later, the same printing press made the first newspaper possible. So that printing press enabled a whole bunch of other things. Those other things could not have happened without the printing press. What's the adjacent possible? Another example, the iPhone came out in 2007 and the app store opened in 2008. So Uber started in 2009 and DoorDash came out in 2013. So none of those other things worked until people had a computer with GPS in their pocket. The adjacent possible. The iPhone made all of these things possible. So here's the pattern. Nobody in like 1450 was planning the Reformation and nobody in 2007 was planning DoorDash. But once the press existed, once the phones were in everybody's pockets, those next doors were just sitting there for somebody to walk through. Now I'm not saying it was easy, but I'm saying that it wasn't possible before and now it became possible. So you can't predict the future, but those who notice what's going on and can tie that to real life problems, they're the ones who are taking advantage of all of the new opportunities. So you can be the one to notice what just became possible. Here's one that applies more to us in 2005. The Linux kernel lost its free use of its version control system. And so Linus Torvalds created Git in about 10 days and JavaScript was also created in 10 days. There's something about that. But GitHub launched on top of that in 2008. And today more than 180 million developers use GitHub. So the adjacent possible is absolutely something that applies to us software engineers. Agents are our printing press. Doors are just flying open. And the ones that are open now are not the last ones. They continue to open. You just need to find them and walk through. So the second thing I want to talk to you about is this idea of antifragility. So this is from Nassim Taleb. And the idea is that fragile things break when something shakes them in their life or there's some sort of shock. And robust things survive that. So you can insulate yourself with different skills in the agentic world. Antifragile things actually get stronger. So like you're pushing against weights and your muscles are going to grow. So this is the way that you should be thinking about your career is making things antifragile. So every shift opens new doors and antifragile person is going to see those new doors as opportunities. So the real question is whether you're standing where you can walk through them. I've got to be honest with you. No skill is going to make you antifragile. Agents will eventually handle system design and intent eventually. They don't today. So this is what I would work on if I were doing this today. But you've got to make your career antifragile. What does that mean? It means that yes you learn the skills that there are available today because they're going to get you to the next thing and get you in a position where you're able to go to whatever next door opens up to you. But you can't just say oh well I am a systems designer so therefore I am in a good place. You have to be constantly looking at what the adjacent possible is. That's what an antifragile engineer was going to do. And how do you know what that adjacent possible thing is? Well you get really close to real problems that are felt by real people. The person closest to the pain sees that door first but not just close to the pain but also close to the opportunities. Close to the new technologies. There is so much software that still needs to be built that like we're thinking about oh my gosh I can like vibe code Adobe the entire Adobe suite. Like that's amazing but like have you gone to your dentist recently and seen the software that they are using and they're suffering through? It's awful. So there's a ton of opportunity that is now only possible because we have these agents that are doing the implementation and that is going to continue to happen as our agents continue to get better as there will be new opportunities. We got the decision models and so you've got Jev and Clef and now that's a whole new suite of adjacent possible things that we can do because now we have such a cheaper mechanism and a more reliable mechanism for making those kinds of decisions. So like the adjacent possible continues to move and new things continue to show up and besides that the antifragile methodology or that concept also involves this idea of skin in the game. So like you need to own the outcome. An agent can't be fired or sued or embarrassed and it can't vouch for any software and so there are centralized systems that will never end up in like some personal software solution that like somebody just has an agent and the agent is the software. I think that that is also the future but you're not going to have the agent be the software for the bank and the airline and regulations and all of that stuff. We're going to need a human who owns that outcome, who makes the decisions on how that software works and so yes the agents are going to be able to do more work but the scarcer thing is going to be the ones who are accountable for that work and then there's trusted relationships. So people hire the people that they know and they trust and when building things gets really cheap and easy the trust is the thing that becomes a scarce thing. So you have to be accountable, you have to have trust, you have to be aware of what is adjacent possible, you have to be close to the problems but that doesn't mean that you're constantly chasing the next shiny thing. In fact you really shouldn't chase every shiny thing, you need to pick your people and your problems very intentionally and then spend a small deliberate slice of your time experimenting with the shiny things and just stay kind of surface level on a lot of things, have a basic understanding of everything that's going on and then go deep on those things that you see a real opportunity that matches with the problem space that you're focused on. So the durable skill isn't just any one particular skill, it's not even being the kind of person who can adapt to the changes, it's being the kind of person who takes advantage of the changes and finds the opportunities that match between the problems that users are facing and the new opportunities that show up as the technology advances. So antifragile people are the ones who are standing next to the adjacent possible doors as soon as they open and the best place to stand is somewhere deep, a real domain with real problems, real people counting on you. So yes if I were starting today as a software engineer I would learn how to communicate my intent and how to understand and design systems but I wouldn't stop there. I would become the kind of person who can take advantage of changes by standing right next to the adjacent possible and understanding what is currently possible and understanding how that applies to real problems that real people who are counting on me actually are experiencing. So a deep understanding of centralized systems that you can't just have individuals building their own version of an airline or a bank or government website or you know infrastructure or whatever, you have to have centralized systems for those things. So having a really deep understanding in that area that can't just be swapped out by personal software that's where it matters and then I would develop my network and trust in me and my abilities because that is where like that trust is not something that you can just hand over to an agent and I would also show that I am the kind of person who's accountable to the stuff that I build. So this is all speculation of course like that who knows what the future is going to look like but I feel like I'm going to be a better version of myself regardless of whether we end up in Terminator land or Star Trek land. If I am an accountable person who is able to communicate my intent and I have like technical understanding of systems but I'm really deep in some domain with some specific problem that I can solve that is not the sort of thing that an agent can just replace and that I have a good understanding of what's going on in the industry and the changes that are coming and I'm taking advantage of those changes without getting distracted by shiny object syndrome. This has been Better with Kent where you and I get better together. I'd like you to like, comment, and subscribe and share this with your friends. Thank you so much for getting better with me.