I am a newly-qualified researcher working on forms of unconventional computing, with a special interest in reversible and molecular computing. My research centers on the physics and computer science of abstract forms of these systems, whilst my future directions will expand into their practical implementation. My PhD was completed under the supervision of Gos Micklem and based in Cambridge
engines of parsimony
This project focuses on the maximum rate of computation that can be achieved by any physical computer within a given region of space and provided a given supply of power and rate of heat dissipation. In part i, we find general scaling laws independent of whether the computers are quantum or classical, and also find how these depend on whether the computers are reversible or irreversible. We also extend to the cases of very small and very large† computers. In parts ii and iii, we consider the consequences of this performance maximisation on cooperative/concurrent reversible computers from the perspectives of communication and resource sharing respectively.
part i — Limits on Computational Rates in Physical Systems — preprint
part ii — Performance Tradeoffs for Communicating Reversible Computers — preprint
part iii — Performance Tradeoffs for Reversible Computers Sharing Resources — preprint
when general relativistic effects such as gravitational collapse become important
the ℵ calculus
Inspired by the recommendation of reversible computing obtained in engines of parsimony, we developed a model of computation—the ℵ calculus—and an associated programming language—alethe—for declarative reversible computation. Being declarative, it is amenable to composition and high level programming. Other select features include automatic parallelisation, and explicit but intuitive separation of effects from 'pure' code. What we feel is most novel about ℵ is that it models the reversibility of not just the transformation of data, but also the program state itself. This makes it a good model for building physical reversible computers. In particular it is well suited for molecular implementations, and supports interaction and communication between non-local computational entities.
The ℵ Calculus — A declarative model of reversible programming with relevance to Brownian computers — preprint
Participated in the 2015 Cambridge-JIC iGEM Team under Jim Haseloff. This year saw the introduction of the Hardware Track in which we developed an open-source programmable 3D-printable microscope. Worked to develop abstraction layers to integrate microscope into a variety of hardware contexts, including an XY translation stage, and to facilitate automation. Also focused on stitching and geometry algorithms to implement the backend of a seamless panning interface. Headed Arduino workshop during outreach day to teach sixth form students C++. The team won a gold medal and received four nominations.
June–October 2013 — Freelance Programmer
Provided freelance programming help to algorithmic cryptocurrency trading enthusiasts. This mainly involved writing interfaces to the MtGox exchange API in various languages, including Java, Objective-C and VBA.NET. One client, as a result of my Objective-C work, offered a job in New York as a mobile app developer.
2010–2013 — Web Developer
Designed a company website with a consistent layout and a PHP backend. Was also tasked with maintenance and updates. Subsequently rebuilt the backend on top of a custom content management system with a bespoke WYSIWYG editor, and trained key staff in its use.
August–September 2010 — Design & Illustration
Designed and produced anniversary invitations to a high quality using Adobe Photoshop. Had regular meetings with the client to ensure the design matched the specifications.
July 2010 — Research Assistant— UCL/Mullard Space Science Laboratory, Surrey
Worked with the head of Detector Physics in the Charged Coupled Device section. Mainly assisted in the calibration of an infrared weather camera by designing a custom IR LED apparatus to provide reference points which were then used to create a projection map using a computational model written in IDL. Also prepared some space-based optical lenses.