I started programming back in grade six when I stumbled upon a how-to-build-your-own-website book in a public library. Back then, all I had was Notepad and IE6 so all I could make were simple HTML websites with fancy dropdown menus. I later transitioned to PHP and WordPress in high school and did some freelance work for my teachers.
My favourite aspect of programming and ultimately what made me decide to pursue this as a career was the joy I get when I see the monitor change every time I modify my code.
Interesting stuff I've done in school:
- Contributed to the SPA frontend for a medical procedure editor using Backbone and Marionette
- Wrote a ray tracer such as refractions, bounded volume hierarchy optimization, depth of field, soft shadows, texture and bump mapping, etc. (July 2015)
- Investigated the feasiblity of using RSA vs. ECDSA signatures on mobile devices (Aug 2014)
- Wrote an OS kernel for a Cortex M3 board (Mar 2014)
- Wrote a MIPS compiler and assembler for a subset of C (Nov 2012)
- Built a 2D scrolling shooter game with C# and XNA (June 2011)
- Served as my high school's Yearbook Editor-in-Chief (2010-2011)
Internships (co-ops) during my undergrad:During my undergrad, I've alternated between four months of school and four months of internships. This allowed me to gain real-world experience and to apply the theoretical concepts learned in class. To see my responsibilities and full work history, please download my resume (PDF).
- Rocscience (Jan 2015 - Apr 2015)
- Lookout (May 2014 - Aug 2014)
- IBM (Sept 2013 - Dec 2013)
- 500px (Jan 2013 - Apr 2013)
- Pilot Interactive (May 2012 - Aug 2012)
I sometimes blog about the interesting stuff I encounter in life:
- Delayed Synchronous UI Updates
- Finally, A Ray Tracer!
- If Programmers Were Hired Like Programmers
- Adventures of Writing an OS Kernel from Scratch on a Cortex M3 Board
- From "Dammit I'm not getting a 100" to "50 is good enough"
- 2010 Canadian Computing Competition results
- 2010 Canadian Computing Competition