I'm a software engineer from Scotland, with an interest in systems software and open source
software. You'll find me as
davidtwco around the internet.
I'm a member of the Rust compiler team, so my open source contributions
comprise mostly of patches to the compiler for the Rust programming language. Throughout my time
contributing, I've been a member of the non-lexical lifetimes (NLL),
async/await and diagnostics working groups and have been a
co-lead of the polymorphisation and meta working groups. My
contributions have included the
#[non_exhaustive] attribute from RFC 2008;
polymorphisation, a code-size/compile-time optimisation for reducing unnecessary monomorphisation;
and Split DWARF support.
I've also contributed to other open source projects, such as NixOS - a reproducible Linux distribution - and Zulip - a real-time chat application with threading. You can find an exhaustive list of my open source contributions on GitHub.
All of my personal infrastructure is maintained declaratively using Nix, which you can find
davidtwco/veritas. Configuration for my desktops, servers, laptops, dotfiles,
packages and this website are built reproducibly from the veritas project.
I'm currently working on compilers and programming languages (including Rust!) at Huawei R&D in Edinburgh.
Previously, I've worked within the infrastructure team at Codeplay Software, where I was responsible for the continuous integration infrastructure and led the effort to make the core infrastructure reproducible. In addition, I was a compiler engineer on engineering projects at Codeplay where I worked with LLVM, Clang, SPIR-V and NVPTX.
You can download my curriculum vitae here.