Hi there!
I'm an engineer from 🇨🇦 living in San Francisco, where I work on design tools at Figma.
I'm a uWaterloo SoftEng alumnus, and a past member of the Khan Academy engineering team.
Here are some things I've written:
- Reverse Engineering Instruments’ File Format June 13, 2018
- Color: From Hexcodes to Eyeballs April 3, 2018
- Depression & Recovery May 31, 2017
- Simulating the Physical World May 1, 2017
- Bezier Curves from the Ground Up December 29, 2016
- Bending the Dynamic vs Static Language Tradeoff October 26, 2016
- Fluid Simulation (with WebGL demo) August 5, 2016
- Ray Marching and Signed Distance Functions July 15, 2016
- Metaballs and WebGL July 6, 2016
- Linters as Invariants February 2, 2015
- The JavaScript Packaging Problem November 29, 2014
- Metaballs and Marching Squares August 19, 2014
- Starting to Build Things April 27, 2014
- A Map of Everywhere My Family Has Ever Been January 3, 2014
- A Technological Guide to Eurotripping November 28, 2013
- Rubber Ducky Logs September 29, 2013
- Too DRY - The Grep Test July 12, 2013
- Something Out of Nothing May 5, 2013
- Working Remotely September 14, 2012
- What I did at Khan Academy August 22, 2012
- Khan Academy Computer Science: Instant Gratification and Bragging Rights August 14, 2012
- My Mercurial Setup and Workflow at Khan Academy July 11, 2012
- An Argument for Mutable Local History May 25, 2012
- Declarative Programming and Autosubscribe April 16, 2012
- Chaining, or Why You Should Stop Returning Void February 1, 2012
- Immersion and Schadenfreude December 30, 2011
- Name your Arguments! November 28, 2011
- The Fifteen Puzzle - The Algorithm October 16, 2011
- Meet Doctor Jekyll October 3, 2011
- Complex Asynchronous Queries in JavaScript June 25, 2011
- Hacker Cup Qualification Round - Solutions January 12, 2011
- Mechanize and UWAce Downloader November 17, 2010
- DFAs and Graphviz DOT October 16, 2010
- Make your life easier with GNU Make. September 30, 2010
- Javascript Dependency Loading â jquery.atreq August 14, 2010
- JSONimal - Elegant DOM Contruction with jQuery July 16, 2010
- Flex/Actionscript 3: Debug Output to Console July 7, 2010
- Commandline Tips and Tricks June 29, 2010
- Google Codejam 2010 Solutions - Qualification May 11, 2010
- AJAX Method Callbacks and Omegle Voyeur Update April 19, 2010
- Learn Source Control with Git March 9, 2010
- Jobmine Improved (Greasemonkey & jQuery) February 5, 2010
- Tools: ideone, RegExr, jitouch 2, open, ditaa January 7, 2010
- UWAngel-CLI December 27, 2009
- Manual Sorting December 12, 2009
- Lambda Functions December 6, 2009
- Game of Life December 1, 2009
- Omegle Voyeur - Multiple Connections November 14, 2009
- SPOJ Problem 2: Prime Generator (PRIME1) November 12, 2009
- SPOJ Problem 1 November 8, 2009