Skip to content
View Padraigobrien08's full-sized avatar

Block or report Padraigobrien08

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
Padraigobrien08/README.md

Padraig O'Brien

Portfolio · LinkedIn · Substack · X

Hi, I'm Padraig.

I'm an AI engineer, currently doing an MSc in Artificial Intelligence at the University of Edinburgh. Before that I spent three years at yieldHUB, taking ambiguous product problems through to systems customers actually used — LLM, RAG and computer-vision features that shipped inside its semiconductor analytics platform.

I started in data science, but found myself increasingly interested in what happened after the model worked: does it still hold up on real data, and would anyone notice if it stopped? I taught myself to build software properly so I could answer that, and I've done it in public, mistakes included.

How I think about AI systems

Getting an answer out of a model is the easy part. The harder part is knowing whether the answer is any good — evals, regression gates, traces, failure analysis. It's most of what I work on now.

If a system can't say "I don't know", I don't trust it. Every repo pinned below has a file listing what it can't do. When I look at someone else's project, that's the first thing I read.

Now

  • Doing an MSc in Artificial Intelligence at the University of Edinburgh
  • Working mostly in Python / TypeScript — FastAPI, Next.js, Postgres/pgvector, PyTorch

Try something

  • nanogpt-pob.dev — drag a scrubber along a GPT-2 reproduction and watch it cross a target that was written down before the run
  • pob-rag-chat.xyz — ask a question, then follow the answer back through retrieval, cost and latency
  • strideiq-lemon.vercel.app — a year of sample training data, analysed in your browser; no account, no key, nothing to install

I built StrideIQ because I wanted to know why my training had gone backwards. It told me. That's roughly the pattern for everything here.


Looking for AI / ML engineering roles.
Based in Edinburgh for the MSc. Open to London, the US and elsewhere.
If you're building AI systems where reliability matters, I'd like to hear about it.

Pinned Loading

  1. nanogpt-from-scratch nanogpt-from-scratch Public

    From-scratch GPT-2 124M reproduction, every figure pinned to an artifact by CI: 3.0503 val loss against a pre-registered 3.29, HellaSwag 0.3043, a paired-seed ablation study, and 95.1% scaling on 8…

    Python 3

  2. rag-eval-observability rag-eval-observability Public

    Chat over your documents, then persist offline evals, compare runs by case_id, and trace every answer in the query log — RAG evaluation + observability in one deployable repo. Next.js · FastAPI · p…

    TypeScript

  3. auditable-agent-loop auditable-agent-loop Public

    An agent that investigates a dataset adaptively, and traces every claim back to the deterministic computation behind it. No number in a trace comes from a language model.

    Python

  4. strideiq strideiq Public

    Private training intelligence for runners. Deterministic engines compute every number; the LLM coach only orchestrates tools and cites its evidence.

    TypeScript 1

  5. model-failure-lab model-failure-lab Public

    Toolkit for systematically probing, classifying, and debugging failure modes in LLM and RAG systems — reasoning errors, hallucination, and API-level behaviour.

    Python

  6. Stepwise Stepwise Public

    Multimodal RAG that turns tutorial videos into a searchable, visually-grounded knowledge base. Ingests YouTube, Google Drive, Notion & screenshots; Claude decomposes them into timestamped steps wit…

    Python 3