David M. Robertson
Senior Software Engineer
I'm a senior software engineer specialising in distributed systems and concurrency, with 5 years' experience in the telecommunications industry.
I was previously employed by Element to work on Matrix, an open-source, decentralised E2EE messaging protocol. I was part of the team developing Synapse and operating its largest deployment: the flagship, Matrix.org. I also worked on the sliding sync proxy, in particular rapidly making it production-ready for Element X's release. I particularly enjoyed our book club. In 2022/23 I lead it through Designing Data-Intensive Applications. It was a lot of effort, but very rewarding.
Before that, I worked at StarLeaf on their B2B video conferencing backend.
I'm most experienced in Python (4 years' commercial experience), C++17 (2 years) and Go (1 year), though I'm not tied to any particular language or ecosystem. It'd be nice to have an excuse to work with Rust, a Lisp, or a functional language.
Personal projects
I occasionally tinker on programming projects in my spare time. Some highlights include:- Contributions to the Python typing ecosystem
- I contributed some small stub fixes to typeshed, fixed a tricky problem in mypy-zope, and wrote the annotations for pynacl. If you'd like help getting annotations into your project, please get in touch!
- Make a Lisp
- An interpreter for Joel Martin's
mal
language, based on his guide. - Error correction demo
- A standalone webpage which visually demonstrates different kinds of forward error correction using an image of the user's choice.
- thompson
- The software I wrote during my research, to calculate in the Thompson family of groups. It was good for testing ideas, validating calculations and especially good at generating illustrations for my thesis.
Mathematics
In my previous life, I was a researcher in geometric group theory, supervised by Dr. Andrew Duncan and Prof. Sarah Rees. I was interested in:
- Decision problems in group theory
- The extended family of Thompson-like groups
- Automata theory and formal languages
- The Hanna Neumann conjecture (now theorem) and its generalisations
My thesis Conjugacy and centralisers in Thompson's group T was accepted in It extends the work of Francesco Matucci in his PhD thesis by
- adapting his "stair algorithm" from F to T, and
- completing his analysis of centralisers in T.
There's a more friendly explanation available here.
As part of my research, I wrote a package called thompson to perform computations in these groups. It's not the fastest or most efficient tool out there—but it's good enough for testing conjectures. Indeed, it was robust enough to spot a technical error in a preprint! I worked with the authors to fix this before publication proper in
- The power conjugacy problem in Higman-Thompson groups (arχiv).
- with Nathan Barker and Andrew Duncan.
Talks
I ended up giving a variety of talks as a student. Here are some of the highlights.
- The joy of sets.
- A half-hour accessible postgraduate talk, to give a flavour of how sets can be used as a foundation for mathematics.
- On centralisers in Thompson's group T.
- A presentation of my thesis's main result, with an introduction to the relevant background and a sketch of its proof.
- Introduction to Linux.
- Notes for other postgrad students to get used to Linux. Intended as a guide and a reference, giving students the confidence to use a terminal-only environment. See also the demo files referred to in the notes.
- A spotter's guide to fractals.
- A half-hour accessible postgraduate talk discussing fractals, trying to explain why Mandelbrot found them so engaging.