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.
Contributing to open source is a lot of fun and I love doing it - I mostly contribute 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.
I love investing in things that will pay off in the long-term, so I’ve maintained a dotfiles repository for years. The most recent manifestation of this is
veritas, 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.