Interpreting the inevitable AI uprising in my career has always been fascinating to me. How we can go from debugging lines to hand waving at fleets of agents is, mind-boggling to me. My job looks nothing like it did just two years ago. We’re at the point now where we’re not even required to test our own code – instead, we design systems for autonomous agents such as Devin to test it for us. Features don’t come from me “coding it”, it comes from one prompt, or two prompts, or sometimes a lot more than two prompts.
And yet – despite all of this advancement, I still have a job. At Wispr, I’ve started to realize the “why” a lot more – why do you even need someone with a computer science degree if I’m not even writing lines of code myself? I ask myself that basically daily, and I get slapped in the face with reality almost daily, too. The answer is a lot simpler than most people think. It’s easy to exaggerate AI’s capabilities. It does a lot, now has connectors to pretty much everything you use as a human, and gets better by the day.
The reality is, it just doesn’t replace a person who actually knows the thing really well.
I’ve been doing mobile development at Wispr for the past month. I’ve never done mobile development professionally in my life. Sure, made a couple apps for fun that broke a lot, but never something that I needed people to actually rely on. I got thrown a pretty insane ask within my first week – rebuild the entire iOS app. My first week and I was already being asked to go head first into a domain I knew practically nothing about. Of course, I had “lifebuoys” in the form of other engineers if I needed help, but I was basically on my own. Of course I was confident I could do it all myself, though. I had unlimited access to Opus and Astra. If I couldn’t do this myself now, I thought, when could I ever?
Boy was I wrong. I eventually got saved by the lifebuoys after about a month (I made it quite far!). I had successfully shipped the new version of our app to 15+ iterations of internal beta, and one to external beta. I thought I had made it into the home stretch for launch.
And then, the architecture review hit.
We only have a couple mobile engineers at Wispr, but they are good. The iOS dev was Staff engineer at Meta, the Android dev founding his own startup before Wispr. I didn’t know how much I didn’t know until I walked in that room and tried telling them how my code worked. Even with theoretically infinite intelligence behind my back – methods I tested over and over again that provably worked in the real app, my architecture wasn’t there. I was missing, so much of what it meant to make a solid iOS app. My background is in web development, so naturally I’ve always had the React DOM has a safety net for everything. Mobile development, especially once the microphone gets involved, is about twice as complicated as anything I’ve ever encountered in my career. Because of this information catastrophe that resulted in over 100k lines of spaghetti code, the other mobile engineers joined me to completely knock it all down and build it up the right way. And I’m doing what I do best – staying on the interaction layer, and integrating everyone’s backend work with the pretty stuff in the UI.
Did I know how complicated this undertaking was beforehand? No, not really. Maybe I had a hunch, it was just such a cool project to get to take on so early in my tenure, I couldn’t say no. Would I have done it differently if I could go back? Every second of it. There was so much that I didn’t know, sure. But there was so much I should have learned before diving in. I’ve done so much retrospective on this, and I don’t think this project was above me at all, despite not being able to get the job done. But, I definitely should have started a bit smaller I think, especially with a new domain.
This experience has definitely taught me a lot. But one interesting thing it taught me was, engineers aren’t going anywhere. In fact, I’d argue they’re more important than ever now. Understanding how systems work is the only way we move forward technologically. LLMs can copy other people’s understanding, and sure, they can get better and better. But LLMs don’t replace intuition. The AI can’t replace the staff engineer who’s seen apps break 10+ years, or has tried to make a startup from scratch. The AI has never done that, so it doesn’t know intuitively what to do when things happen. It doesn’t know how to be proactive and catch fires before they start. I think a lot of this can and will change even in the next year, but there always will need to be people above it, even on the product side.
Sure, we’ve replaced debugging individual lines of code with spinning up 5 agents simultaneously to fix everything that pops into our brains (at least, this is how I use AI?). It’s an insanely scary change, and I think people have every right to be scared of it. It feels like a huge slap in the face, like all that time you’ve spent doing those individual lines don’t matter anymore. The truth is, they all did matter. It’s like thinking about your time in school – sure you never actually need trigonometry in the real world, but the principles of theorems, identities, and solving formulas still follow you (arguably not true for most professions tbh). You learn what it’s like to work at something, fail, get back up, and try it again. Even if it doesn’t feel the same, your brain actually doesn’t care I think. The neural pathways that build up, the connections that get made do so regardless of domain. They interconnect much more than you might think. And this, specifically this, is what makes us so valuable in the field of AI. Knowledge is a commodity, but thinking is far from it.
Leave a Reply