Career Objective

Self-motivated software developer seeking a challenging position solving problems by applying advanced programming concepts such as functional programming, learning and implementing new technologies, sharing knowledge, and working closely with a vibrant and innovative team.

Technical Skills

  • Currently working in C, C++, Java, Python, JavaScript

  • Have experience in Bash, Erlang, Haskell, JavaScript, Lisp, Lua, Perl, PHP, Prolog, Python, UnrealScript

  • Libraries/toolkits/APIs: Berkeley sockets, OpenGL, Pthreads, SDL

  • Tools: Ant, Autotools, Bcfg2, Dtrace, GCC, GDB, Git, GNU Make, Hudson, Maven, Modular Debugger, Mercurial, Subversion, Valgrind

  • Databases: DB2, MySQL, PostgreSQL, SQLite

Employment

Software Developer at OANDA (Canada) Corporation ULC

December 2009 - present

  • Rapidly learned and maintained a CruiseControl-based, test and integration system

  • Improved network robustness of the build system’s Java and Perl API’s

  • Implemented features using safe multi-threaded code

  • Successfully ported the build server system to the Hudson framework

  • Wrote a Python binding for Dtrace

  • Implemented the aggregation and data transport layers of a performance monitoring application using Dtrace, Python, and NodeJS

  • Maintained a configuration management system based on Bcfg2

  • Packaged software for easy testing and deployment

  • Participated in pair programming activities, scrums and software postmortems

  • Documented software components

  • Troubleshooted build and integration failures of a large trading system

  • Trained and encouraged other developers to take advantage of in-house tools

  • Taught co-workers to more efficiently use tools such as the Git and the Unix shell

  • Provided technical support directly to customers

  • Contributed to information sharing within the company

Linux Application and OS Developer - SOMA Networks

May 2008 - September 2009

  • Maintained the package management system

  • Communicated with upstream project developers

  • Managed the project source code repository

  • Evaluated hardware performance

  • Responsible for various OS components:

    • Designed the boot process

    • Maintained the X.Org software collection

    • Configured the kernel for custom hardware

    • Designed OS deployment procedures

    • Maintained the build system and toolchain software

  • Resolved component dependencies and version conflicts

  • Researched and integrated software into the custom OS

  • Documented systems and designs

  • Introduced new developers to the code base

Systems Technician Assistant - Richmond Hill Public Library

January 2004 - May 2008

  • Maintained workstation hardware

  • Installed and maintained GNU/Linux and Windows operating systems and applications

  • Provided technical support for patrons and staff

  • Documented procedures and systems

  • Gathered and aggregated statistics

  • Implemented an unattended Windows OS installation system

  • Automated administrative tasks with shell scripts

  • Researched and tested alternative tools

  • Increased the security and stability of public stations

Open Source Software Contributions

Pingus - http://pingus.seul.org/

Helped port to a new graphics library and improved engine design and stability

UFO: Alien Invasion - http://sourceforge.net/projects/ufoai/

Improved engine stability

Erlang Raytracer - http://plouj.com/projects/erlang-raytracer/

Wrote it from scratch

Lumiera - http://lumiera.org/

Implemented a Pthreads-based threadpool subsystem

Education

B. Sc., Computer Science - York University of Canada

September 2003 - April 2008

Interests

3D graphics, parallel computing, functional programming, logic programming, programming language theory, designing and writing video games, GNU/Linux, reading programming blogs, video editing, photography, mountain biking, inline skating