I'm a full-stack JavaScript developer and learning technologist from the UK.
I love solving real-world problems through code — especially around APIs, data, and accessible interfaces that make learning more inclusive.
I bridge education and software engineering, building reliable, user-centred systems that make technology work for people.
At Imperial College London, I'm helping roll out a unified Learning Management System (LMS), collaborating across faculties to integrate tools, streamline workflows, and improve accessibility.
Previously, I worked at Learnlight, where I helped optimise the GraphQL backend that powers learning for 700,000+ users in 180+ countries — reducing query loads, improving stability, and shaping developer experience.
Learnlight Platform & Mobile Apps
Scalable learning ecosystem used by 700k+ learners in 180+ countries.
I optimised GraphQL performance (cutting redundant queries 36→1), implemented rate limiting, and automated backend testing.
Focus: backend architecture, performance, developer experience.
KarlHorning.dev – Building a Modern, Accessible Developer Portfolio
My Next.js + TypeScript portfolio — accessible, modular, and fully automated.
It achieves 100% accessibility (WCAG 2.2 AA) and 99–100 Lighthouse scores, with Playwright + axe-core tests and GitHub Actions CI/CD.
Focus: accessibility, maintainability, and front-end architecture.
CMALT Portfolio
Accredited portfolio demonstrating my practice as a Learning Technologist — reflecting on professional experience, evidence, and impact across education and technology.
Focus: professional development, reflection, and accessibility in digital learning.
- Accessibility first — design and code should include everyone
- Clarity over complexity — simplicity scales better than cleverness
- Collaboration matters — good systems are built by teams, not silos
- Documentation is design — consistency and predictability build trust
- Experimenting with Vite + Electron for an image optimiser
- Building a Markdown-based writing tracker app
- Exploring GraphQL performance and Next.js accessibility
"Technology should make learning easier — not harder." If you share that view, feel free to connect or explore my projects.



