<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8" />
  <meta name="viewport" content="width=device-width,initial-scale=1" />
  <title>Technology Evangelist - Technology News, Articles, Blogs, and Interviews</title>
  <style>
    :root{
      --bg0:#070A12;
      --bg1:#0B1630;
      --ink:#EAF0FF;
      --muted:rgba(234,240,255,.78);
      --glass:rgba(255,255,255,.06);
      --stroke:rgba(255,255,255,.12);
      --accent:#7CF7D4;
      --accent2:#B889FF;
      --accent3:#FFB86B;
      --shadow: 0 24px 60px rgba(0,0,0,.45);
    }

    *{ box-sizing:border-box; }
    html,body{ height:100%; }
    body{
      margin:0;
      font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, "Noto Sans", "Liberation Sans", sans-serif;
      color:var(--ink);
      background:
        radial-gradient(900px 600px at 10% 15%, rgba(124,247,212,.16), transparent 55%),
        radial-gradient(800px 520px at 85% 18%, rgba(184,137,255,.18), transparent 58%),
        radial-gradient(900px 700px at 55% 95%, rgba(255,184,107,.12), transparent 55%),
        linear-gradient(180deg, var(--bg0), var(--bg1));
      overflow-x:hidden;
    }

    a {   color: inherit; }

    .frame{
      min-height:100%;
      padding:56px 18px 72px;
      display:flex;
      align-items:center;
      justify-content:center;
    }

    .shell{
      width:min(1040px, 100%);
      position:relative;
    }

    .noise{
      position:absolute;
      inset:-40px;
      pointer-events:none;
      opacity:.08;
      background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");
      mix-blend-mode:overlay;
    }

    .card{
      position:relative;
      background:linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.03));
      border:1px solid var(--stroke);
      border-radius:22px;
      padding:34px 26px 28px;
      box-shadow:var(--shadow);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
    }

    .topline{
      display:flex;
      gap:10px;
      align-items:center;
      margin-bottom:12px;
      color:var(--muted);
      font-size:12.5px;
      letter-spacing:.18em;
      text-transform:uppercase;
      user-select:none;
    }
    .dot{
      width:10px; height:10px; border-radius:50%;
      background:conic-gradient(from 180deg, var(--accent), var(--accent2), var(--accent3), var(--accent));
      box-shadow:0 0 0 3px rgba(255,255,255,.06);
    }

    h1{
      margin:0 0 16px 0;
      font-size: clamp(28px, 4.2vw, 46px);
      line-height:1.05;
      letter-spacing:-0.02em;
      text-shadow: 0 10px 40px rgba(0,0,0,.35);
    }

    .rail{
      position:absolute;
      inset:auto 22px 18px 22px;
      height:2px;
      background:linear-gradient(90deg, transparent, rgba(124,247,212,.55), rgba(184,137,255,.55), rgba(255,184,107,.5), transparent);
      opacity:.55;
      filter:blur(.2px);
    }

    .corner{
      position:absolute;
      width:92px;
      height:92px;
      border-radius:18px;
      border:1px solid rgba(255,255,255,.14);
      background:linear-gradient(145deg, rgba(124,247,212,.10), rgba(184,137,255,.06));
      box-shadow: 0 14px 40px rgba(0,0,0,.25);
      transform: rotate(6deg);
      top:-18px;
      right:-16px;
    }
    .corner::after{
      content:"";
      position:absolute;
      inset:10px;
      border-radius:14px;
      border:1px dashed rgba(255,255,255,.16);
      opacity:.75;
    }

    p{
      margin:0 0 14px 0;
      color:var(--muted);
      font-size:16px;
      line-height:1.75;
    }
    p:last-of-type{ margin-bottom:0; }

    @media (min-width: 840px){
      .card{ padding:40px 44px 34px; }
      p{ font-size:16.5px; }
    }
  </style>
</head>
<body>
  <div class="frame">
    <main class="shell">
      <div class="noise" aria-hidden="true"></div>
      <section class="card">
        <div class="corner" aria-hidden="true"></div>
        <div class="topline"><span class="dot" aria-hidden="true"></span><span>Technology Evangelist</span><span>News · Articles · Blogs · Interviews</span></div>
        <h1>Technology Evangelist</h1>

        <p>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.</p>
        <p>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.</p>
        <p>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)</p>
        <p>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.</p>
        <p>Security is also… yeah we gotta talk about the security landmines. AI models will write perfectly working code with hardcoded passwords or SQL injection flaws if you’re not super careful. They don’t “natively” have a sense of security best practices, they just pattern-match them from what’s in their training data. And a lot of that training data is random GitHub repos with shitty insecure code, so it’ll be what it is. You HAVE to be diligent about reviewing everything with a security mindset, AI will not do that on its own.</p>
        <p>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.</p>
        <p>How one measures actual “impact” is so damn fuzzy. How do you know you’re doing a good job? Downloads of an SDK? Numbers of attendees at an event? Stars on GitHub repos? Tweets? Developer engagement in communities? Companies can track that sort of thing but it’s a herculean task to cleanly correlate “that evangelist did an excellent talk at that conference” and “signed up those three enterprise accounts.” It’s a tension that is never far below the surface. Management wants metrics, they want return on investment. They want numbers and email blasts and slides saved and webinars uploaded to YouTube. The evangelists are out there spinning their wheels, trying to cultivate relationships and build community. There’s value in both and it’s frustrating for everybody.</p>
        <p>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.</p>
        <p>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.</p>

        <div class="rail" aria-hidden="true"></div>
      </section>
    </main>
  </div>
</body>
</html>
