Technology EvangelistNews · Articles · Blogs · Interviews

Technology Evangelist

AI coding assistants have become basically omnipresent at this point and it’s honestly just crazy to think how quickly it all happened. I remember when Copilot first came out and was met with this weird mix of “is this magic” and “ugh this is so buggy”. And now there’s Claude doing full re-factors, ChatGPT giving you a complete project from a couple sentences description, and a dozen other smaller tools which honestly sometimes do a better job at small things than the big generative models. But here’s the thing, the tools… well… aren’t going to be replacing developers any time soon (I’m dropping the hot take now) but they are DEFINITELY shifting the types of work that we do.

One thing I have noticed is that these tools are REALLY good for the tedious, mundane, repetitive stuff. Writing some boilerplate code? Probably done in 3 seconds. Convert some legacy code from framework A to framework B? AI will at least give you a passable base that can be refactored, rather than you writing everything by hand from scratch. Autocomplete features are also quite addicting tbh, it’s to the point where once you get used to it you never want to go back to just writing everything yourself without suggestions. Your brain just offloads the “wait what’s the syntax for this” and you can focus on the more complicated logic and architecture decisions.

The downside is… the code produced can be meh? Like it works but isn’t good. It’ll do what you asked but often with missing edge cases or will produce something correct but an older dev will cry during code review (I myself have committed at least one of these heinous things that’s technically correct but no one should write). I’ve seen AI functions with massive responsibilities or doing too many things all in one go, or writing a correct answer but in an unnecessarily slow manner. It’s using pattern-matching to generate answers but it does not actually understand performance so it can do really stupid things. So of course you need to review everything super duper carefully (learned that the hard way after shipping a bug that was literally right there in the suggested code by AI)

Truth is, this is what an actual day (for the most part, but I’ve spoken to dozens and they’re all similar) looks like: Mornings tend to be writing of some sort—docs, blogs, sample code, Twitter threads. Afternoons are sometimes internal meetings where you’re either arguing with product teams to get a bug fixed that will be embarrassing if you can’t demonstrate the feature at that conference event next week, or convincing product teams that yes, this feature that everyone’s asking for is important. (Internal arguments are very, very common for this job, FYI.) Evenings is when you “engage the community,” because developers are night owls, and they will be most active on Discord or Slack or whatever platform your community is hanging out on, then it’s evenings. Weekends? Blurred into work all the time, because there’s a hackathon or conference or something. This is why the burnout rate is through the roof.

Authenticity is one of those perennial questions with this work. You are an employee of Company X, on the payroll to evangelize their products. Everyone knows that. But at the same time, you are supposed to be a trusted voice within the community to developers. Give it to them straight. Be “real” with them. When you work at some multi-national Fortune 500 with public stock, how does that work? The good evangelists navigate that tightrope by being actually critical when the moment demands it, even about the tech and products of their own company. They’ll tweet “yeah the new API version is rough in places, here’s the workaround I’m using,” not hawking their employer’s wares without a whiff of a critique. The bad evangelists are the literal walking billboards. You can smell their breath from across the conference hall.

You also have to have a social media presence because let’s face it, that’s the age we live in. For an evangelist, that also becomes a kind of performance. Be the funny one. Be the deep-technical-one. Be the controversial hot-take machine. It doesn’t matter what you pick, you are on stage all the time. Streaming code on Twitch, making TikTok videos about debugging (yes this is real), arguing with randoms on Twitter about whether this new JavaScript framework really does solve a problem that developers have or whether it’s entirely arbitrary. It’s exhausting to watch for those of us that do not enjoy being micro-celebrities in tiny little circles of the tech community. And I don’t mean to say there are those of us in the mix and then you. There are so many of us doing this, watching each other to see who steps over the line or, worse, does not. Some of you relish this. You are made for it! You breathe the stuff. You have built brands from it. Good for you. But you can see the others with your eyes closed, forced to be “on” all the time, slowly dying inside. You can see it with your eyes closed.

Code reviews and team dynamics are also changing in some very subtle but real ways as well and I don’t think this has really been talked about enough. For one, code reviews are now ALSO checking what a human accepted from an AI, which means you’re not just reviewing your teammates code but the AI’s as well? The bar feels different? You start to get this “oh the AI also suggested it” fallacy creep in as well. Onboarding people is weird now because you have to teach them not just development but how to properly use these AI tools, which is kind of… a skillset in its own right?

Productivity is increased though and I don’t think anyone can deny that. I am getting features released probably 40% faster than I was two years ago, in part thanks to these AI assistants. Tasks like writing tests (I hate writing tests more than almost anything) or documentation or database migrations or whatever are necessary but highly tedious. AI doesn’t get bored or tired so it’ll happily churn out 50 unit tests while you work on the actually interesting parts. That’s valuable.

As for the future, I think it’s pretty clear that we are not going back to a world where NOT using AI coding tools is even a thing. It’s just like using Stack Overflow is these days. The tools will only get better at context and start to avoid common pitfalls and eventually maybe they will actually be good at architecture level decisions and not just code generation. But we’re not there yet and tbh I’m not sure we want to be? There’s something very human about the skill of software development that I’m not sure we should be able to fully automate. But it is what it is for now. AI coding assistants are just another tool in the developer’s toolkit. Powerful. Useful. Frustrating at times. Not going anywhere.