Find me on: arXiv, GitHub, ORCiD, Stack Exchange.

## Research interests

- Data science and machine learning.
- Kernel density estimation.
- Computational p-adics.
- Galois theory and ramification theory.
- Factorization and root-finding of systems of equations.

## Papers & Reports

**Exact**,*p*-adic computation in Magma*Journal of Symbolic Computation*(accepted 2020). (Accepted PDF, arXiv, DOI)**Data Study Group Network Final Report - Woolfson Laboratory**, with several co-authors,*Alan Turing Institute*(June 2020). Workshop on predicting oligomeric protein structure from amino acid sequences. (report, DOI)**Guiding Principles for Unlocking the Workforce - What Can Mathematics Tell Us?**, with many authors,*Knowledge Transfer Network, Isaac Newton Institute & International Centre for Mathematical Sciences*(working paper, 2020). Workshop on mathematical principles for easing the COVID-19 lockdown. (homepage, PDF)**Computing the Galois group of a**,*p*-adic polynomial*Int. J. Number Theory*(2020). (overview, tables, arXiv, DOI)**3-torsion and conductor of genus 2 curves**, with T. Dokchitser,*Math. Comput.*(2018). (overview, article, arXiv)**PhD Thesis: Aspects of**,*p*-adic computation*Bristol University*(2019). (thesis)**ExactpAdics: An exact representation of**, pre-print (2018). (overview, arXiv)*p*-adic numbers**On enumerating extensions of**, pre-print (2018). (overview, arXiv)*p*-adic fields with given invariants

## Tables

## Code

: For loading and saving ARFF (Attribute Relation File Format) files.`ARFFFiles.jl`

: For handling the countries on Earth.`Countries.jl`

: Arrays supporting customized axes, such as names and labels.`CustomAxes.jl`

: Interactive plotting of millions of data points.`ShadeYourData.jl`

: Julia bindings for the edlib string alignment library.`Edlib.jl`

: Call Magma code from Julia.`MagmaCall.jl`

: Produce abbreviations using ISO 4 and the List of Word Title Abbreviations.`LTWA.jl`

: Implementation of a logarithmic number system for Julia.`LogarithmicNumbers.jl`

: Julia package to extend the integers, or any other real type, with infinity.`Infinity.jl`

(github): User-friendly package for performing p-adic computations exactly.`ExactpAdics2`

*Newer implementation, recommended.*(See the article “ExactpAdics…”.)(github): User-friendly package for performing p-adic computations exactly.`ExactpAdics`

*First implementation, generally slower than*(See the article “ExactpAdics…”.)`ExactpAdics2`

.(github): For computing the conductor of a genus 2 hyperelliptic curve. (See the article “3-torsion…”.)`Genus2Conductor`

(github): Experimental code for computing Galois groups over p-adic fields.`pAdicGaloisGroup`

(github): For computing extensions of p-adic fields. (See the article “On enumerating extensions…”.)`pAdicExtensions`

(github): Adds extra basic functionality to Magma.`MagmaUtils`

(github): For automatically generating documentation from Magma code.`magdoc`

(github): Magma language support for the Sublime text editor.`sublime-magma`

(github): Magma snippets for Sublime.`sublime-magma-snippets`

## Articles

- Given
*n*red and*n*blue points, the total monochromatic distance is less than the total bichromatic distance. (MathSE) - On computing the Galois group of a rational polynomial. (MathSE)
- When we adjoin one root of a polynomial to a field, how many other roots do we get? (MathSE)
- Counting
*p*-adic fields with certain properties. (MathOverflow) - Why a normal extension of a normal extension of a field is not normal. (MathSE)
- Trace and discriminant of a field extension are independent. (MathOverflow)
- Why algebraic numbers are a field. (MathSE)
- Minimal polynomial of
*ab*when those of*a*and*b*are known. (MathSE)

## Resume

**2020-**: Senior data scientist, Alan Turing Institiute.**2018-2020**: Heilbronn research fellow, University of Bristol.**2014-2018**: PhD mathematics, University of Bristol. Supervisor: Tim Dokchitser.**2008-2009**: Part III/MMath (Distinction), University of Cambridge.**2005-2008**: BSc mathematics (Class I), University of Cambridge.