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.

Open Source

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.

Personal Infrastructure

All of my personal infrastructure is maintained declaratively using Nix, which you can find at 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.


If you’d like to chat, send me a message on on Telegram, on WeChat (see QR code in the sidebar), or you can shoot me an email at hello@davidtw.co (my PGP key is [0x9F53F154][keybase], if you need it).