Toronto, Ontario, Canada
I'm a software developer and computer science enthusiast 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 - Infinite Spheres
Image made with my raytracer of an infinite field of spheres reflected in another sphere with a squared torus also in the reflection. Signed distance fields were used to make the infinite field of sphere possible.
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 Highest Honors, Co-op Option
- Software Engineering Stream
- Earned a $16,000 Scholarship
- Attended the Canadian Undergraduate Technology Conference. Member of Carleton team at the CS Games 2007 and 2008. Carleton came 4th in 2008, and I won the extreme programming event.
- IBM Canada, Software Developer, Markham ON 2008 - Present
- 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.
- Interfaceware, Developer, Toronto ON 2008
- Added skinning system to web site to support low-colour systems such as VNC over a slow connection.
- Deployed and tested a virtualized Oracle RAC 10g system over 2 VMs.
- Pioneered use of jQuery to speed up cross-platform development.
- 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
- C, C++, Java, x86 Assembly (including SSE), System 390 Assembly
- Passing Familiarity, Could be up to speed within 2 weeks
- F#, VB.Net, Racket, Scheme, Haskell, Erlang, Ruby, IO, Python, MATLAB
- Soft Skills
- Fluently bilingual in French and English.
- Demonstrates resourcefulness and strong work ethic through the creation of an independent co-owned company.
- 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.
- 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.
- Yoyoing for more than 15 years. Competed in the Canadian National Return Top championship 3 years running, with a best placement of 7th overall in 2010. Judging the 2012 competition. Performed at the Chinese Night Market Toronto 2 years running. Member of both the YoYoToronto club and the University of Toronto YoYo Club.
- Programming Languages
- Member of the Toronto Lisp Users Group and Fundamentals of New Computing mailing lists. Following several programming language theory blogs including Lambda the Ultimate, Axis of Eval, and Playing With Pointers. Always have at least 5 different language environments installed at once with some nice cross pollination, like using Scheme paradigms in MATLAB.
- 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.