on the future of software
It’s been approximately six months since I’ve spent an entire day just editing software in IDE. Six months without highlighting text on a screen and asking an LLM, or rather six months before attaching a snippet of code as context for an LLM in a chat panel to modify. Six months from having a terminal window open and iterating back and forth as an Anthropic or Composer or Codecs iterates quickly on the code in front of me. Six months since I’ve done anything other than look at a Markdown file detailing exactly the changes that are going to happen to me as I create them. The future of software has been changing so rapidly that I have yet to fully grasp or think about what will happen.
I recently read in a Dario Amadei post (or rather I watched a YouTube interview between Dario and some NYT guy). One of the interesting things about how LLMs and AI are progressing is the role that autonomy plays in creating software. I think I’ve seen very quickly how things have started to shift: we’ve moved from prompting to context engineering to now harness engineering. The layers of abstraction that we’ve peeled back have gone from interacting with the bare metal all the way to a point where it matters is creating an environment for the LLM to execute as amazingly as it can. With each of these we’re starting to see what it means to be… with each of these we lose some amount of autonomy with the exchange having so much more creativity and ability to influence. It’s interesting because it probably feels somewhat like what a manager feels like where your day-to-day is less about directly influencing bits but the bits that you do choose to influence now have so much more leverage and so a lot of the time that you spend is instead of influencing bits they’re more to gather information on what are the correct bits to influence.
I had a conversation with a friend of mine from college, two years younger than me. I think I have a sort of propensity to be seen as the AI guy among my friends from college. One of the things that she talked about are how a lot of her mentors are talking about how it’s really important to start using these AI tools now to get into a different mindset, to start leaning on these tools. I guess I agree with this on some level and on another level I think while the tools are important, it feels like it’s not the most important actual thing to do here. I think more than interacting with the tools or knowing how to use them, the thing to unlock is to start reasoning with what it feels like for ideas to matter a lot and for execution to achieve in a world where previously execution was very expensive and ideas were less important. In a world where execution is cheap, any idea can be executed. Idea selection becomes kind of hard because it is usually through execution that you get to be better ideas. I think junior engineers are facing this a lot in trying to learn new skills. I mean I am myself a junior engineer 2.5 years out of college. First year I kind of did jackal and I think at this point I’ve written far more code via LLM than I have in any other method and I am far from knowing how to create a good system. I care about the art of engineering, I care about the art of clean code, I care about making things with high taste and beauty. I care about building good products and in a weird way I do think that while I think that there is a way to act on using this technology that does actually improve my ability to develop senses for these things but it requires a decent bit more amount of intentionality, especially in a world where it requires intentionality. It requires thinking actively because the way that these tools like I think by taking away autonomy you can do one of two things: you can automate what you are currently doing or you can figure out ways to amplify yourself. Right now sometimes it feels like I am more automating than amplifying. I think a part of the reason that I am even creating this blog post right now is to put myself in a more reflective mood where I think about how I can do more to augment myself.
Software is definitely in a strange place. I’m pretty lucky in that I get to work at a company that is actively shaping what the future of software looks like. I’m writing this blog post in the product that the company I’m a part of now creates and so I want to realize in writing this what the future of software can be. Software is an amazing and beautiful medium because it can create new realities that so many people can experience instantaneously, almost in a way that very few other creative mediums can. It can be used to literally build things that underpin massive swaths of infrastructure and how society works. Right now we are in a moment where the creation of software has rapidly increased. We’re at a point where it can be rapidly increased and as an individual I want to be at the cutting edge of building new software. I think that means experimenting with it as much as I can to make sure that in a time where autonomy over the creation of software is being wrestled with, I am in the loop for as long as I can be