September 2, 2013

Projects

LED Digital Signage:
Large LED BillboardI co-founded a startup and successfully developed and brought to market a modular LED display product. I was personally responsible for the design and implementation of the PIC32 microcontroller firmware (written in C) and an embedded Linux control system (in a mixture of Python and C++), and developed custom low-level Ethernet protocols, self healing network topologies and low latency, bandwidth optimized video stream distribution. The system also included a cloud-based management platform, real time device diagnostics and advanced, in-field image calibration techniques.

Dynamic Binary Translation:
Since summer 2013 I have been contributing to a project that brings the runtime dynamic binary translation ideas of the DynamoRIO framework into the Linux kernel, by instrumenting dynamic modules at load-time with customizable policies such as data-flow driven behavioural watchpoints and data structure access auditing. Written in a mixture of C++ and x86-64/AMD64 assembly, it dynamically rewrites and augments machine code running inside a live running kernel!

Model-driven Software Development:
During the 2008-2009 academic year I worked with a group of professors and graduate students at the University of Toronto developing a Eclipse tool framework in Java for manipulating and merging software artefact models. We used the concepts of pushouts and pullbacks from category theory to help identify common model features and create correspondences during the merge process.

Web-based Amateur Football Statistics:
In the early 2000s I developed a sport statistics web application for a large, Ontario-based amateur football league. Using a combination of PHP, MySQL and C, this system served thousands of players and their fans successfully for several years.

Leave a Reply