This week’s AI-flavoured reading from Web Directions
Next week we have our brand new Engineering AI conference coming up. Now, clearly, there’s a lot of hype around AI as there has been for some years now. But if you’ve been following the newsletter for a while, you’ll know we have a particular interest in how AI, large language models, and machine learning are impacting the practise of software engineering.
As someone who has developed software for the better part of 50 years and professionally for the better part of four decades, I’ve seen some transformations. The emergence of the IDE, the adoption of object-oriented programming, and many more since. But I don’t think we’ve seen a transformation in the practise of software engineering like this in all those decades.
So if you’re interested and are in Australia, we’d love see you at the conference. You can also attend the live stream – if that’s something that works for you, we’d love to see you there.
This week’s newsletter features, as you might not be surprised, quite a few AI-focused posts. A number of them are focused on that question of AI and software engineering, but there are others on large language models in the browser and on the challenges of working with AI and LLMs as a designer. Something we’ll be looking at in more detail at our upcoming conference Next in Sydney in late November.
Plus, of course, plenty for you front-end engineers out there. And speaking of front-end engineering, we’ve just announced the first speakers for our upcoming Developer Summit, which takes place in Sydney in late November and on our streaming platform Conffab. And as a special bonus, if you register for Developer Summit by next Friday, September 12th, you’ll get a free streaming pass to our AI Engineering conference.
Want more like this?
Sign up to our weekly newsletter for great reading, listening, viewing, and more every week.
AI–Development, Product and Design
Making Sense of AI Job Titles
AI AI Engineering Career Development

Even when you live and breathe AI, the job titles can feel like a moving target. I can only imagine how mystifying they must be to everyone else. Because the field is actively evolving, the language we use keeps changing. Brand new titles appear overnight or, worse, one term means three different things at three different companies.
This is my best attempt at a “Cheat Sheet for AI Titles.” I’ll try to keep it updated as the jargon shifts, settles, or fades away. As always, shoot me a note with any additions, updates, thoughts, or feedback.
Source: Making Sense of AI Job Titles
Do the names we call professional roles matter? In an immediate sense, they often do. Developers who do more or less the same thing earn significantly more when they have the title engineer in their role. It’s only just two years since Shawn Wang, if not invented, then certainly popularised a particular meaning for the term AI Engineer. Here Drew Breunig tries to provide a rubric for understanding the kinds of roles that we’re starting to see emerge in the field.
Building AI Products In The Probabilistic Era
AI AI Engineering LLMs Software Engineering

Just as physics underwent a conceptual revolution when we moved past Newton’s deterministic universe, and into a strange and counterintuitive place made by wave functions, software too is undergoing its own quantum shift. We’re leaving a world where code reliably and deterministically takes certain inputs to produce specific outputs, and entering a very different one where machines now produce statistical distributions instead. Building probabilistic software is like nothing we’ve done before.
Source: Building AI Products In The Probabilistic Era
Software engineering has traditionally been a deterministic practice. Even when a system does not work, it does not work in a deterministic way. It just may be challenging to find out exactly why. Now we might think of all engineering as a deterministic practice, but in fact, most engineering traditionally hasn’t been. As Potatolicious observed recently
Most classical engineering fields deal with probabilistic system components all of the time. In fact I’d go as far as to say that inability to deal with probabilistic components is disqualifying from many engineering endeavors.
Here, Gian Segato considers what it is to develop software in a non-deterministic framework.
What is the point of libraries now that you can just generate them?
AI Native Dev Architecture Open Source Software Engineering

Instead of relying on a third-party library maintained by a developer in Nebraska, we code-generate the libraries/dependencies ourselves unless the dependency has network effects or is critical infrastructure. For example, you wouldn’t want to code-generate your crypto – trust me, I have, and the results are comical. Well, it works, but I wouldn’t trust it because I’m not a cryptographer. However, I’m sure a cryptographer with AI capabilities could generate something truly remarkable. For projects like FFmpeg, Kubernetes, React, or PyTorch, they are good examples of something with network effects. Something that I wouldn’t code-generate because it makes no sense to do so.
However, I want you to pause and consider the following: If something is common enough to require a trustworthy NPM package, then it is also well-represented in the training set, and you can generate it yourself.
Source: what is the point of libraries now that you can just generate them?
Geoff Huntley, who has been thinking deeply about the impact of large language models on the practice of software engineering, has recently published this essay where he explores the impact of large language models on open source. He speculates that our reliance on open source software, at least directly, may well diminish because of the existence of large language models which have been trained on all of them. But I wonder if there’s a very low level of abstraction, almost akin to an operating system or the APIs of the browser, where we will continue to rely on open source projects. Or will everything above the barest metal—whether that be DOM APIs, operating system APIs, and so on—become obsolete simply because large language models can address them directly without the libraries and frameworks that we as humans have come to rely on.
The Double-Edged Sustainability Sword Of AI In Web Design

AI has introduced huge efficiencies for web designers and is frequently being touted as the key to unlocking sustainable design and development. But do these gains outweigh the environmental cost of using energy-hungry AI tools? This article is an examination of that question, breaking down the sustainability pros and cons of AI use, so you can make informed decisions about the tools you use.
Source: The Double-Edged Sustainability Sword Of AI In Web Design — Smashing Magazine
When your almost teenage daughter calls out your use of generative AI as being negatively impactful on the environment, you know, even though young folks these days are terminally online, that this is an issue that needs to be addressed. While some of the reports of environmental impacts of these technologies seem not to always be particularly well grounded in actual data, it’s certainly something we should pay attention to. Here Alex Williams asks the question:
Does the environmental toll of powering AI infrastructure eclipse the efficiency gains?
Web Platform & Browser News
Designing the Built-in AI Web APIs
For the last year, I’ve been working as part of the Chrome built-in AI team on a set of APIs to bring various AI models to the web browser. As with all APIs we ship, our goal is to make these APIs compelling enough that other browsers adopt them, and they become part of the web’s standard library.
Working in such a fast-moving space brings tension with the usual process for building web APIs. When exposing other platform capabilities like USB, payments, or codecs, we can draw on years or decades of work in native platforms. But with built-in AI APIs, especially for language model-backed APIs like the prompt API, our precedent is barely two years old. Moreover, there are interesting differences between HTTP APIs and client-side APIs, and between vendor-specific APIs and those designed for a wide range of possible future implementations.
In what follows, I’ll focus mostly on the design of the prompt API, as it has the most complex API surface. But I’ll also touch on higher-level “task-based” APIs like summarizer, translator, and language detector.
Source: Designing the Built-in AI Web APIs | Domenic Denicola
Domenic Denicola here looks at the development of new APIs in the browser. Specifically, AI-related APIs in Chrome. This is an area we have a lot of interest in, as we see on-device inference as being a way of making the browser a first-class citizen when it comes to Generative AI, and of addressing some of the environmental impacts and privacy concerns people have with generative AI.
How to build an Agent, On-Device Edition
Autonomous Agents JavaScript LLMs
This post explores how to build an agent using an on-device model such as Phi-4-mini or Gemini Nano (available in Edge or Chrome browsers respectively), all behind a simple flag. This approach lowers the barrier to entry since it requires no external API or service. You can read the original, How to Build an Agent.
I urge you to follow along. The barrier is so low, it’s less than 200 lines of code, just pop open your browser dev tools console and you can follow right along as you read this!
Source: Ryan Seddon | How to build an Agent, On-Device Edition
You might think that developing an agent requires the use of APIs and large amounts of computational power. But here Ryan Seddon shows us how, on our device, in our humble browser, using JavaScript and less than 200 lines of code, we can write agentic systems ourselves. Follow along with him as he does so.
CSS & Frontend Development
You’re loading fonts wrong (and it’s crippling your performance)
CSS Fonts Performance Typography

Fonts are one of the most visible, most powerful parts of the web. They carry our brands, shape our identities, and define how every word feels. They’re the connective tissue between design, content, and experience. And yet: almost everyone gets them wrong.
Source: You’re loading fonts wrong (and it’s crippling your performance) – Jono Alderson
Embedded fonts represented a huge leap forward in web design. No longer restricted to a very limited palette of fonts available on a user’s system, or using one of various image replacement techniques which used rendered images of text in place of text itself. Now designers could access a vast array of fonts in their web content. But fonts can be very significant in size and if loaded incorrectly have a very serious impact on performance. Here Jono Alderson looks at web fonts and performance, and what you can do to improve this.
List of all CSS properties

Complete reference of CSS properties with their release dates and documentation links. Explore the evolution of web styles from the beginning to the present day.
Source: List of all CSS properties
A literal lifetime ago, or more for at least some of our readers, I in the very early days of CSS developed a CSS editor called Style Master. Back then, browser support for CSS was to be generous, very patchy. One of the really significant challenges for designers and developers was navigating the inconsistencies between Netscape Navigator 4 and Internet Explorer versions 3 and 4 and then 5 for CSS. We went and tested every feature of CSS in every major browser, and built a very, very early compatibility table for these browsers and their CSS support. It wasn’t the very first—that honour belongs to Eric Meyer, still going strong in the web and CSS world. Since then, of course, we’ve seen many projects that do something similar, in particular, Can I Use which is now widely used by the likes of MDN and elsewhere. But this is a fantastic breakdown of all the properties in CSS by when they were introduced. And it includes links to the specification and to Can I Use for details on support.
Smart Layouts (CSS Day – 06.06.2025) – Video & Slides

I spoke at CSS Day 2025 in Amsterdam about Smart Layouts.
Source: Smart Layouts (CSS Day – 06.06.2025) – Video & Slides
Okay, this one’s a little bit meta—Ahmad Shadeed gave a wonderful talk at the recent CSS Day conference on smart layouts. We happened to host the conference on Conffab, and here Ahmad has a write-up of his talk with all kinds of details, plus there’s a link to the Conffab video which will give you full access to the video without having to sign up or sign in. And why not check out the other videos from CSS Day? If you are a Conffab Premium member, you can access them now or you can purchase access to them. And they will be available to all Conffab Pro members a little later this year.
JavaScript & Programming
Safe Is What We Call Things Later
Computer Science Software Engineering

Avdi Grimm gave a talk called The Soul of Software about a decade ago and one particular thing in it has stuck with me: you can tell what type of programmer you were taught by based on which part of object-oriented programming they teach first.
Did your teacher start with inheritance? Class hierarchies, abstract base classes, the whole “a Dog is-a Mammal is-an Animal” taxonomy? Then you were taught by what we call a formalist. Someone from the Dijkstra school of thought, where programs are mathematical proofs that happen to execute. They showed you the blueprints before they showed you the building. Or did they start with polymorphism? “Look, different things can respond to the same message in their own way!” Objects having conversations, duck typing, the magic of not caring what something is as long as it knows what you’re asking? You had an informalist teacher. Someone from the Alan Kay school, where programs are living systems of communicating entities. They let you play with the clay before teaching you about kilns.
This isn’t just a teaching preference, it’s two completely different universes of what programming is.
Source: Safe Is What We Call Things Later – by Scott Werner
This is a tremendous essay that looks at the nature of programming and recognises that there are essentially two schools of programming, one associated with Dijkstra, and one associated with Alan Kay. Whether you think deeply about what it is you do as a software developer or just go with the flow, I really recommend this. It’s highly readable and thoughtful.
My Functional Programming Awakening: Patterns I’d Been Using All Along
Functional Programming JavaScript Patterns

In June 2023, I took David Beazley’s online course “The Functions” – a one-day, six-hour deep dive into functional programming concepts. While taught in Python, it opened my eyes to patterns I’d been unconsciously using in JavaScript for years. This post captures my journey through those concepts, reimagined in JavaScript.
Source: My Functional Programming Awakening: Patterns I’d Been Using All Along
A great, succinct overview of some of the key patterns of functional programming as told through JavaScript.
The joy of recursion, immutable data, and pure functions: Generating mazes with JavaScript

Let’s start by addressing the elephant in the room. Why the heck am I talking about making mazes? Normally, I try to be practical when I’m writing or speaking. I want to give people tools they can use to make their coding lives better. So, I try to discuss things like creating DOM elements and processing JSON data. Because those things are practical. I would rather not waste people’s time on things they’re not going to use.
Source: The joy of recursion, immutable data, and pure functions: Generating mazes with JavaScript
James Sinclair gave this fantastic talk at our developer summit late last year. Here is an article version for those who prefer reading to watching.
New series of blog posts: learning web development
CSS HTML JavaScript Web Development
This blog post provides an overview of my new series of blog posts called “Learning web development”. What do I need to learn for web development? In order to create a web app, you need to know about the following technologies: HTML is used for specifying the content – what we see on a web page: text, images, etc. CSS is used for specifying what the content looks like: layout, colors, etc. JavaScript makes web pages truly interactive. Servers are where the web pages are stored. They can also store data so that it lives outside web browsers, perform computations for web browsers, and more.
Source: New series of blog posts: learning web development
Axel Rauschmayer is one of the great communicators and educators of JavaScript and web development. He’s begun a new series on learning web development, and it’s one I think anyone, no matter what their level of experience, would benefit from at least perusing. I know I certainly will. So if you haven’t already, why not subscribe to his RSS feed (well, it’s atom but potato tomato) and keep up as new instalments are published?
Accessibility & Standards
Yellow, Purple, and the Myth of “Accessibility Limits Color Palettes”

So, let’s address the myth head-on. Accessibility does not limit your color palette choices. What feels limiting is often a lack of knowledge about WCAG color contrast criteria, how to build accessible color palettes in tools like Figma. And sometimes, a lack of creativity.
Time and again, on big sites and small, research demonstrates that just about the number one accessibility shortcoming is low colour contrast between text and background colour. One complaint designers often have is that this contrast requirement limits their ability to create impactful design. Here Stephanie Walter addresses what she calls this myth, helping us to create attractive, accessible colour palettes.
Email is Easy

Everyone knows what an email address is, right? Decide if each email address is valid or not. I used the email-addresses library to verify against the relevant RFCs. Enjoy.
Source: Email is Easy
In the spirit of the recent CSS quiz that we linked to not long ago, here is a quiz about email addresses. I happen to know at least a little bit about some of the stranger edge cases for email addresses. Mostly just accumulated over 40 odd years of being online. But what I didn’t know is that you can have comments in email addresses. Take this quiz, learn something along the way, and see if you can get more than the 17 out of 21 that I got. Although I must admit a few of them were pretty random guesses.
Design Systems & Development Process
Resources & Tools
MingCute Icon – Carefully Designed Icon Library

Carefully Designed Icon Library MingCute is a set of simple and exquisite open-source icon library. Whether you’re a designer or a developer, it’s perfect for use in web and mobile.
Source: MingCute Icon – Carefully Designed Icon Library
We’re big fans of the Noun Project here at Conffab. We’ve been paying a subscription for years to use any icons we want and have used them on countless projects. But MingCute is an icon set that looks like it could be very useful for a lot of app-type projects, so you might like to keep it in mind.
Great reading, every weekend.
We round up the best writing about the web and send it your way each Friday.