Skip to main content

FRANK DUAH2026

--:--

I build LLMs from the ground up, then ship them.

IbuildLLMsfromthegroundup,thenshipthem.

I hand-build the full LLM lifecycle: a transformer, a tokenizer, fine-tuning, an MCP server, and an agent red-teaming harness, all with no frameworks, then pair that depth with real software engineering.

Try the live search

01About

I build the LLM stack from the ground up to understand it, then ship production systems on top of that understanding. A transformer with every gradient derived by hand, a byte-level tokenizer, LoRA and its modern successors, an MCP server, and a red-teaming harness that fails CI when an agent gets less safe. No frameworks in any of them, and the code is public and readable.

That depth sits next to ordinary software engineering: full-stack work, applied machine learning, and open source. I am the second-highest contributor to llm-exe, a production LLM framework other developers build on. I iterate hard, and I hold every iteration to a production bar so the next pass builds on solid ground instead of a workaround.

Pursuing my MS in Artificial Intelligence at Northeastern University on a fully-funded merit scholarship, the sole graduate of the University of Ghana selected for it. Before that, a First-Class Bachelor's in Computer Engineering and the Dean's Award four years running (2019 to 2022). Much of the work is collaborative: research partners on transformer modeling, the multi-disciplinary team behind Ghana's National Science and Maths Quiz AI, and a thesis team that engineered a social platform from the ground up.

  • First Class HonoursBSc, Computer Engineering
  • Dean's Awardfour years running
  • Chanrai Graduate Scholarshipsole awardee
  • #2 contributorllm-exe

Skills

LLM & GenAI

  • RAG
  • Agentic AI
  • Model Context Protocol (MCP)
  • LLM application development
  • Prompt engineering
  • Evaluation & red-teaming (OWASP LLM Top 10)
  • Prompt-injection defense
  • Fine-tuning (LoRA / DoRA / QLoRA)
  • On-device & offline inference (GGUF, llama-cpp-python)
  • Transformer internals (attention, RoPE, KV-cache)
  • Byte-level BPE tokenization

LLM Providers & APIs

  • OpenAI
  • Anthropic (Claude)
  • Google Gemini
  • AWS Bedrock
  • Claude Code

ML Frameworks

  • PyTorch
  • TensorFlow
  • Keras
  • scikit-learn
  • Hugging Face Transformers
  • LangChain
  • llm-exe
  • NumPy
  • Pandas

Languages

  • Python
  • TypeScript
  • JavaScript
  • C
  • C++
  • Java
  • SQL
  • Bash

Data & Vector Stores

  • Vector databases
  • PostgreSQL
  • MySQL
  • MongoDB
  • DynamoDB
  • Supabase

MLOps & Cloud

  • AWS (Bedrock, Lambda, EC2, S3, CloudFormation)
  • Docker
  • GitHub Actions
  • CI/CD

Web

  • React
  • Vue
  • Next.js
  • Node
  • Express
  • Flutter
  • 7+

    years writing code

  • location

02Process

How I work.

  1. 01ResearchPapers, issues, tickets, real users.
  2. 02PrototypeSmallest thing that proves it works.
  3. 03MeasureNumbers before opinions.
  4. 04ShipEvery iteration held to a production bar.
  5. 05IterateNext pass builds on solid ground.

03Index

04Selected work

The LLM Stack, Built From Scratch

The full LLM lifecycle, implemented by hand with no frameworks: a transformer, efficient fine-tuning, a tokenizer, and a Model Context Protocol server.

01

2026Author

Glassbox

A transformer from scratch, every gradient derived by hand

A working transformer implemented in NumPy with no autograd anywhere. It supports both GPT-2 and Llama-style architectures (RMSNorm, RoPE, SwiGLU, and a KV-cache), and every forward and backward pass is hand-derived and gradient-checked to 1e-8. It trains and generates text on a plain CPU.

Gradient check
1e-8
Frameworks
None (NumPy)
Architectures
GPT-2 · Llama
Runs on
CPU
  • Python
  • NumPy
Read the case study

02

2026Author

Forge

Modern fine-tuning methods rebuilt from the math up

LoRA, DoRA (the 2024 method), and QLoRA-style int8 quantization, all implemented by hand. The forward and backward passes are hand-written and gradient-checked, adapters hot-swap at runtime, perplexity evaluation is built in, and the frozen base model is provably left untouched.

Methods
LoRA · DoRA · QLoRA
Base model
Provably frozen
Adapters
Hot-swap
Frameworks
None (NumPy)
  • Python
  • NumPy
Read the case study

03

2026Author

Cleave

A byte-level BPE tokenizer you can watch work in the browser

A byte-level Byte-Pair Encoding tokenizer built from the standard library, with a provably lossless round-trip on arbitrary Unicode. It exports a dependency-free in-browser tokenizer that matches the Python encoder token for token.

Round-trip
Provably lossless
Alphabet
Byte-level
Browser export
Token-for-token
Dependencies
Stdlib only
  • Python
  • JavaScript
Read the case study

04

2026Author

Winnow

A Model Context Protocol server with no SDK, plus an injection scanner

An MCP server implementing JSON-RPC 2.0 over stdio with no SDK. It compacts documents to Markdown (25 to 75% fewer tokens) and scans them for prompt injection before they reach a model, and it connects to Claude as a tool.

Protocol
JSON-RPC 2.0
SDK
None
Token reduction
25-75%
Guardrail
Injection scan
  • Python
  • MCP
  • JSON-RPC
Read the case study

05

2026Author

Crucible

An adversarial stress-tester that fails CI when an agent gets less safe

An adversarial red-teaming harness for LLM agents, built from scratch with zero runtime dependencies. It runs hostile and edge-case attacks aligned with the OWASP LLM Top 10, reports per-category hold rates with the exact inputs that break the agent, and gates CI so a build fails when a prompt or model change makes an agent measurably less safe. Hold rates run over N trials, inconclusive judge calls are excluded from the denominator, and heuristic detectors are labeled as such.

Framing
OWASP LLM Top 10
Suite
61 tests
Scoring
Severity-weighted
CI
Regression gate
  • Python
Read the case study

06

2026Author

Device-Aware RAG Assistant

Offline-first retrieval that picks its own model backend

A retrieval-augmented assistant whose defining idea is that the SAME code detects its runtime environment - network plus CPU and RAM - and automatically chooses a backend: a cloud model when resources are free, a quantized on-device model when they are not, with no user-facing toggle. Hybrid retrieval narrows by date before semantic search, and a pinned, model-aware embedding cache keeps vectors from different models from ever mixing. The live demo on this site is a browser-only slice of the same idea: it embeds every post on your device with a quantized MiniLM model and ranks by cosine locally, so ranking costs nothing per query and needs no search backend.

Backends
Cloud / on-device
Demo runtime
100% in-browser
Per-query cost
$0
Retrieval
Date + semantic
  • Python
  • RAG
  • llama.cpp
  • transformers.js
  • Next.js
Read the case study

07

2026Co-Author

Latency-Aware Execution Engine

Reinforcement learning trade execution

End-to-end ML system combining classical methods (Linear Regression, Random Forest, XGBoost) with a Double DQN reinforcement-learning agent (dueling architecture, prioritized experience replay) for optimal cryptocurrency trade execution. Beats TWAP by 10.2 basis points on Bitcoin walk-forward and cuts cost 96.7% versus immediate execution (the naive baseline), validated against 98 million real market trades across three assets. Implements the Almgren-Chriss market impact model, with 17 ablation studies and 176 unit tests. Dual final project for CS5130 (Applied Programming) and CS6140 (Machine Learning) at Northeastern.

vs TWAP (BTC)
+10.2 bps
Cost reduction
96.7%
Validation
98M trades
Tests / Ablations
176 / 17
  • Python
  • PyTorch
  • Double DQN
  • XGBoost
Read the case study

08

2026Collaborator

llm-exe

Multimodal embedding input, merged upstream

Second-highest contributor and a Collaborator on llm-exe, an open-source TypeScript framework for building LLM applications. Authored its multimodal embedding input feature: one provider-neutral input type routing to AWS Bedrock Cohere Embed v4, while text-only providers reject image content at the boundary with a typed error. Merged upstream and published in v3.0.3, additive and non-breaking.

Release
Shipped in v3.0.3
Commits
17
CI
Node 18 to 24
Merged PRs
45+
  • TypeScript
  • Node
  • GitHub Actions
Read the case study

More work

  • Music Emotion Recognition

    Transfer learning with RoBERTa for valence and arousal

    0.781 valence and 0.649 arousal correlation on the MERGE dataset's 2,568-lyric split.

  • Spark

    Safer social platform for kids, with ML age verification

    A child-safe social platform with a multi-stage ML age-verification pipeline (MTCNN, FaceNet, VGG16), built as a 3-person BSc thesis.

  • Brilla AI

    Open source AI that competes live in Ghana's National Science and Maths Quiz

    A live AI that competes in Ghana's National Science and Maths Quiz; I contributed the frontend and AI integration.

  • AI-PR-Assistant

    GitHub-integrated review bot

    Summarizes pull requests and flags risky changes inline, wired into the GitHub review flow.

05Education

01

2025 - present

Northeastern University

Master of Science in Artificial Intelligence

Sole graduate of the University of Ghana selected for a fully-funded merit scholarship covering tuition and living expenses.

02

2022

University of Ghana

Bachelor of Science in Computer Engineering

First-Class. Dean's Award for Best Performing Students four consecutive years (2019, 2020, 2021, 2022).

06Writing

May 2, 2025 · 9 min · LLM · TypeScript · Open Source

Supercharging LLM Applications with llm-exe

A walk through the llm-exe SDK with three concrete patterns: validating statements against conversation context, extracting structured data from unstructured text, and detecting user intent. One toolkit, four providers, modular components.

Read on Medium

Most days I post what I am learning about AI and agents. Follow along on LinkedIn, or read the archive here.

09Contact

Tell me what you are building.

Hiring, collaboration, or a question about the work above. I read everything.

© 2026 Frank Duah