Flow Foundation
I am currently a Staff Engineer on the Core Protocol team at the Flow Foundation. Some highlights from my 5 years on the team:
- The Cruise Control system, which uses a distributed PID Controller to control the rate at which the consensus algorithm progresses. This provides more accurate timing information to smart contracts and ensures important protocol events happen at consistent target wall-clock times, which makes life easier for us humans.
- The Jolteon consensus algorithm, which extends HotStuff with an active timeout mechanism. This reduces "time-to-finality"—an important latency metric—by about 30% and makes recovery from many kinds of failures occur much faster and without human intervention. I wrote an article with more details.
- The epoch transition system, which allows node operators to join and leave the network at specified intervals. This includes a Distributed Key Generation (DKG) protocol, which is run to produce a secure source of randomness for each epoch.
- The Collection Node software, which ingests transactions to the network. These nodes are partitioned into clusters, which each run an independent consensus instance to ingest a portion of inbound transactions. Increasing the number of clusters enables horizontal scaling of transaction ingestion.
If any of that sounds interesting to you, we're hiring!
UBC
In 2023, I was the Sessional Lecturer for the Algorithms & Data Structures course in the Master of Data Science program at UBC. This involved a series of 90-minute lectures and lab sessions, creating assessments, and coordinating a team of teaching assistants.
Dapper Labs
I joined the founding team at Dapper Labs, which was spun off from Axiom Zen in 2018. There I led the Dapper Wallet API team (and wrote an article and gave a talk detailing the design), before joining the Flow team to build the initial production version of the network. In 2020, we launched Flow Mainnet alongside NBA Top Shot.
Axiom Zen
In 2017, I interned at Axiom Zen. I spent a couple of months working on Toby—a delightful tab manager for Chrome—then joined the small team "putting cats on the blockchain" . I stayed on part-time through my final year of university to continue developing the CryptoKitties smart contracts, and was part of the group that shipped the beta at ETHWaterloo.
I guess people like cats. Cryptokitties defined the ERC721 standard and coined the term "NFT". When it launched on Ethereum Mainnet, it accounted for up to 15% of all transaction volume; the extra load increased transaction fees by about 100x. Our experience with these scalability challenges eventually led to our decision to build Flow, which is designed in part to scale without compromising on what had made Ethereum an interesting platform for us to explore in 2018.
UBC Launch Pad
Launch Pad is a student-run software engineering club. I joined the year the club was founded, worked with several project teams, and later joined the leadership team.
I'm certainly biased but if you're a UBC student interested in a career in software engineering, I highly recommend it! It's a great way to learn, build resume-worthy projects, and meet people.
Miscellany
Dr. Shepherd
In 2024, my fiancée was midway through medical clerkship. She noticed that the chief resident (a specialized medical professional) begrudgingly spent hours every month making on-call schedules by hand, instead of practicing medicine. This struck us both as a jarring mis-allocation of human effort, so we made Dr. Shepherd. It's a free web app that creates schedules compliant with constraints common in medical teams, using linear optimization.
Cat Ownership in the 21st Century
In 2018, I gave a presentation at TEDxUBC about my experience creating and releasing CryptoKitties.