David Wood

Software Engineer

I'm an Software Engineering Undergraduate at the University of Glasgow and I'm currently an Integrations Engineer at Codeplay.

Want to know more? Have a look around and get in touch.


Codeplay Software - September 2017

Integrations Engineer

Side Project - July 2017

Serde Serializer and Deserializer for ASN1

University Degree - September 2015

Software Engineering MSc


Internship at Codeplay Software - May 2017 to September 2017

Intern Build Engineer at Codeplay

Development Environment Configuration


University Group Project - January 2017 to March 2017


Consulting with West Dunbartonshire Leisure - December 2016 to February 2017

West Dunbartonshire Leisure 10K

Side Project - July 2016 to November 2016


Side Project - March 2016 to May 2016

Relay Discord Bot

Personal Website - March 2017 to April 2017


Internship with Polaroid Eyewear - April 2015 to July 2015

Sports Warehouse Performance Tracker and Inventory Manager

Consulting with Polaroid Eyewear - June 2014 to March 2015


Nuffield Placement at Glasgow Calidonian University - May 2014 to July 2014


Nuffield Placement at Glasgow Caledonian University - May 2014 to July 2014

Non-Photorealistic Rendering

Consulting with Polaroid Eyewear - January 2016 to May 2016

Polaroid 10K

Open Source Contributions

rust-lang/rust February 2018

Fixes NLL: error from URL crate

rust-lang/rust February 2018

MIR-borrowck: augmented assignment causes duplicate errors

rust-lang/rust January 2018

Fix off-by-one spans in MIR borrowck errors

rust-lang/rust December 2017

MIR borrowck: no "move occurs because X is not Copy error"

rust-lang/rust December 2017

MIR borrowck: error message confuses locals and temporaries

rust-lang/rust December 2017

MIR-borrowck: immutable unique closure upvars can be mutated

rust-lang/rust November 2017

MIR-borrowck: emit "foo does not live long enough" instead of borrow errors

rust-lang/rust November 2017

RFC 2008: Future-proofing enums/structs with #[non_exhaustive] attribute

rodjek/vim-puppet July 2017

Allowing square brackets within string interpolation.

RobertSmith/Orchestrate.Net April 2017

POST Functionality

rust-lang/rust January 2017

NLL: bad error message when converting anonymous lifetime to 'static

2factorauth/twofactorauth November 2016

Added Roberts Space Industries.

pyeve/eve June 2015

Added option to use a different authorization database.



Written on 17th December 2017, with 4475 words (approx reading time of 15 min) by David Wood.

There's one project that I've been working on for well over a year alongside everything else - my dotfiles. Dotfiles are repositories where you keep track of your configuration - .bashrc, .zshrc, .vimrc, that sort of thing. In this writing, I'll go over how I manage my dotfiles and some of the key configurations that I find useful in bash, zsh,...

ArchLinux on the Windows Subsystem for Linux

Written on 14th December 2017, with 1537 words (approx reading time of 6 min) by David Wood.

I've been using Bash for Windows as my primary development environment (with Vim and tmux) for around a year or so now. One of my major issues with it has been being stuck on Ubuntu 16.04 - in order to get more recent versions of packages I've had to build them myself or wait. It's also stopped me from experimenting with some interesting distributions such as

Building a portfolio with Gulp and Metalsmith

Written on 27th August 2017, with 1605 words (approx reading time of 6 min) by David Wood.

Welcome to my new website! It long overdue, but I've finally gotten around to rebuilding my portfolio and personal website. This writing should be an introduction to how I've approached building my site and the technologies I've used - it won't be an exhaustive guide by any means, but if you've been considering using Metalsmith and stumbled upon this, it might clear up some...