Toronto, Ontario, Canada
I'm a software developer from Toronto.
I enjoy hacking on various projects, learning new languages, and playing with new technologies. This is a summary of myself.
1 - Red Sphere Reflection
Image made with my raytracer of a single red sphere reflecting in a myriad of others arranged using a noise function on a grid. Scene rendering was sped up with a bounding volume heirarchy.
2 - Galatron
Splash for the most popular game I've worked on, Galatron.
3 - Path Tracer
Image made with lower settings on my path tracer to show the spill of coloured light, like any good global illumination solution.
4 - Programming Languages
Part of a larger program written in Racket. This is some basic stream building that I wrote myself to see how it works. Excellent PLT practice.
5 - Text-Mode Demo
Screenshot from my second text-mode demo. This one shows off a nice palette and some notes made in 3dsmax and rasterized in software in real time.
- Carleton University, Ottawa ON 2003 - 2008
- Bachelor of Computer Science, Co-op Option
- Software Engineering Stream
- Graduated with Highest Honors
- Big Viking Games, Senior Software Deverloper, Platform and Tools Team, Toronto ON 2013 - Present
- ThorCC Engine and Editor
- Part of from-scratch writing of new engine in C++ that compiles to WASM, OSX, and Windows.
- Wrote the input system, undo/redo system, and font rendering.
- Helped ship first ThorCC title and BVG's first WASM game.
- YoWorld Mobile Companion App
- Spearheaded development of BVG's first Unity game.
- Wrote modules to manage connections to both legacy SmartfoxPro server and modern REST servers.
- Used React.js to create many designer tools.
- Optimized load times for slow mobile connections. Final download size of 4.1MB.
- Launched on Facebook Instant Games, Kik, Facebook Ads, and Open Web.
- Handled more than 2000 concurrent on launch day and 200,000 MAU throughout it's lifetime.
- SuperSpin Slots
- Created a new game server from scratch, evaluating all possible languages and frameworks.
- Created a payment infrastructure system for Facebook, iTunes, PayPal, Google Play, and Boku.
- Launced a game on Facebook, iOS, and the open web simultaneously.
- Tiny Kingdoms
- Evolved a DOM based rendering system to a canvas based system.
- IBM Canada, Software Developer, Markham ON 2008 - 2013
- Static Compilation
- Implement several hundred built-in functions for C/C++, COBOL, and PL/I.
- Migrated compiler to 64-bit z/OS
- Helped creation of new C/C++ compiler of zLinux.
- JIT Compilation
- Researched and implemented several unique optimizations.
- Analyzed performance of benchmarks to create optimization plan.
- Great amounts of experience in trace jit debugging, including interop with virtual machine.
- In charge of build team's build and test system.
- Experience in using a JIT to accelerate binary translation and virtual machine emulation.
- Interfaceware, Developer, Toronto ON 2008
- Added skinning system to web site to support low-colour systems such as VNC over a slow connection.
- Pioneered use of jQuery to speed up cross-platform development.
- MIGS 2014
- HTML5 Server Evolution, part of Practical HTML5 for Mobile
- Computer Skills
- Experience in performance analysis, investigation, and development using tools like Intel VTune, OProfile, and VPA.
- Strong Linux and Unix command line experience along with Vim.
- Programming Languages
- Full Proficiency
- PowerPC Assembly, x86 Assembly, D, Perl, Bash, CSS
- Some Familiarity
- F#, Idris, Scheme, Haskell, Erlang, Ruby, Python
- Soft Skills
- Fluently bilingual in French and English.
- Creative and analytical abilities, able to multitask and handle varied assignments.
- Ability to work either independently or in a team situation, in a workplace environment or remotely.
- Yoyoing for more than 20 years. Board member of the Canadian Yo-Yo Association. Competed in the Canadian National Return Top championship 3 years running, with a best placement of 7th overall in 2010. Judging the 2012 and 2014 national competitions, and the 2014 and 2015 Easter Canadian Regional competition. Performed at the Chinese Night Market Toronto 3 years running.
- Written my own raytracer from scratch that supports spheres, planes, and boxes being solved directly. Planes, spheres, boxes, tori, tori with different distance metrics, and metaballs, along with domain repetition, translations, and rotation are supported as signed distance fields. Basic bounding volume heirarchies using spheres are also supported. Path tracing support is being worked on and has some preliminary results. SSE is used heavily throughout the vector, colour, and intersection code. OpenMP is also used for parallelization support.
- Text-Mode Demo Competition
- Twice taken part in the Text-Mode Demo Competition with self-written demos. One included real-time raytracing, and the other included a scrath-built rasterizer capable of several thousand triangles per frame. Great experience was gained with both graphics work and the combination of graphics, music, and design.