FullStack Bulletin logo

FullStack Bulletin

Archives
Subscribe
December 15, 2025

📩 AI Can’t Do Your Job — FullStack Bulletin #449

Exploring AI's role in coding, pondering barcodes as art, and combating React vulnerabilities!

Ciao,

Today we are leaning quite a bit into AI. Not the flashy demos or the hype, but the uncomfortable question behind it. What does AI (and especially GenAI) actually means for us as developers, for our careers, and for the way we build software together?

Part of this focus is personal. I recently passed the AWS Solutions Architect Professional certification and, in a moment of optimism, decided to start studying for the GenAI Professional one. So if this issue feels a little AI flavored, it might not be entirely random. Wish me luck while you read!

At the same time, this is still a full stack newsletter. You will find plenty of non AI goodies too. From patterns for modern JavaScript apps, to performance deep dives, to two brand new React Server Components vulnerabilities that are different from the one we talked about just last week. Yes, there is more patching to do.

My hope is that this issue helps you feel a bit less afraid of AI and a bit more intentional about the kind of developer you want to become in this new era. Now, grab a coffee, sharpen your curiosity, and enjoy this week’s journey.

Oh, before I forget... Last week I had a couple of awesome chats with some of you, just because they decided to hit reply and get in touch more personally. I love this stuff, so do not be shy and reach out. If you do not know what to say, just tell me about your most recent project and what you learned. I love that kind of story.

Explore the edges of your comfort zone!
— Luciano


"The computer revolution is a revolution in the way we think and in the way we express what we think"
—Hal Abelson, Computer Scientist


Baroque-style illustration of a humanoid robot handing a tablet full of code to a confident software engineer flexing in a dim office, with an “EMPLOYEE OF THE MONTH” poster of the engineer in the background—suggesting AI can generate code, but the engineer remains in charge.

AI Can’t Do Your Job — Did calculators replace accountants? No. But you will not find a serious accountant today who refuses to use a calculator. Well, these days it is mostly spreadsheets and dedicated software, but you get the point. This piece takes that same idea and applies it to our current AI moment, where coding tools can write a lot of our code and at the same time spark a very real fear that they are about to take our jobs. But what is our job really? The author argues that programming is just one task inside the broader role of software engineer. The real work is everything around the code, from turning fuzzy business problems into clear requirements, to making tradeoffs, pushing back when needed, and taking responsibility for what ships and what does not. AI can speed up the typing and even help explore solutions. It cannot sit in the awkward meeting, balance constraints, and decide what actually makes sense to build. I mostly agree with that hypothesis, so I will let the rest of the essay walk you through why AI can write your code, yet still cannot do your job. Read Article

Werner Vogels (AWS CTO) Delivers His Final Keynote — I was lucky enough to catch Werner Vogels last two keynotes live in Las Vegas in 2023 and 2024. This year I missed re:Invent in person, so I was very ready to binge the recordings from home, starting with Werner’s new talk, which also happens to be his final re:Invent keynote... yes, there's even a mic drop at the end! In classic Werner fashion, it opens with a slightly unhinged mini movie intro. Think time travel, a very familiar car, and a tour through eras of computing that land us right back in the middle of today’s AI panic. I wanted to feature this talk because it pairs beautifully with the previous essay about AI writing your code but not doing your job. Werner takes that same anxiety and pokes at the idea that now everyone can be a developer. What actually changes when AI tools lower the bar to shipping software, and what still belongs to people who think in systems, make tradeoffs, and take ownership for what they build. I have lots of respect for Werner, but you should absolutely take it with a pinch of salt, since this is still coming from AWS, which has a huge interest in selling you more AI. But even with that in mind, there are a lot of thoughtful and provocative ideas in here about what it means to be a developer in this new era. Watch Video

The Kernel (Newspaper) — If Werner’s keynote was the movie, The Kernel is the in universe newspaper that drops as you walk out of the cinema. It literally launched at the same re Invent keynote, and from the photos and writeups it looks like they even put printed copies on every seat. A proper tech paper by builders, for builders, spun up just for this moment. The lead story is Werner’s essay on the Renaissance developer, which ties directly back to that keynote idea. In short, AI keeps lowering the barrier to writing code, but that only makes human judgment more important. The Renaissance developer is a modern polymath who thinks in systems, understands business and people, communicates clearly with both humans and machines, and takes real ownership of what ships, while using AI as one more powerful tool rather than a replacement for their craft. I like this framing a lot, but I also read it with my skeptical hat on. It is a very optimistic story that does not fully wrestle with the messy bits, like what happens to junior roles if AI eats all the simple tasks, how safe it is to rely on oceans of AI generated code, or how companies might use this productivity boost to cut headcount instead of uplifting everyone into architect land. So I recommend reading it both as inspiration for where we could go and as a prompt to think hard about the economic and human tradeoffs we will have to navigate to get there. Read Article

Patterns.dev — I might have shared this one before. Honestly I do not care. It is that good and I am saying this as someone who loves JavaScript, Node.js and design patterns way more than is probably healthy. Patterns[dot]dev is a free online book and reference for modern web app patterns. It is split into three big sections: Vanilla JavaScript patterns, React patterns and Vue patterns. You get classic patterns like Singleton, Factory and Observer plus modern ideas around rendering and performance, all explained in a very practical way and grounded in how we actually build apps today. It is created by two of my favorite educators, Lydia Hallie and Addy Osmani, brilliant content creators who have inspired me not just to create content but to lift my content game entirely. The whole thing is available to read online, and you can also download it as a four hundred plus page ebook for free in multiple formats if you prefer to binge it on your reader of choice. Read Article

Denial of Service and Source Code Exposure in React Server Components — Last week we talked about a pretty terrifying React Server Components vulnerability that could hit you if you use Next.js (even if you never touch server components directly). You updated, you breathed out, you maybe promised yourself to look into your threat model tomorrow. Turns out the horror story has a sequel... actually two! The React team just disclosed two more RSC issues, a high severity denial of service and a medium severity source code exposure, affecting the same family of react server dom packages and even some of the versions that were supposed to be fixed by the first patch. In other words, if your app speaks the RSC protocol through a framework like Next, you probably need to update again. This official post by the React team walks through what the new CVEs actually are, which versions are vulnerable, and which releases you should upgrade to right now so your React app does not become an easy target. Read Article

The Barcode as a design object — Perhaps this one is a bit off topic, but I have a soft spot for barcodes and QR codes, so I could not resist sharing it. Just to give you a sense of the obsession, I once tried to build a startup around the idea of certified QR codes, basically codes with a digital signature. I built a functional prototype, but the idea went nowhere at the time. Almost no one knew what QR codes were back then, and the average mobile phone camera was so bad that scanning them barely worked. Years later, that exact concept showed up at scale in digital COVID certificates all around the world, and of course I went deep on how those worked, deconstructed them using Rust and even gave a few talks about the whole learning process. But I digress... This piece is not really about the engineering magic of cramming data into printed patterns. It is a much more artistic take. It asks a simple question. Can we make 2D barcodes and QR codes beautiful? Turns out the answer is yes, and the article walks through some really playful, clever, and surprisingly elegant examples. If you secretly enjoy this stuff as much as I do, it is a very fun scroll. Read Article

How fast can browsers process base64 data? — If you care about performance even a little, this one is nerd candy. Base64 quietly sits behind things like data URIs, blobs, WebSockets that sneak binary through text channels, and all sorts of browser tricks. The author looks at the new Uint8Array.toBase64 and Uint8Array.fromBase64 functions and asks a simple question. How fast can browsers actually chew through this stuff in practice? Short answer. Faster than your disk and, in many cases, faster than your network. On an Apple M4 laptop, Chrome, Edge and Brave encode at around nineteen gigabytes per second, Safari is close behind at seventeen, and Safari then jumps ahead on decode with about double the speed of the Chromium crowd. Firefox and Servo are much slower for now, although both engines already have work in progress to close the gap. It is a nice reminder that Base64 in the browser is almost never your bottleneck, plus you get a handy benchmark page you can run in your own setup to see how your favorite browser stacks up. Read Article


📕 Book of the week!

Multithreaded JavaScript - Concurrency Beyond the Event Loop, by Thomas Hunter II, and Bryan English

Multithreaded JavaScript -  Concurrency Beyond the Event Loop

The nature of JavaScript is to be single threaded. This is reflected not only in libraries and applications, but also in online forum posts, books, and online documentation. Thanks to recent advancements in the platform—such as with web workers in the browser, worker_threads in Node.js, and the Atomics and SharedArrayBuffer objects—JavaScript engineers are able to build multi-threaded applications. These features will go down as being the biggest paradigm shift for the world's most popular programming language. Multithreaded JavaScript explores the various features that JavaScript runtimes have at their disposal for implementing multithreaded programming, using a spectrum of API reference material and high level programming patterns.

  • Learn what multithreaded programming is and how you can benefit from it
  • Understand the differences between a dedicated worker, a shared worker, and a service worker
  • Identify when and when not to use threads in an application
  • Orchestrate communication between threads by leveraging the Atomics object
  • Understand both the gains and pitfalls of using shared memory
  • Benchmark performance to learn when you'll benefit from multiple threads

Buy on Amazon.com - Buy on Amazon.co.uk


More content to expand your horizons! 🌅

  • Generating Utility Classes from Design Tokens using Style Dictionary
  • On Idempotency Keys
  • CSS Wrapped 2025
  • Controlling dialogs and popovers with the Invoker Commands API
  • Double Click: What Does It Mean To Be A Designer In The Age Of AI?
  • Did you know your browser has two accessibility trees?
  • Next.js Image Optimization
  • How We're Protecting Our Newsroom from npm Supply Chain Attacks
  • How good engineers write bad code at big companies

Journey's end reached! 🏁

Journey's end! Whether you're buzzing with excitement or have constructive feedback, reply and keep the conversation going! 🗣️

Don't miss what's next. Subscribe to FullStack Bulletin:

Add a comment:

Share this email:
Share on Twitter Share on LinkedIn Share on Hacker News Share on Reddit Share on Mastodon Share on Bluesky
https://fullsta...
Powered by Buttondown, the easiest way to start and grow your newsletter.