— Full-stack developer
KarlHorning
Fast. Accessible.
No fluff.
Web Developer at King's College London. I build things that work for everyone — fast, accessible, no loading screens. Previously a Full-Stack Engineer at Learnlight, scaling a GraphQL API for 700,000+ learners across 180 countries.

Before writing code, I spent six years teaching online — over 10,000 hours of it. I watched slow APIs, broken accessibility, and fragile UX get in the way of real people trying to learn. That experience is still the lens I build through.
I'm currently a Web Developer for Digital Education at King's College London. My background includes leading technical evaluations for enterprise LMS infrastructure at Imperial College London, and three years as a Backend Engineer at Learnlight, where I built the GraphQL API for a platform serving 700,000+ learners across 180 countries.
Based in London · Open to remote/hybrid
- View
Learnlight Platform
Built and optimised the GraphQL API for a global language-learning platform — 700,000+ registered learners across 180 countries. Resolved N+1 query issues, cutting duplicate database calls from 36 to 1 per request: a 70% performance gain.
- View
karlhorning.dev
The fourth version of karlhorning.dev — a static Next.js site with a JSON-driven blog, RSS feed, and Playwright + axe-core accessibility testing across every page.
- View
Transform Text Extension
Built and published a TypeScript Chrome extension that adds Safari's text transformation feature to Chromium browsers and Firefox — 13 transformations, TDD with Vitest, approved first time across all three browser stores.
- View
Canvas Content Styling Guide
A documentation site covering HTML and CSS best practices for Canvas LMS — 22 pages, 120 copy-paste examples, and 373 searchable icons. Built at Imperial College London and published as a standalone resource for staff across institutions.
- View
Color Contrast Checker
A progressive web app for checking WCAG color contrast ratios. Built because accessible design starts with color — and the tools for checking it should be fast and frictionless.
Like whatyou see?
I'm available for new opportunities — let's talk.