Generalist and “systems” software engineer. Experience with every part of the
software stack from the hardware up.
What follows are some of my open-source endeavors which easily come to mind:
-
JDP: A highly-available framework for continous data analyses written in
Julia- Created, maintained and operated entirely by myself (maybe not a good thing).
- Amongst other things; allows us to keep track of bugs assigned to failing
tests cases amongst millions of test results over a large testing matrix. - Lots of documentation: Home · JDP
- Presentation: JDP introduction: A distributed, data analyses framework in Juila - YouTube
- I learned Julia to write this as it seemed the best choice for the problem domain
-
BSONqs: High speed fork for BSON.jl
- Created to make loading 2M+ test results viable in JDP
-Complete rewrite of the deserialiser - Uses fancy @generated functions
- Explanation:
Generating type specific deserialisers for BSON.jl
- Created to make loading 2M+ test results viable in JDP
-
Julia: asyncmap rewrite to make debugging easier
- Ran into an issue with JDP. This would have made that easier to fix.
- PR: https://github.com/JuliaLang/julia/pull/32749
-
Linux Test Project: Mature test suite for the Linux Kernel in C
- Fuzzy-sync: A library for reproducing race-conditions fast
- Reduces the time it takes to reproduce crashes by orders of magnitude.
- Implements specialised spin-locks with added stochasticity.
- Assembly fallbacks for when atomic compiler intrinsics are missing on various architectures.
- Easy to use (atleast by kernel standards)
- Docs: https://github.com/linux-test-project/ltp/wiki/Test-Writing-Guidelines#2233-reproducing-race-condit\
ions - Code: https://github.com/linux-test-project/ltp/blob/master/include/tst_fuzzy_sync.h
- A test which uses it: https://github.com/linux-test-project/ltp/blob/master/testcases/cve/cve-2016-7117.c
- Extended Berkeley Packet Filter (eBPF) very-portable tests
- Allows us to check the sanity of eBPF in almost any environment where
the kernel supports it. - Tooling support for eBPF is immature and not widely installed, so I wrote the byte code by hand.
- Presentation: How to write eBPF byte code by hand - Part 1 - YouTube
- Allows us to check the sanity of eBPF in almost any environment where
- Various test API improvements and tests.
- Fuzzy-sync: A library for reproducing race-conditions fast
-
OpenQA: Operating System testing framework (Perl and C)
- QEMU backend rewrite
- Allows us to use the same VM snapshotting method as all the big cloud
providers, thus improving speed and reliability. Also improved code quality.
- Allows us to use the same VM snapshotting method as all the big cloud
- Serial console
- Allows us to use good-old-text to control the system-under-test instead of image
matching and typing on a emulated keyboard.
- Allows us to use good-old-text to control the system-under-test instead of image
- QEMU backend rewrite
-
rslisp: Emacs clone written in Rust
- Not sure if it solves any problem
- Has a basic elisp interpreter and can almost edit a text file.
- Code: https://github.com/richiejp/rselisp
I am looking for remote work or maybe something in Cambridge (UK) or near
Nottingham. I am open to a wide variety of roles.