April 2020 - Present
PhD student in Computer Science | University of Cambridge
Supervising several undergraduate courses in Computer Science (since Oct 2018)
July 2018 - March 2020
Analyst (Software Developer) | Goldman Sachs
Intern training: for Java 8, React/Redux, Slang/SecDb.
Supervising an intern project (gRPC for Slang).
Hiring; conducting interviews and streamlining process.
Oct 2014 - June 2018
M.Eng in Computer Science, Trinity College, University of Cambridge
Special focus on programming language semantics, compilers and application of formal methods to real-world engineering problems. Transcript is here.
June - August 2017
Intern | Arm
Formal verification of a processor component by model-checking SystemVerilog.
Intern | Myrtle
Wrote components to simulate a Convolutional Neural Network using advanced Haskell features (meta-programming, Kinds) for checking against an implementation that was to be compiled to VHDL.
July - Septemeber 2016
Intern | Department of Computer Science, University of Cambridge
Worked on a middleware written in C for Internet-of-Things devices. Presented the work at the British Science Museum 'Our Lives in Data' late event, August 2016.
Jan 2020 Overview of Programming Language Semantics
Ten-Minute TechNet, EMEA Engineering, Goldman Sachs
Aug 2019 Metaprogramming Summer School
July 2019 NumLin, talk at ECOOP
Jan 2019 Compiler Construction supplementary code for supervising
Aug 2018 - Nov 2018 Homotopy Type Theory reading group
Aug 2017 - Aug 2018 ATypical CompSci (educational YouTube channel)
July 2018 DeepSpec Summer School
June 2017 - June 2018 Mentor for CoderDojo, Cambridge
Jan 2018 - Apr 2018 Advanced Functional Programming (Master's module)
Dec 2017 - Jan 2018 Safepoints in OCaml
A mini-project for Modern Compiler Design (Master's module)
Sep 2017 - Dec 2017 Isabelle/HOL (Master's module)
Oct 2016 - May 2017 Coq4j (Bachelor's project)
Analysing dependencies of Coq libraries using Neo4j and igraph.
Sep 2016 Linear Algebra, Denotational Semantics (preparation)
Aug 2016 Certified Programming with Dependent Types (Adam Chlipala)
July 2016 Type-Driven Development with Idris (Edwin Brady)
June 2016 Purely Functional Data Structures (Chris Okasaki)
Mar 2016 Mori, a distributed video-editing server architecture in C++
(Bachelor's group project)
Feb 2016 Compiler Construction extensions
Nov 2015 - Feb 2016 Etch-a-sketch on YARVI (RISC-V FPGA implementation)
Oct - Nov 2015 Chat client with concurrency (Java coursework)
Sep 2015 Learn C the Hard Way (Zed Shaw)
Sep 2015 PROLOG: Programming for AI (Ivan Bratko)
Aug 2015 Java: How to Program (Deitel & Deitel)
July 2015 ML for the Working Programmer (LC Paulson)
Nov - Dec 2014 Conway's Game of Life in Java (from command-line to GUI)
Oct 2014 Standard ML coursework