Adam Stuart Richardson
I'm a Canadian software developer, previously an intern at Stripe and at Shopify. I study Computer Science at the University of Waterloo. I'm interested in internship opportunities from September of 2017 onwards - feel free to peruse my resume.
Engineering Intern at Stripe
(San Francisco, CA), January 9th - April 28th, 2017
- Built a custom MapReduce pipeline to calculate database storage density across primary key range with a novel dynamic programming algorithm, thereby enabling perfectly optimal shard splits
- Developed and tested a data pipeline in Scala to ascertain correctness between database replica sets, based on heuristic analysis of periodic disk snapshots
- Performed shard splits via a custom Ruby sharding layer across all merchant databases, tripling the database fleet, thereby avoiding disk exhaustion, improving efficiency and safety of routine maintenance tasks, and improving performance of API methods for end users
- Implemented quality-of-life tooling improvements to various MongoDB maintenance tasks as part of a larger database tooling framework, lowering replication lag by an order of magnitude
Software Developer Intern at Shopify
(Ottawa, ON, Canada), January 11th - August 28th, 2016
- Designed, implemented, and deployed a custom caching layer for NGINX software load balancers in Lua, mitigating malicious clients and processing tens of thousands of requests per second
- Built a custom software packaging system designed for mission-critical software, enabling the production and deployment of Ubuntu packages from a clean-room environment
- Refactored and developed large-scale distributed HTTP load testing software, capable of generating hundreds of thousands of requests per second, in Go
- Developed an open-source Heroku package to allow easy integration with Shopify’s encrypted configuration management solution
Things I've Built
- goword - A real-time multiplayer Boggle clone, with instaneous scoring, written in Go with WebSockets and HTML5. (Demo)
- ploy - Work in progress. A garbage-collected Scheme interpreter, written in C++, with a basic standard library written in Scheme.
- dipoll - toy Discord bot, written in Python, capable of running polls in public channels by counting emoji reactions.
- brainrack - An interpreter for an esoteric language, written in the Racket dialect of Scheme.
- bfni - A compiler, targetting x86 assembly language and written in the same dialect, for an esoteric language.
I am currently enrolled in Bachelor of Computer Science, Co-op at the University of Waterloo (Waterloo, ON, Canada), with graduation projected for 2019. I take particular academic interest in the development of compilers and interpreters, in algorithms and data structures, and in discrete mathematics.
I graduated from Colonel By High School (Ottawa, ON, Canada) in 2014, and I was a recipient of the Silver Medal award for achieving an academic average greater than 90%.
I have been taking part in competitive programming events since early high school. In grades 11 and 12, I competed at Canada's national high school Olympiad, an exclusive event to which only the top 24 competitors in the country are invited. I have continued to compete frequently since high school in various online competitions, with the eventual goal of achieving success in the collegiate ACM-ICPC competitions.
Outside of tech, I am an avid competitive runner. I am a member of the University of Waterloo track and cross-country varsity teams; I was named the Most Valuable Player for the 2015-2016 cross-country season, and in early 2016 I ran 8:24.69 over 3000m on the track (thereby becoming Waterloo's 6th fastest athlete over that distance, all-time). In early summer 2016, I won the National Capital Race Weekend 5K road race, surpassing a field of nearly 8000 athletes.