Leah Weldon, software engineer

hover to disturb · click to scatterbog an luch thairis · cliceáil chun é a scaipeadh… particles

~ $

currently building: this siteá thógáil faoi láthair: an suíomh seo

x-ray · the name is ~2,600 points sampled from text rendered on an offscreen canvas, each on a spring back to its home position, pushed by your cursor or your phone's tilt. It pauses off-screen and stays still for reduced motion. The "last push" pill is a Vercel function reading GitHub's public events API, cached for 15 minutes.

software engineer · ibm · dublininnealtóir bogearraí · ibm · baile átha cliath

I build software that holds up under scrutiny, and systems where interesting behaviour emerges on its own.Tógaim bogearraí a sheasann suas faoi ghrinnscrúdú, agus córais ina dtagann iompar suimiúil chun cinn as a stuaim féin.

~/about

I'm a software engineer at IBM, where I previously interned on the process mining team. I studied Computer Science at Trinity College Dublin, where my MSc dissertation measured how toxicity classifiers fail, and for whom.Is innealtóir bogearraí mé ag IBM, áit a raibh mé i m’intéirneach ar an bhfoireann mianadóireachta próiseas roimhe sin. Rinne mé staidéar ar an Ríomheolaíocht i gColáiste na Tríonóide, Baile Átha Cliath, agus thomhais mo thráchtas MSc conas a theipeann ar aicmitheoirí tocsaineachta, agus cé air a dteipeann siad.

Outside work I build things to see what happens: an evolution sandbox where predators appear without being programmed, a music game whose every note is synthesised in the browser, and a planner built around the person rather than the nine-to-five.Lasmuigh den obair, tógaim rudaí chun a fheiceáil cad a tharlóidh: bosca gainimh éabhlóide ina dtagann creachadóirí chun cinn gan iad a ríomhchlárú, cluiche ceoil ina gcruthaítear gach nóta sa bhrabhsálaí, agus pleanálaí atá bunaithe ar an duine seachas ar an naoi go dtí a cúig.

91.7%
semantic-attack bypass rate against Muslims for HAP-38M and Toxic-BERTof disguised attacks on Muslims got past two of the AI moderators I tested
66
automated tests behind Primordial, plus a real-browser checkautomatic checks that make sure Primordial keeps working
50
simulated worlds swept in parallel to find when predators evolvevirtual worlds run at once to see when predators appear
12
original music cues synthesised live in the browserpieces of music written by code instead of recorded

x-ray · each figure comes from a project README or a results file. They count up once, when an IntersectionObserver sees the strip, with a cubic ease-out.

~/selected-work

(tá sonraí na dtionscadal i mBéarla)

also in the archive: zebra-puzzle-solver · gamblers-ruin-monte-carlo · morse-code-game

x-ray · names decode from random glyphs when this section scrolls in. Hover previews follow the pointer with clamped coordinates. Rows link to case-study pages generated from Markdown at build time, and the page change uses cross-document View Transitions where supported.

~/explore-the-research

real results from my MSc dissertation

→

x-ray · bars come from per-group CSVs exported from my dissertation pipeline, bundled at build time. The takeaway sentence is computed from the data, and groups that were never flagged before an attack are excluded rather than shown as 0%.

~/fit-check

for recruiters · runs entirely in your browser

Hiring? Paste the job description.

I'll pick out the skills the role asks for, show which ones appear in my work (with the project that proves each one), and list anything I haven't shown here yet. It's a keyword match, not a verdict.

x-ray · about 30 hand-written regular expressions map skills to evidence, plus a list of common skills I haven't shown here. Nothing you paste leaves the page. The rules are unit-tested.

~/arcade

bug-bashbest 0

Bug bash

Bugs are crawling into production. Squash as many as you can in 20 seconds.

name-that-genrestreak 0 · best 0

Name that genre

Every clip is composed live by code in your browser, the same way Melody Masters works. Listen, then guess.

x-ray · bug bash is a requestAnimationFrame loop with delta-time movement, wall bouncing and difficulty that rises with your score. Name that genre schedules oscillators, filtered noise and pitch-dropping kicks with the Web Audio API: there are no audio files on this site.

~/now · updated Nov 2026

building
This site
learning
TODO: what you are learning
reading
TODO: what you are reading
writing
My first Substack essay

~/git log --graph

  1. a3f9c1eHEAD → ibm
    Software engineer, IBM (Oct 2026)
  2. 7d02b4a
    MSc Computer Science, Trinity College Dublin · dissertation on fairness and robustness
  3. 51ce8f0winner
    First OpenAI hackathon in Ireland (Belfast) with The Synced
  4. c88e21d
    Software engineering intern, IBM process mining
  5. 0b6e7aa
    TA for two Computer Science courses · PRO, DUCSS · exec committee, Central Societies Committee

~/stack

hover or focus a skill to see where I've used it, or a project to see what it uses

x-ray · the graph is a plain lookup table in src/data/site.ts. Hover and focus both work, so it's usable with a keyboard.

~/writing

Personal essays on Substack. The first is in progress.

~/guestbook

moderated by a classifier from my dissertation

Leave a note.

Every message is scored by IBM's Granite Guardian HAP-38M, one of the four models I evaluated, before it appears. You'll see its score. It isn't perfect, which is rather the point of my research.

0/280

x-ray · a Vercel function validates the note, sends it to Hugging Face's inference API for HAP-38M, and only inserts it into Supabase Postgres if the hate/abuse/profanity score is below 0.5. Row-level security means the browser can only read approved notes. A honeypot field and per-IP rate limit keep bots out.

Ask Leah

an assistant that only answers from what's on this site · it can be wrong