I do research into Programming Languages and Compilers, in particular compilation techniques involving Program Synthesis and Domain-Specific Languages.
My email address is email@example.com.
New! I will be interning with Vinod Grover at NVIDIA Research this summer, in Redmond
I sailed The Swiftsure International Yacht Race on Memorial Day Weekend, aboard Bravo Zulu. We came 28th overall in the Cape Flattery Race.
I sailed The Southern Straits Classic Yacht Race on Easter Weekend. I was aboard Amazing Grace, a C&C 40. We came 5th in the PHRF Long Course.
I have joined the CONIX Research Center.
I attended POPL 2018 in Los Angeles!
Bravo Zulu, the yacht I race on, has once again placed on the Top 25 sailboats of 2017 by 48° North magazine. This time we're 12th.
I have completed my MS in Computer Science and Engineering at the Paul G. Allen School at the University of Washington. I am staying to complete my PhD. My Technical Report is available.
I have returned to Microsoft Research for another three-month internship on the Checked C project.
I have joined Microsoft Research to do a three-month internship on the Checked C project, working with David Tarditi.
The yacht I race on, Bravo Zulu, placed 9th on the Top 25 sailboats of 2016 by 48° North magazine.
I won the Lockheed Martin Award for Software Engineering at the Young Software Engineer of the Year Awards.
I attended ICFP 2015 in Vancouver.
I completed my BSc (Hons) in Computer Science at the University of St Andrews, in Scotland. My BSc Dissertation is available.
My current research is focussed on Program Synthesis and Solver-aided Compilation. I have also worked on Programming Language design and Solver-aided techniques for circuit design. My previous work has looked at Concurrent and Distributed Systems, and Skeleton-based Parallelism techniques.
2017-2018: I'm working on solver-aided techniques for optimizing compilers.
2017: I worked at Microsoft Research on a project to make C Safer, by adding bounds checks to memory accesses. This included design of low-cost dynamic checks as well as bounds inference algorithms.
2016: I tried to use program synthesis techniques to design circuits. It kept almost working, but ultimately I gave up.
2014–2015: My Bachelor's Dissertation project was producing an Idris to Erlang compiler, and associated libraries for producing verified concurrent programs in Idris that would use Erlang VM features.
2013–2014: I worked on the Data Types team at Basho, developing novel CRDTs that were included in Riak 2.0 and later.
2012: I worked at the University of St Andrews on the ParaPhrase project to develop parallel skeleton library for Erlang.
I race most weekends throughout the year. Usually I'm competing aboard Bravo Zulu, a yacht that sails out of Seattle.
2014-2015: Henry Legg and I presented a Science and Technology news radio show, broadcasting weekly, covering recent science news and a few interviews.