Info for Employers

 
 

Cirriculum Vitae

Download as PDF.

M.Eng in Computer Science, Trinity College, Cambridge (2014-2018)

Projects

Work Experience

  • University of Cambridge (October 2018 - Present)
    Supervising several undergraduate courses in Computer Science.

  • Goldman Sachs (July 2018 - Present)
    Improving the design and implementation of Slang (an internal domain-specific language that serves as the interface to SecDb (Securities Database), Goldman Sachs’ internal platform for pricing and risk). As part of this, I have had the chance to use GraalVM (talk at Curry On 2019).

  • ARM (June-August, 2017)
    Formal verification of a processor component by model-checking SystemVerilog.

  • Myrtle (December, 2016)
    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.

  • Computer Laboratory, University of Cambridge (July-September, 2016)
    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.

 

Interests

A common thread throughout all of these interests is a focus on the theoretical, engineering challenges to be overcome in these fields. I consider my flexibility and curiosity for different aspects of Computer Science as my strength.

Primary Interests

  • Programming Languages
    My primary interests are in programming language semantics, compilers. I am very interested projects using strong, statically-typed languages such as Rust, Crystal, Scala Native, and Idris, as well as usual suspects like OCaml, Scala/Dotty and Haskell.
    I am also following the development of WebAssembly closely and look forward to it delivering on the promises it makes.

  • Mathematics and Formal Methods
    I am interested in how formal methods are applied to real-world engineering problems. Examples of projects I find interesting in this field include: Infer, C++ Core Guidelines, Rust, Idris and Liquid Haskell.
    I would be very interested if a project combined these methods within resource-constrained environments (for example, operating systems, embedded devices or high-performance computing).

Secondary Interests

  • Theoretical Aspects of Artificial Intelligence
    I think AI is a ridiculously sophisticated field with a lot clever algorithms, complexity theory, probability/statistics, linear algebra and calculus: I'd love to get some experience with these problems.
    I am not too interested in the "We have 'big data', let's use 'machine learning'!" approach that seems prevalent in this current hype-cycle.
    Although a field by itself, I will list Natural Language Processing here as well.

  • Distributed Systems & Web Development
    I am interested in the correctness, concurrency, data management and scaling problems here, involving both hardware and software.

  • Human-Computer Interaction
    I like design and I think user-friendliness is super important (especially considering how user-unfriendly many stong, statically-typed programming languages are). I think there are a lot of interesting problems to be solved in new interaction methods.

  • Security
    I have tremendous respect for security researchers and would be interested to see how formal methods apply to this field.

  • Graphics
    I would like to learn some basic design and animation, mainly for educational use.

Name *
Name