I’m David, 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 regular contributor to rustc, the compiler for the Rust programming language (as a compiler team contributor, a stepping stone to full compiler team membership). 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 and polymorphisation, a code-size/compile-time optimisation for reducing unnecessary monomorphisation.
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.
Reproducibility is one of my core values, evidenced by my investment in reproducible personal infrastructure -
veritas is my personal mono-repo which contains the declarative configuration for all of my desktops, servers and laptops - including dotfiles, packages and this website!
I work within the infrastructure team at Codeplay Software, where I’m responsible for the continuous integration infrastructure and lead the effort to make the core infrastructure reproducible. In addition, I’ve been a compiler engineer on engineering projects at Codeplay where I’ve worked with LLVM, Clang, SPIR-V and NVPTX. You can download my curriculum vitae here.