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