Any views expressed within media held on this service are those of the contributors, should not be taken as approved or endorsed by the University, and do not necessarily reflect the views of the University in respect of any particular issue.

Finding My Feet with AI and Finding ELM

Six months ago I joined the Web Development team at the University of Edinburgh. I know Drupal well, but I also know it’s like a huge bag of Lego bricks, its power lies in how those bricks have been assembled, and every codebase assembles them differently.

Testament to those who came before me, EdWeb is a remarkable feat of engineering. One codebase running across over 160 environments, serving more than 600 subsites, curated by close to 1,600 editors. Getting up to speed quickly meant finding a way to navigate that complexity without getting lost in it.

Where AI proved its worth

When you’ve worked in Drupal for a while, you develop instincts. So when one of our environments started reporting slow load times, I had a hunch: somewhere, a block cache or menu cache wasn’t being set correctly, meaning every page visit was being built fresh from the server and database rather than served from a fast cached version.

The telltale signs were in the response headers for anonymous users:

x-cache: MISS, MISS, MISS, MISS and x-cache-hits: 0

I knew something was setting cache-control: max-age=0

A straightforward search of the codebase turned up nothing. This is where AI really earned its place. I described the problem, and the tool went to work scanning lines of code far faster than I ever could.

After several searches, we got there. A piece of code was, in certain circumstances, failing a check and returning false. When applied to the cache control setting, that false was being treated as 0.

This effectively switched caching off. The variable wasn’t being set to the wrong value; it wasn’t being set at all.

A targeted fix, a bit of defensive programming, and the problem was resolved. While AI helped locate the issue, the diagnosis and the fix were mine. Could I have found it manually? Eventually, probably. But describing the problem in plain language and having AI work out what to look for saved hours, if not days of scouring the codebase.

Of course, there’s no substitute for getting deep into the codebase over time, and that’s very much still the plan. But problems don’t wait for new team members to find their feet, and having AI as a tool to bridge that gap means issues can be tackled with confidence while that deeper knowledge is still being built.

The uncomfortable side of AI

I’ll be honest, I’m an advocate, but also a sceptic. I’ve been reading about the energy and water consumption of large AI data centres, and it’s hard not to feel conflicted. A data centre the size of Manhattan isn’t an abstract concern, there seems to be a real cost that sits behind every query.

The Drupal community has some vocal voices on this too, and I find myself nodding along even as I reach for these tools. That tension hasn’t gone away.

Part of that discomfort was closer to home than data centre emissions. Commercial AI tools had made themselves very easy to reach for, but reaching for them felt at odds with what I actually wanted to be doing. I knew ELM was the right choice, it just took more effort to get into my workflow. So rather than defaulting to the convenient option, I found myself holding back, using AI more sparingly than I might have otherwise.

Getting ELM Onside

The recent University’s AI Town Hall was exactly the energy injection I needed. A conversation with Andrew Hayward was the spark, hearing that others across the university were already making progress coding with ELM gave me the push to try again. Bart Pohorecki then pointed me to Codex CLI, which can be configured to work with an ELM API key, and a bit more digging led me to Codex CLI launcher built for PhpStorm. Suddenly ELM was running directly inside my IDE, with access to the codebase and no files being sent to unrestricted external services.

The result is a setup that feels like a genuine step forward: the productivity benefits I’ve come to rely on in my community projects, with considerably less of the guilt. Using a University-backed model feels meaningfully different, the privacy guardrails and University oversight address enough of the concerns that had been giving me pause.

I’m still at the early stages of exploring what ELM can do in this context, but I’m genuinely optimistic. If you’re curious about getting set up with Codex CLI and the PhpStorm plugin, feel free to get in touch, I’ll be happy to share what I’ve learned so far.

It’s also a reminder of the value of events like the AI Town Hall, tech conferences such as Scottish Web Folk, and community gatherings like DrupalCamps. They’re not just opportunities to learn what others are doing, they’re a way to recharge your own thinking and find the motivation to push past the inertia that can build up around good intentions and get some much needed excitement of experimentation.

Leave a reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

css.php

Report this page

To report inappropriate content on this page, please use the form below. Upon receiving your report, we will be in touch as per the Take Down Policy of the service.

Please note that personal data collected through this form is used and stored for the purposes of processing this report and communication with you.

If you are unable to report a concern about content via this form please contact the Service Owner.

Please enter an email address you wish to be contacted on. Please describe the unacceptable content in sufficient detail to allow us to locate it, and why you consider it to be unacceptable.
By submitting this report, you accept that it is accurate and that fraudulent or nuisance complaints may result in action by the University.

  Cancel