Jonathan Deakin


I am problem solver, motivated by curiosity and a desire to learn more. I am interested in the intersection of maths and computers, particularly in finding ways to improve our everyday lives with data. This led me complete a PhD in applied maths and to my current role as a Software Developer at 4Sight Imaging, where I work in a full stack agile team delivering desktop and web applications. I have experience with C++, Julia, JavaScript, Python and SQL and I am always interested in learning new languages and technologies. I am a generalist at heart and have worked on projects in scientific computing, on embedded devices and customer facing web applications.


I have a PhD in applied mathematics from the University of Manchester supervised by Professor Matthias Heil and Professor Andrew Hazel (see below for details about project). While studying I also took courses in deep neural networks and dimensionality reduction.

Previously I studied Maths at Jesus College, Cambridge. The courses I took included numerical analysis, fluid dynamics, optimization and control, statistical modelling, mathematical biology, computational coursework using MATLAB,



The title of my thesis was "Optimal PML transformations for the Helmholtz equation" and can be found at the University of Manchester repository.

During my PhD I studied a specific kind of PML transformation which we called optimal transformations. I discovered that these optimal transformations can exhibit rip like discontinuities (see left). I then developed a technique for using such transformations in a finite element scheme to simulate infinite domains. I also discovered a class of axisymmetric transformations which can be considered the inverse of another class of functions called Hankel functions, and then studied their properties. Julia implementations of these two transformations can be found at OptimalPMLTransformations.jl and InverseHankelFunction.jl.

I am an active contributor to oomph-lib, a C++ library for solving partial differential equations using the finite element method. I also overhauled the styling of the website. Algorithms developed during my PhD have also been implemented in C++ and are currently being integrated into oomph-lib (progress can be found on GitHub).

During my PhD I co-created MultipleScattering.jl, which is a Julia library for simulating the acoustic scattering from multiple particles (see example on right). The library uses multiple dispatch instead of object oriented principles to build general machinery which could be easily extended to different numbers of dimensions, different equations (like the Poisson equation or linear elasticity), particle shapes and sources.

I am a co-founder and engineer at, where we build knowledge graphs. For an example, we developed a search engine for AI researchers (this has since closed). More technical details can be found in our pre-print on arXiv explaining the mathematical underpinnings and system architecture of the search engine.


The idea of a small, programmable device is as appealing to me as it seems to be to everybody else (see IoT and Raspberry Pi). I started to play around with Arduinos during a summer project at and I've been hooked ever since.

I have lead the software development of a data-logger and pass-through device. The data logger was used to monitor water flow for a UK gym chain. The pass-through device passes messages from Ethernet to RS232, then sends back any replies. The unit can be configured by a webpage, reports its presence over Control4 SDDP and we have also developed support for cloud control such as Alexa. It has been in production for several years and is installed in hundreds of commercial TVs.

Manchester SIAM-IMA Student Chapter

As the Webmaster for the chapter, it was my responsibility to maintain and update the website. This included redesigning the interface of the website, as the old interface had become dated and unsuitable for mobiles.

As a member of the committee, it was also my responsibility to organise conferences:

I also ran a short seminar/workshop on basic web design skills for students at The University of Manchester. The content of the workshop can be found on GitHub.

Mondohack III: Mondonate

Inspired by our interest in transparent and effective charity, Charlie Whittaker and I attended Mondohack III. Organised by the startup bank Monzo (previously called Mondo), it was an invitation to play with their API. Our idea was that when a user donated money to a charity, we would detect this and give them information on what the donation would acheive. Thanks to the admirable efforts by charities like the Against Malaria Foundation, we could then provide a donor with an update on its true impact right in their bank statement. Charity can seem distant, and as a result donors may give little thought to the actual impact. Tools like this could close the gap and encourage donors to consider their impact, perhaps choosing higher impact charities.

Several great people joined the team to contribute, and the product we presented (mainly written by Joe O'Brien) won a runner up prize. The code can be found on the Mondonate team GitHub.