Avatar

Toby Jordan

Self-Taught Programmer and Philosophy & Religion Graduate

I started programming in Python when I was 10, at first making drawings with Turtle and then simple games with Pygame, and I’ve been passionate about computers ever since. I’m particularly interested in how things work under the hood, beneath abstraction layers, and this meant I spent a lot of time as a teenager reading ISA manuals and implementing virtual machines in Python and C.

I graduated this year from Manchester with a First in Philosophy and Religion. My philosophy background shapes how I think about software: I am drawn to complex and foundational problems including language design and type systems, and I am unwilling to accept black boxes.

Over the past several years I have taught myself full-stack development in TypeScript, with a modern stack including Svelte 5 and SvelteKit, Hono, Drizzle, and SQLite. I recently completed a serverless deployment of Lemuria, a full-stack social application I designed and built solo, using Cloudflare Workers, Pages, and R2, along with Turso for distributed SQLite.

Alongside my full stack work I have been diving into Type Theory and Type Systems; recently I implemented interpreters for the untyped lambda calculus, simply typed lambda calculus (STLC), and programming computable functions (PCF) from first principles in Odin. I documented these implementations and the theory involved in a series of blog posts.

At the moment I am building BlissVM in Rust — a complete VM system for a 32-bit RISC-inspired ISA of my own design, written from scratch: assembler, memory-mapped IO, privilege levels and traps, a bare-metal OS, a filesystem, and a shell.

I am currently seeking a junior/graduate role in backend, systems, full stack, or AI. I am based in the UK (Manchester), but open to remote. Take a look at my projects below, and be sure to check out my blog.

Projects

What I've been working on recently

  • BlissVM

    A complete virtual machine system built from scratch in Rust for a 32-bit RISC-inspired instruction set of my own design. Includes an assembler, memory-mapped IO, privilege levels and trap handling, a bare-metal operating system, a filesystem, and an interactive shell.

    Rust · Systems · Emulation · Operating Systems · ISA Design

  • Lemuria

    A social platform built around two-sided friendships, shelves, and topic-based boards. Built end-to-end in TypeScript as a monorepo with a shared types package. Deployed serverless via Cloudflare and Turso. The front-end is Svelte 5 and SvelteKit, and the backend is Hono, Drizzle, and SQLite.

    Bun · TypeScript · Hono · Drizzle · Svelte 5 · SvelteKit

  • Camel.py

    A reactive SPA framework for Python. Camel compiles a Python UI description to a typed intermediate representation, then interprets it with a small vanilla JS runtime.

    Python · JavaScript

  • Gitfs

    A version control system implemented from scratch in Odin to explore how Git works under the hood. Gitfs recreates Git's core architecture from first principles, starting with a content-addressed object database and gradually building up higher-level repository operations.

    Odin · Low-Level · Systems · Version Control · Tooling

  • Kaworu Linux

    A minimal NixOS rice built around Hyprland, Home Manager and Stylix. Declarative, reproducible, and opinionated. See the README for detailed installation and usage instructions.

    NixOS · Nix · Hyprland

Blog

Writings on technology, philosophy, and their intersection

  • Types as Propositions, Proofs as Programs: Implementing STLC and PCF
    type theory · lambda calculus · odin · curry-howard

    We extend our lambda calculus interpreter with a type system, discover that almost nothing from the untyped standard library survives, derive PCF from first principles, and arrive somewhere unexpected: the typechecker we wrote is also a proof checker - Curry-Howard isomorphism.

  • Building a Lambda Calculus Interpreter in Odin
    lambda calculus · odin · interpreters · programming languages

    Lambda calculus has three rules, and yet booleans, arithmetic, linked lists, and recursion fall out of them. This is an account of building an interpreter for it in Odin - and of the theory that ambushes you along the way.

  • See all →

This site was built with SvelteKit and Svelte 5, check out the source here.

Hosted via Github Pages