I’m Angus Macdonald, a software engineer originally from Scotland, now working in New York City.
I currently work for Google in New York City (this is a personal site unrelated to my work there).
Before that I completed a PhD in Computer Science (Distributed Systems) from the University of St Andrews in Scotland, working under Prof. Alan Dearle and Dr. Graham Kirby.
Feel free to contact me using any of the links below:
|Email:||angus.d.macdonald AT gmail|
AetherWorks (2011 – 2016)
At AetherWorks, I work on AetherStore, a software-only storage product that pools the spare capacity on workstation machines provide shared storage, without requiring additional servers or cloud capacity.
On a technical level, AetherStore is an eventually consistent file system featuring conflict resolution and de-duplication. Data is replicated using a bespoke DHT, storage is managed using a distributed garbage collection algorithm, and is presented to the user as a mounted drive using a FUSE-like interface. It is designed to manage dynamic system membership and node failure including re-replication of data.
I was responsible for initial design and development of the product, and for a large percentage of code written. As the team has expanded this role has grown to encompass more management of personnel and responsibility for determining the product roadmap.
I established development standards at AetherWorks, including the introduction of Scrum, continuous integration testing practices, in-person and online code reviews, and an annual review and feedback process.
University of St Andrews (2007-2011)
I completed a PhD in distributed systems over four years at the University of St Andrews. During that time I also tutored students extensively and lectured on an introduction to Java course.
My PhD work involved the design and implementation of a distributed, fault-tolerant database system, H2O. H2O autonomically replicates data and load-balances across machines in an enterprise. This work also involved the creation of a comprehensive literature review in the area of distributed database systems.