I am a Research Software
Engineer, and currently run
the RESIDE research
software group within
the MRC
Centre for Global Infectious Disease Analysis. I am excited
about ways to break down the barriers between domain experts and
code and help people do more science per line of code written.
Previously, I have:
Writing
Occasionally, I blog
on my group's
blog, or contribute
to rOpenSci's
blog. This post
from 2014 in particular remains very relevant. Academic
writing
via Google
Scholar, though I've not actively published for many years
now.
I occasionally tweet
as @rgfitzjohn
and am on Mastodon
at @richfitz@fosstodon.org.
Previously, I wrote a teaching blog at
with Daniel Falster
called nicercode.
Projects
My current professional work can be found on
the RESIDE
pages, and my software can be found
on my GitHub page, as
well as the
organisations mrc-ide, vimc, jameel-institute, bacpop,
and reside-ic.
Currently I am working on:
-
The next iteration
of orderly,
our continually-reproducible reporting framework
(as outpack
and orderly2),
which will be more powerful, flexible, and polylingual
with first
class Python support.
-
Our framework for dynamical modelling built around
the odin
DSL, dust
simulation engine
and mcstate
inference package; currently we are implementing automatic
differentiation. Current work is in the
odin2,
dust2 and
monty
packages.
-
Friendly approaches to high-throughput and high-performance
computing,
via hipercow.
-
Designing robust approaches to deploy research software to the web.
Active projects that are more personal include
-
redux,
the most fully featured Redis
client for R.
-
stevedore,
a complete docker client for
R, automatically generated from the docker OpenAPI
specification.
-
thor,
a very fast key-value store for R, implemented
using lmdb.
Very occasionally, I code outside of work:
-
rainbowrite
- more colourful replacements to message
and cat, inspired
by lolcat.
-
stegasaur
- encode arbitrary R objects in cat pictures.
-
rfiglet
- a complete, pure-R, implementation of
the FIGlet
system for fancy terminal writing.
I am a huge fan of Advent of
Code, and we use this to expose Centre researchers to
programming concepts each December:
Previous projects include:
- diversitree - a large suite of phylogenetic methods, developed and implemented during my PhD. No longer in active development but still in wide use
- geiger, arbutus - packages with Matt Pennell for comparative phylogenetics.
- plant, a framework for eco-evolutionary modelling with Daniel Falster, still under development in his lab
- TRAMPR, a package for analysing T-RFLP data in fungal communities before the advent of next generation sequencing. My first publicly released R package, and still in use after more than 15 years.
Talks
I'm always interested in speaking opportunities, especially
around reproducibility, software processes in multidisciplinary
teams or directly on any of the projects above -
please get in touch.
Some representative talks:
- 2024 RSECon24 - slides (video forthcoming on the Society of Research Software Engineering YouTube channel)
-
A talk
about orderly2
(the first since we rewrote the tool) focussing on what
it means to the reproducible and why I think our
thinking about it has become stuck in unproductive
areas.
- 2023 Research Software Engineering in Data and AI workshop, Warwick University/Alan Turing Institute - slides
- Our approach to handling ever changing data streams
during the UK COVID-19 response, creating reproducible
pipelines with automatic provenance tracking.
- 2022 RSLondonSE - slides
- An overview of the technologies used in the UK COVID-19
response, from the simulation and inference tools to our
approach to data management and reproducibility.
-
2020 Research Software Engineer Stories Podcast -
recording
-
In the relatively quiet period after the first wave of
the COVID-19 pandemic, I talked with Peter Schmidt about
the roles that software and software engineering had
played in the response so far, and the role of best
practices as they applied in different parts of the
process.
-
2020 Bioinformatics
London (b2b with Matt Dray) - slides
-
On the eve of the COVID-19 pandemic, my last in person
talk for over two years with an ominous graph showing
growth in infection numbers. The next iteration of my
reproducibility/orderly
talk.
-
2019 rOpenSci Community call on testing - slides, recording and resources
- A tutorial-style presentation and discussion on best use
of software testing for those new to the idea, or those who
struggle to effectively integrate it into their
workflows.
-
2019 UseR! Toulouse
- slides, video
-
Description of odin, focusing on solving complex systems
of differential equations. At this point we were pleased
with the system, but had no idea how it would change over
the next 12 months!
- 2019 RSLondonSE - slides
-
Challenges in reproducible research, and how simple
workflows can help. My first attempt at describing the
problem
that orderly
tries to solve.
- 2018 Oxford R User Group - slides
- A discussion of three projects where exploiting
peculiarities of the R language (such as “non standard
evaluation”) can build highly expressive user
interfaces. Discusses cyphr, odin
and stevedore.
- 2014 Sydney Users of R Forum (SURF) - slides
- My first public attempt to outline practical issues
facing researchers trying to work in a reproducible way,
outlining the tools they might use and challenges they might
face.
- 2013 ESEB keynote - slides