Historical Tech Tree

This is a repost promoting content originally published elsewhere. See more things Dan's reposted.

Screenshot from HistoricalTechTree.com, highlighting how the invention of electromagnetic induction in 1831 led to the development of the dynamo and alternating current, amidst a collection of other 19th-century technological developments and a mess of connecting lines.

This wonderful project, released six weeks ago, attempts the impossible challenge of building a Civilization-style tech tree but chronicling the development and interplay of all of the actual technological innovations humanity has ever made. Even in its inevitably-incomplete state, it’s inspiring and informative. Or, as Open Culture put it:

Our civilization has made its way from stone tools to robotaxis, mRNA vaccines, and LLM chatbots; we’d all be better able to inhabit it with even a slightly clearer idea of how it did so.

The Last Post for the Nightline Association. How does that make you feel?

This is a repost promoting content originally published elsewhere. See more things Dan's reposted.

Fellow geek, Nightline veteran, and general volunteering hero James Buller wrote a wonderful retrospective on his experience with Surrey Nightline, National Nightline, and the Nightline Association over most of the last three decades:

  • In 1997 I left a note in the Surrey Nightline pigeon-hole to volunteer and eventually become the Coordinator
  • In 1998 I emailed the leaders of National Nightline with a plea for support.
  • In 2000 I launched the first National Nightline website and email list
  • In 2003 I added the bulletin board online forum
  • In 2006 I led governance reform and the registration project that led to the Nightline Association charity
  • In 2007 I set up Google Apps for the recently established nightline.ac.uk domain
  • In 2008 We sent news via an email broadcast system for the first time
  • In 2025 All the user accounts and the charity were shut down.

So here’s my last post on volunteering with the confidential mental health helplines run ‘by students for students’ at universities, then the overarching association body.

I began volunteering with Aberystwyth Nightline in 1999, and I remember the 2000 launch of the National Nightline mailing list and website. It felt like a moment of coalescence and unity. We Nightline volunteers at the turn of the millennium were young, and tech-savvy, and in that window between the gradual decline of Usenet and the 2004-onwards explosion in centralised social networking, mailing lists and forums were The Hotness.

Nightlines (and Nightliners) disagreed with one another on almost everything, but the Internet-based connectivity that James put into place for National Nightline was enormously impactful. It made Nightline feel bigger than it had been before: it was an accessible and persistent reminder that you were part of a wider movement. It facilitated year-round discussions that might previously have been seen only at annual conferences. It brought communities together.

(Individuals too: when my friends Kit and Fiona met and got together back in 2003 (and, later, married), it probably wouldn’t have happened without the National Nightline forum.)

Screenshot of website 'NNL Bulletin Board', powered by PHPbb, featuring a variety of Nightline-related topics including Three Rings and a mention that registered user 'AvaPoet' (an alias of Dan Q's at the time) has posted today, along with 'Fiona M' and 'Kit' (mentioned elsewhere in this article).
Gosh, I spent an inordinate amount of time on this site, back in the day.

But while I praise James’ work in community-building and technology provision, his experience with Nightlines doesn’t stop there: he was an important force in the establishment of the Nightline Association, the registered charity that took over National Nightline’s work and promised to advance it even further with moves towards accreditation and representation.

As his story continues, James talks about one of his final roles for the Association: spreading the word about the party to “see it off”. Sadly, the Nightline Association folded last month, leaving a gap that today’s Nightlines, I fear, will struggle to fill, but this was at least the excuse for one last get-together (actually, three, but owing to schedule conflicts I was only able to travel up to the one in Manchester):

I had done a lot of the leg work to track down and invite former volunteers to the farewell celebrations. I’d gotten a real buzz from it, which despite a lot of other volunteering I’ve not felt since I was immersed in the Nightline world in the 2000’s. I felt all warm and fuzzy with nostalgia for the culture, comradeship and perhaps dolefully sense of youth too!

I was delighted that so many people answered the call (should have expected nothing less of great Nightliners!). Their reminiscing felt like a wave of love for the movement we’d all been a part of and had consumed such a huge part of our lives for so long. It clearly left an indelible mark on us all and has positively affected so many others through us.

Many people played their part in the story of the Nightline Association.

12 Caucasian people of a mix of ages and genders posing as a group in front of a Nightline Association banner. Dan is one of them.
I got to hang out with some current and former Nightline volunteers in Manchester, the smallest of the ‘Goodbye NLA’ parties.

My part in the story has mostly involved Three Rings (which this year adopted some of the Association’s tech infrastructure to ensure that it survives the charity’s unfortunate demise). But James, I’ve long felt, undermines his own staggering impact.

Volunteering in charity technical work is a force multiplier: instead of working on the front lines, you get to facilitate many times your individual impact for the people who do! Volunteering with Three Rings for the last 23 years has helped me experience that, and James’ experience of this kind of volunteering goes even further than mine. And yet he feels his impact most-strongly in a close and interpersonal story that’s humbling and beautiful:

I was recently asked by a researcher, ‘What is the best thing you have done as a volunteer in terms of impact?’. I was proud to reply that I’d been told someone had not killed themselves because of a call with me at Surrey Nightline.

I’d recommend going and reading the full post by James, right up to the final inspiring words.

(Incidentally: if you’re looking for a volunteering opportunity that continues to help Nightlines, in the absence of the Nightline Association, Three Rings can make use of you…)

× ×

On Being

This is a repost promoting content originally published elsewhere. See more things Dan's reposted.

Step into your head
that’s where planning happens

Step out of your head
and into your senses
and into the world
that’s where life happens

This week, my friend Boro shared a poem that he’d written. It’s simple, and energising, and insightful, and I really enjoyed it. Go read the whole thing; it’s not long.

Whether we’re riding high or low, there’s wisdom in being gentle with oneself. The rhythm of the piece feels a bit like breathing, to me, and from that is reminiscent of a breathing exercise I was shown, once, in which the inhalations were accompanied by a focus on self-awareness and the exhalations with one on situational awareness.

Boro’s poem makes me wonder if he’s come across the same exercise: that through my appreciation of his post I’m sharing in his experience of the same exercise, in another time and place.

Or maybe it’s just a nice bit of writing.

If this man isn’t hired immediately, it’s a huge loss

This is a repost promoting content originally published elsewhere. See more things Dan's reposted.

When I posted to LinkedIn about my recent redundancy, I saw a tidal wave of reposts and well-wishes. But there’s one that I’ve come back to whenever I need a pick-me-up before I, y’know, trawl the job boards: a comment-repost by my big-hearted, sharp-minded former co-worker Kyle. I’m posting it here because I want to keep a copy forever1:

Bad news: I’m among the sixth of Automattic that’s been laid-off this week.

Good news: I’m #OpenToWork, and excited about the opportunity to bring my unique skillset to a new role. Could I be the Senior Software Engineer, Full-Stack Web Developer, or Technical Lead that you’re looking for?

Here’s what makes me special:

🕸️ 26+ years experience of backend and frontend development, with a focus on standards, accessibility, performance, security, and the open Web
🌎 20+ years experience of working in and leading remote/distributed teams in a diversity of sectors
👨‍💻 Professional experience of many of the technologies you’ve heard of (PHP, Ruby, Java, Perl, SQL, Go, DevOps, JS, jamstacks, headless…), and probably some you haven’t…
👨‍🎓 Degrees and other qualifications spanning computer science and software engineering, psychotherapy, ethical hacking, and digital forensics (I don’t believe there’s a career in the world that makes use of all of these, but if you know differently, tell me!)

If this man isn’t hired immediately, it’s a huge loss. Dan is easily one of the most talented engineers I’ve ever met. His skills are endless, his personal culture is delightful, and I don’t think I went a day working with him where I didn’t learn something. Let him build you beautiful things. I dare you.

Incidentally, Kyle’s looking for a new role too. If you’re in need of a WordPress/PHP/React pro with a focus on delivering the MVP fast and keeping the customer’s needs front-and-centre, you should look him up. He’s based in Cape Town but he’s a remote/distributed veteran that you could slot into your Web team anywhere.

Footnotes

1 My blog was already 5 years old when LinkedIn was founded: my general thinking is that I can’t trust any free service younger than my blog to retain information for perpetuity longer than my blog, which is why so much of my content from around the web gets PESOS‘d or POSSE‘d here.

The Who Cares Era

This is a repost promoting content originally published elsewhere. See more things Dan's reposted.

It’s so emblematic of the moment we’re in, the Who Cares Era, where completely disposable things are shoddily produced for people to mostly ignore.

In the Who Cares Era, the most radical thing you can do is care.

In a moment where machines churn out mediocrity, make something yourself. Make it imperfect. Make it rough. Just make it.

At a time where the government’s uncaring boot is pressing down on all of our necks, the best way to fight back is to care. Care loudly. Tell others. Get going.

Smart words, well-written by Dan Sinker.

I like the fact that he correctly identifies that the “Who Cares Era” – illustrated by the bulk creation of low-effort, low-quality media, for a disheartened audience that no longer has a reason to give a damn – isn’t about AI.

I mean… AI’s certainly not helping! AI slop dominates social media (especially in right-wing spaces, for retrospectively-obvious reasons) and bleeds out into the mainstream. LLM-generated content, lacking even the slightest human input, is becoming painfully ubiquitous. It’s pretty sad out there.

But AI’s doing some useful things too: it’s not without its value, even just in popular use.

So while the “Who Cares Era” might be exemplified by the proliferation of AI slop… it’s much bigger than that. It’s a sociological change, tied perhaps to a growing dissatisfaction with our governments and the increasing feeling of powerlessness to change the unjust social systems we’re locked into?

I don’t know how to fix it. I don’t even know if it’s fixable. But I agree with Dan’s argument that a great starting point is to care.

And I, for one, am going to continue to create things I care about, giving them the time and attention they deserve. And maybe if enough of us can do that, just that, then maybe that’ll make the difference.

What If the EU Never Existed?

This is a repost promoting content originally published elsewhere. See more things Dan's reposted.

Video framegrab showing an alternate history map of Europe in mid-to-late 20th century. West Germany has formed an economic union with several neighbouring states, while France and Italy have elected Communist governments and are within the Soviet sphere of influence.

This video, which I saw on Nebula but which is also available on YouTube, explores a hypothetical alternate history in which the Schuman Plan/European Coal & Steel Community never happened, and the knock-on effects lead to no EU, a more fragmented Europe, and an ultimately more-fractured and more-complicated Europe of the late 20th/early 21st century.

Obviously it’s highly-speculative and you could easily come up with your own alternative alternative history! But the Twilight Struggle player in me as well as the alternate history lover (and, of course, European Union fan) especially loves the way this story is told.

It’s worth remembering that for the last half-millenium or more, the default state of Europe has been to be fighting one another: if not outright war then at least agressive economic and political rivals. Post-WWII gave Europe perhaps its longest ever period of relative peace, and that’s great enough that all of the other benefits of a harmonised and cooperative union are just icing on the cake.

EU Made Simple is a fantastic channel in general, and I’d recommend you give it a look. It ties news and history in with its creators outlook, but it’s always clear which bits are opinion and it’s delightfully bitesized. For Europeans-in-exile in this post-Brexit age, it’s hopeful and happy, and I like it.

Happy Europe Day, one and all.

LayoffBot – eliminating the human in human resources

This is a repost promoting content originally published elsewhere. See more things Dan's reposted.

Illustration of the 'LayoffBot process': 1. Schedules casual 1:1. Our next gen AI schedules the dreaded "quick chat" for Friday at 4:55 PM, ensuring a ruined weekend. 2. Conducts Layoff. Our AI delivers the news with the emotional depth of a toaster while recording reactions for management entertainment. 3. Completes Paperwork. Instantly cuts off all access, calculates the minimum legal severance, and sends a pre-written reference that says 'they worked here'.

It was a bit… gallows humour… for a friend to share this website with me, but it’s pretty funny.

And also: a robot that “schedules a chat” to eject you from your job and then “delivers the news with the emotional depth of a toaster” might still have been preferable to an after-hours email to my personal address to let me know that I’d just had my last day! Maybe I’m old-fashioned, but there’s some news that email isn’t the medium for, right?

Reposts of spicy takes on Automattic leadership and silly jokes about redundancy will cease soon and normal bloggy content will resume, I’m sure.

The call is coming from inside the house

This is a repost promoting content originally published elsewhere. See more things Dan's reposted.

A master class in how not to lead through crisis is continuing at Automattic and it’s rough to watch.

After Matt Mullenweg sets off a firestorm by going “scorched earth” on WP Engine in September 2024 (if you don’t know the story) there’s been one dodgy decision after another but through it all Mullenweg and his executive leadership team continue to blame the lack of success and growth on staffers.

  • October 2024: Make two “alignment offers” to root out anyone willing to speak sense to the madness of all the wpdrama. 159 walk in the first and 25-30 in the second. Allege that the people who chose to leave were low performers and now that everyone left is aligned things should be better.
  • January 10: Matt Mullenweg states “There are no layoffs plans at Automattic, in fact we’re hiring fairly aggressively and have done a number of acquisitions since this whole thing started, and have several more in the pipeline.”
  • April 2: Automattic decimates its engineering staff in a 280 person layoff with a paltry severance compared to alignment offers. Leaving many feeling like suckers for showing loyalty.
  • April 8: The engineering lead admits that just this week they are beginning to see the gaps in engineering due to the layoffs.
  • April 9: CFO accidentally sends a Slack message to the entire company that not only do engineers need to, but all of Automattic needs to “Get aligned, get productive, deliver or move on”.

Slack message from Mark Davies, reading: Great message for all of Automattic, not just engineering. Get aligned, get productive, deliver or move on. It would be good to draft a comprehensive note like the above that is tailored for all employees. I suspect it will be well received and adopted immediately. However, we'd need to actually create the mantra/details/commitments from us as leaders. / Mr. @grierson let me know I sent the above note to the entire company. Somehow, I thought it was the ELT channel. But still relevant and something we should create and act on. For clarity, something the ELT should create and communicate.

The call is coming from inside the house. The C-suite is failing to get real alignment because “leadership” at WordPress.com, Automattic, et al. is not, and have not, been leading. They haven’t come up with an executable commercial plan for the company in nearly a decade. Any time they get close to doing so a shiny object appears and **poof** on to something else.

A scathing take from Kellie Peterson, who was Head of Domains at Automattic until 2023. There’s lots more/similar spiciness from her on Bluesky, for those inclined to such things.

I’m not sure whether I agree with everything Kellie asserts, but I’ve certainly been concerned about the direction of management for the last year or more. Obviously I’d be biased, speaking as one of the “suckers” who showed loyalty in October only to get axed in April

But for a while now it had felt like my reasons for staying were entirely about my love for (a) my team, a full half of whom got laid off at the same time as me anyway, and (b) WordPress and the open source space it represents, which of course Automattic’s been distancing itself from.

(Incidentally – and speaking of open source – I’m quite enjoying the freedom to contribute to ClassicPress, which previously might have been frowned-upon by my employers. I’ve not got a first PR out yet, but I’m hoping to soon.)

So yeah… while I might not agree with all of Kellie’s sentiments (here and elsewhere)… I increasingly find I have the clarity to agree with many of them. Automattic seems to be a ship on fire, right now, and I really feel for my friends and former colleagues still aboard what must be an increasingly polarised environment, seemingly steering hard towards profits over principles.

×

Why is there a “small house” in IBM’s Code page 437?

This is a repost promoting content originally published elsewhere. See more things Dan's reposted.

There’s a small house ( ) in the middle of IBM’s infamous character set Code Page 437. “Small house”—that’s the official IBM name given to the glyph at code position 0x7F, where a control character for “Delete” (DEL) should logically exist. It’s cute, but a little strange. I wonder, how did it get there? Why did IBM represent DEL as a house, of all things?

Code Page 437 table, highlighting the character 'small house' at 0x7F

It probably ought to be no surprise that I, somebody who’s written about the beauty and elegance of the ASCII table, would love this deep dive into the specifics of the unusual graphical representation of the DEL character in IBM Code Page 437.

It’s highly accessible, so even if you’ve only got a passing interest in, I don’t know, text encoding or typography or the history of computing, it’s a great read.

×

Scots Fire Brigade Union demand new legal protections for people with more than one romantic partner

This is a repost promoting content originally published elsewhere. See more things Dan's reposted.

In the fight for equal representation for polyamorous relationships, polyamorists may have a strange and unlikely ally in… the Scottish Fire Brigade Union:

Scotland’s Fire Brigade Union (FBU) has been blasted after calling for more legal protections for Scots who have more than one romantic partner. Members of the group, which is meant to campaign to protect firefighters, want to boost the legal rights of polyamorous people.

I love that a relatively mainstream union is taking seriously this issue that affects only a tiny minority of the population, but I have to wonder… why? What motivates such interest? Are Scottish fire bridades all secretly in a big happy polycule together? (That’d be super cute.)

Anyway: good for them, good for us, good all round at a time with a bit of a shortage of good news.

My on-again-off-again relationship with AI assistants

This is a repost promoting content originally published elsewhere. See more things Dan's reposted.

Sean McPherson, whom I’ve been following ever since he introduced me to the Five-Room Dungeons concept, said:

There is a lot of smoke in the work-productivity AI space. I believe there is (probably) fire there somewhere. But I haven’t been able to find it.

I find AI assistants useful, just less so than other folks online. I’m glad to have them as an option but am still on the lookout for a reason to pay $20/month for a premium plan. If that all resonants and you have some suggestions, please reach out. I can be convinced!

I’m in a similar position to Sean. I enjoy Github Copilot, but not enough that I would pay for it out of my own pocket (like him, I get it for free, in my case because I’m associated with a few eligible open source projects). I’ve been experimenting with Cursor and getting occasionally good results, but again: I wouldn’t have paid for it myself (but my employer is willing to do so, even just for me to “see if it’s right for me”, which is nice).

I think this is all part of what I was complaining about yesterday, and what Sean describes as “a lot of smoke”. There’s so much hype around AI technologies that it takes real effort to see through it all to the actual use-cases that exist in there, somewhere. And that’s the effort required before you even begin to grapple with questions of cost, energy usage, copyright ethics and more. It’s a really complicated space!

Bored of it

This is a repost promoting content originally published elsewhere. See more things Dan's reposted.

Every article glorifying it.

Every article vilifying it.

Every pub conversation winding up talking about it.

People incessantly telling you how they use it.

I feel dirty using it.

You know what I’m talking about, even though I’ve not mentioned it.

If you don’t know what “it” is without the rest of the context, maybe read the rest of Paul’s poem. I’ll wait.

As you might know, I remain undecided on the value of GenAI. It produces decidedly middle-of-the-road output, which while potentially better than the average human isn’t better than the average specialist in any particular area. It’s at risk of becoming a snake-eating-its-own-tail as slop becomes its own food. It “hallucinates”, of course. And I’m concerned about how well it acts as a teacher to potential new specialists in their field.

There are things it does well-enough, and much faster than a human, that it’s certainly not useless: indeed, I’ve used it for a variety of things from the practical to the silly to the sneaky, and many more activities besides 1. I routinely let an LLM suggest autocompletion, and I’ve experimented with having it “code for me” (with the caveat that I’m going to end up re-reading it all anyway!).

But I’m still not sure whether that, on the balance of things, GenAI represents a net benefit. Time will tell, I suppose.

And like Paul, I’m sick of “the pervasive, all encompassing nature of it”. I never needed AI integration in NOTEPAD.EXE before, and I still don’t need it now! Not everything needs to be about AI, just because it’s the latest hip thing. Remember when everybody was talking about how everything belonged on the blockchain (it doesn’t): same energy. Except LLMs are more-accessible to more-people, thanks to things like ChatGPT, so the signal-to-noise ratio in the hype machine is much, much worse. Nowadays, you actually have to put significant effort in if you want to find the genuinely useful things that AI does, amongst all of the marketing crap that surrounds it.

Footnotes

1 You’ll note that I specifically don’t make use of it for writing any content for this blog: the hallucinations and factual errors you see here are genuine organic human mistakes!

It’s not cheating if you write the video game solver yourself

This is a repost promoting content originally published elsewhere. See more things Dan's reposted.

I didn’t know how to solve the puzzle, but I did know how to write a computer program to solve it for me. That would probably be even more fun, and I could argue that it didn’t actually count as cheating. I didn’t want the solution to reveal itself to me before I’d had a chance to systematically hunt it down, so I dived across the room to turn off the console.

I wanted to have a shower but I was worried that if I did then inspiration might strike and I might figure out the answer myself. So I ran upstairs to my office, hit my Pomodoro timer, scrolled Twitter to warm up my brain, took a break, made a JIRA board, Slacked my wife a status update, no reply, she must be out of signal. Finally I fired up my preferred assistive professional tool. Time to have a real vacation.

Obviously, I’d be a fan of playing your single-player video game any damn way you like. But beyond that, I see Robert’s point: there are some puzzles that are just as much (or more) fun to write a program to solve than to solve as a human. Digital jigsaws would be an obvious and ongoing example, for me, but I’ve also enjoyed “solving” Hangman (not strictly a single-player game, but my “solution” isn’t really applicable to human opponents anyway), Mastermind (this is single-player, in my personal opinion – fight me! – the codemaster doesn’t technically have anything “real” to do; their only purpose is to hold secret information), and I never got into Sudoku principally because I found implementing a solver much more fun that being a solver.

Anyway: Robert’s post shows that he’s got too much time on his hands when his wife and kids are away, and it’s pretty fun.

It is as if you were on your phone

This is a repost promoting content originally published elsewhere. See more things Dan's reposted.

Being on your phone all the time and while also not being on your phone all the time has never been more important.

“It is as if you were on your phone” is a phone-based experience for pretending to be on your phone without needing to be on your phone. All from the comfort of your phone.

Relax and blend in with familiar gestures and realistic human behaviour.

When I tried this fun and experimental game, I was struck by a feeling of deja vu. Was this really new? It felt ever so familiar.

Turns out, it draws a lot of inspiration from its 2016 prequel, It is as if you were playing chess. Which I’d completely forgotten about until just now.

It really is almost as if I were on my phone.

Anyway, It is as if you were on your phone is… well, it’s certainly a faithful simulation of what it would be like to be on my phone. If you saw me, you’d genuinely think that I was on my phone, even though in reality I was just playing It is as if you were on your phone on my phone. That’s how accurate it is.

Give it a go on your phone and see if you agree.

Generative AI use and human agency

This is a repost promoting content originally published elsewhere. See more things Dan's reposted.

5. If you use AI, you are the one who is accountable for whatever you produce with it. You have to be certain that whatever you produced was correct. You cannot ask the system itself to do this. You must either already be expert at the task you are doing so you can recognise good output yourself, or you must check through other, different means the validity of any output.

9. Generative AI produces above average human output, but typically not top human output. If you overuse generative AI you may produce more mediocre output than you are capable of.

I was also tempted to include in 9 as a middle sentence “Note that if you are in an elite context, like attending a university, above average for humanity widely could be below average for your context.”

In this excellent post, Joanna says more-succinctly what I was trying to say in my comments on “AI Is Reshaping Software Engineering — But There’s a Catch…” a few days ago. In my case, I was talking very-specifically about AI as a programmer’s assistant, and Joanna’s points 5. and 9. are absolutely spot on.

Point 5 is a reminder that, as I’ve long said, you can’t trust an AI to do anything that you can’t do for yourself. I sometimes use a GenAI-based programming assistant, and I can tell you this – it’s really good for:

  • Fancy autocomplete: I start typing a function name, it guesses which variables I’m going to be passing into the function or that I’m going to want to loop through the output or that I’m going to want to return-early f the result it false. And it’s usually right. This is smart, and it saves me keypresses and reduces the embarrassment of mis-spelling a variable name1.
  • Quick reference guide: There was a time when I had all of my PHP DateTimeInterface::format character codes memorised. Now I’d have to look them up. Or I can write a comment (which I should anyway, for the next human) that says something like // @returns String a date in the form: Mon 7th January 2023 and when I get to my date(...) statement the AI will already have worked out that the format is 'D jS F Y' for me. I’ll recognise a valid format when I see it, and I’ll be testing it anyway.
  • Boilerplate: Sometimes I have to work in languages that are… unnecessarily verbose. Rather than writing a stack of setters and getters, or laying out a repetitive tree of HTML elements, or writing a series of data manipulations that are all subtly-different from one another in ways that are obvious once they’ve been explained to you… I can just outsource that and then check it2.
  • Common refactoring practices: “Rewrite this Javascript function so it doesn’t use jQuery any more” is a great example of the kind of request you can throw at an LLM. It’s already ingested, I guess, everything it could find on StackOverflow and Reddit and wherever else people go to bemoan being stuck with jQuery in their legacy codebase. It’s not perfect – just like when it’s boilerplating – and will make stupid mistakes3 but when you’re talking about a big function it can provide a great starting point so long as you keep the original code alongside, too, to ensure it’s not removing any functionality!

Other things… not so much. The other day I experimentally tried to have a GenAI help me to boilerplate some unit tests and it really failed at it. It determined pretty quickly, as I had, that to test a particular piece of functionality need to mock a function provided by a standard library, but despite nearly a dozen attempts to do so, with copious prompting assistance, it couldn’t come up with a working solution.

Overall, as a result of that experiment, I was less-effective as a developer while working on that unit test than I would have been had I not tried to get AI assistance: once I dived deep into the documentation (and eventually the source code) of the underlying library I was able to come up with a mocking solution that worked, and I can see why the AI failed: it’s quite-possibly never come across anything quite like this particular problem in its training set.

Solving it required a level of creativity and a depth of research that it was simply incapable of, and I’d clearly made a mistake in trying to outsource the problem to it. I was able to work around it because I can solve that problem.

But I know people who’ve used GenAI to program things that they wouldn’t be able to do for themselves, and that scares me. If you don’t understand the code your tool has written, how can you know that it does what you intended? Most developers have a blind spot for testing and will happy-path test their code without noticing if they’ve introduced, say, a security vulnerability owing to their handling of unescaped input or similar… and that’s a problem that gets much, much worse when a “developer” doesn’t even look at the code they deploy.

Security, accessibility, maintainability and performance – among others, I’ve no doubt – are all hard problems that are not made easier when you use an AI to write code that you don’t understand.

Footnotes

1 I’ve 100% had an occasion when I’ve called something $theUserID in one place and then $theUserId in another and not noticed the case difference until I’m debugging and swearing at the computer

2 I’ve described the experience of using an LLM in this way as being a little like having a very-knowledgeable but very-inexperienced junior developer sat next to me to whom I can pass off the boring tasks, so long as I make sure to check their work because they’re so eager-to-please that they’ll choose to assume they know more than they do if they think it’ll briefly impress you.

3 e.g. switching a selector from $(...) to document.querySelector but then failing to switch the trailing .addClass(...) to .classList.add(...)– you know: like an underexperienced but eager-to-please dev!