Tuomas Laakkonen

Education

University of Oxford
MSc in Mathematics and Foundations of Computer Science (2021-2022)
  • Distinction (86% average - 4.0 GPA equivalent1)
  • Modules include:
    • Quantum Compilation and Optimization,
    • Quantum Information,
    • Diagrammatic Reasoning for Quantum Computing,
    • Cryptography,
    • Formal Verification,
    • Number Theory.
  • Thesis:
    • Title: 'Graphical Stabilizer Decompositions for Counting Problems'
    • Supervised by Konstantinos Meichanetzidis (Quantinuum) and John van de Wetering (University of Amsterdam)
    • Used ZH-calculus (a graphical language for reasoning about tensor networks) to prove a new bound on #SAT,
    • Explored the relationship between counting complexity and the graphical calculi for quantum computing,
    • Applied methods from quantum circuit simulation to solving boolean satisfiability and counting problems.
Imperial College London
BSc Mathematics (2018-2021)
  • 1st class (77% average - 4.0 GPA equivalent1)
  • Modules covered include:
    • Computational Linear Algebra,
    • Stochastic Simulation,
    • Numerical Methods for ODEs,
    • Mathematical Computation,
    • Individual computational and Group Projects,
    • Linear Algebra and Multivariable Calculus.
  • First-Year Poster Project:
    • Title: "Accelerating Gillespie's SSA with Dynamic Compilation"
    • Created a compiler to accelerate chemical reaction simulations using Rust and LLVM. The speed mostly matched or exceeded the industry standard StochKit software.
Marlborough College
Academic Scholar (2013-2018)
  • A Levels:
    • 4 A*'s and 1 A in Mathematics, Further Mathematics, Computer Science, Physics and Chemistry respectively.
    • A* in an EPQ related to Computer Science and AI.
  • GCSEs: 10 A*s and 2 As including A*s in Mathematics, Computer Science, and triple Science and an A in Electronics.

Experience

Quantinuum
QNLP/QAI Research Scientist (October 2022 - present)
Researching applications of diagrammatic methods to quantum computation:
  • Investigating quantum algorithms to accelerate natural language processing tasks using the DisCoCirc model of text as quantum circuits.
  • Quantum circuit compilation and optimization via deep learning and the ZX-calculus, specifically trying to reduce the T-count of Clifford+T circuits to enable efficient implementation on future fault-tolerant quantum computers.
  • Exploring the relationship between graphical calculi for quantum computing, propositional model counting, and computational complexity.
Canon Medical Research Europe
Software Engineering Intern (2021 June-August)
  • Developed tooling for use by AI researchers to automate containerized machine learning tasks,
  • Wrote a CLI application in Go to orchestrate Docker containers, including bindings to CPython and VS Code integration in Typescript,
  • Implemented an authentication system based on elliptic curve digital signatures in Typescript and Go - used to imple- ment a federated learning system with SSH.
Blueshift Coding
Content Creation Intern (2020 August-October)
Created content to be used to teach programming in lessons, clubs, and private tutoring. Responsibilities included:
  • Development of sample code in Python, Processing and Scratch,
  • Writing lesson plans and presentations for use by teachers,
  • Putting together paper resources and robotics equipment for classes.

Projects

Rust

OpenQASM Transpiler

A library to parse, type-check and transpile OpenQASM 2.0 programs focusing on high-quality error messages, as well as a utility to render them into circuit diagrams.

See The Code
OS Project

A hobby OS project for 32-bit x86, currently capable of running simple ELF files. Has drivers for VGA Text Mode, Serial, PC Speaker and PS/2 Keyboards.

See The Code
Raytracer

A parallel raytracer supporting environment maps, shadows, emissive objects, and diffuse, glossy, and reflective materials.

See The Code
Quadratic Sieve

An implementation of the quadratic sieve integer factorization algorithm. Has been successfully used to factor 60 digit semiprimes.

See The Code
Gillespie's SSA

An implementation of Gillespie's direct method, accelerated with LLVM.

See The Code

Haskell

AME

A computer algebra system with natural language input designed for A-level students.

See The Code
Hask

An interpreter for a dynamically typed functional language with similar syntax to Haskell.

See The Code

Python

Pyre

An interpreted expression-oriented language with Python interoperability.

See The Code
Min

A prototype compiler for a systems language.

See The Code
Exponential Identities

A program to automatically create proofs or counterexamples for a class of exponential identites.

See The Code

Old Projects

Rust

ECS Editor

A prototype editor for the Pixelengine library that uses ECS architecture, custom GUI library and macros to generate controls automatically from data structures.

See The Code
World Generator

A program to generate and render planets in OpenGL using Perlin noise and ray marching.

See The Code
Pixelengine

A port of the Processing framework to Rust in OpenGL. Shown is an example platforming game that uses GLSL shader post-processing to achieve a Neon/CRT aesthetic.

See The Code
Physics Engine

A 2D physics library, using a quadtree for efficient collisions with static objects.

See The Code

Python

Sort Visualizer

A visualization of different sorting algorithms. Pictured is in-place merge sort.

See The Code
Fluid Simulation

Fluid simulation using diffusion and advection of a pressure field.

See The Code
2D to 3D

A program to render 3D environments from 2D maps in software.

See The Code
Drag Simulation

A program to simulate the drag of fluid on a moving object.

See The Code
Zombie Hordes

An infinite shooter and platformer game.

See The Code
Rotation Simulation

A simulation of applying forces to a rotating object using moments.

See The Code
Poisson Disc Sampling

An illustration of the Poisson disc sampling method.

See The Code

JavaScript

Paper Search

A web app to search for A-level Maths past papers, designed to help with revision. Live here.

See The Code
Ficsave

A Chrome extension to download eBooks automatically from AO3 and FFN via FicSave.

See The Code

Other

Time Zone Clock

A Mac application in Swift to graphically convert between time zones.

See The Code
This Website

Designed from scratch using Bootstrap, Jinja, Sass and JavaScript.

See The Code

Digital Electronics

ATmega4809 Dev Board

A breakout and development board for the Atmel ATmega4809-PF MCU. Supports USB-Serial and I2C via the MCP2221A. Includes USB and DC power inputs with regulation.

6502 Computer

A 65C02-based single board computer with 32k RAM and 24k ROM. Has an expansion port for an ATmega4809-based video card and PS/2 keyboard input interfacing via a 65C22.

Voltage Controlled Oscillator

A simple voltage-controlled oscillator compatible with the 1V/oct and 10Vpp standard.

Programming Language Skills

Rust
10k+ lines written
3 years experience
See Projects

Other projects not listed above include:

  • A compiler for a statically-typed systems language with user definable operators and inline assembly,
  • An OpenGL project to render text directly on the GPU from Bezier curve data using geometry shaders,
  • Interpreters for Basic and Lisp,
  • An implementation of the AES encryption system,
  • Parsers for various binary formats, including the FAT file system, the Multiboot 2 specification, EDID data and ACPI tables.

Haskell
10k+ lines written
3 years experience
See Projects

Other projects not listed above include:

  • A regular expression engine, and a parser combinator library,
  • An implementation of Lisp, and a prototype language compiling to C,
  • A library to compute exact derivatives of functions automatically,
  • A library to compute probability distributions and extrapolate series.
Python
10k+ lines written
6 years experience
See Projects

Other projects not listed above include:

  • A library extending Python to add algebraic data types using metaclasses, and adding functional programming methods to built-in types.
  • A program to derive Markov chains from text data,
  • A compiler for a language using LLVM, various Lisp interpreters,
  • A program to solve Sudoku puzzles efficiently,
  • An art program that uses the touchpad of a Macbook as a drawing tablet.
Others
  • Go (3k lines written, 1 year experience): A hobby operating system project.
  • Assembly (2k lines written): A Lisp interpreter for x86, a calculator for 6502, and a VGA video generator for AVR,
  • Verilog: A CPU using the one instruction set SUBLEQ architecture, and a more traditional 8-bit CPU.
  • C: A hobby operating system project.
  • C++: An indoor positioning project for Arduino using Wi-Fi, Accelerometer and Barometer data to determine position. Included a GUI component using a resistive touch screen. Developed as part of an Engineering Education Scheme project supervised by Intel. We came first in the south west region and won a CREST Gold award for the project.

1: According to the Fulbright Commission, a 1st (70-100%) is 4.0 GPA equivalent - see here.

Designed by Tuomas Laakkonen and built using Bootstrap v4, Bootstrap Icons, and jQuery, for which the licenses are linked.