Summary of Qualifications
- 23 years of programming experience, actively working in Python, Javascript, and Java, in HTML/CSS web applications, servers, and command-line tools.
- Experience with the modern software development environment (version control, continuous integration, automated testing, etc.) in Mac, Linux, and Windows environments.
- Strong interest in Machine Intelligence, Natural-Language Processing, and Human-Computer Interaction.
- Bilingual in English and French.
Experience
-
Apple
San Jose, California
Speech Web Applications Engineer
October 2015 - Present (Full-Time)
- Created (or contributed to) multiple tools in their entirety from server (using Python and Java), to UI (using Typescript, HTML/CSS and Angular).
- Developed an API server and UI to store the Siri lexicon and support linguist review of tens of millions of words and their pronunciations, aiding collaboration between teams.
- Built the server component of a privacy-protecting research and distributed ML platform used by hundreds of millions of devices, reducing model iteration time from months to days.
-
Primal
Kitchener, Ontario
Software Developer
March 2015 - October 2015 (Full-Time)
- Contributed features and bug fixes on several Scala applications using natural-language processing and machine-learning techniques to measure document similarity, retrieve similar content, and delight the user with the experience.
- Collaborated with co-workers in an Agile programming environment with an emphasis on well-designed, peer-reviewed technical solutions, and fully-tested and thoroughly-reviewed code.
-
TrendRadius
Kitchener, Ontario
Software & Machine Learning Developer
July 2014 - March 2015 (Full-Time)
- Developed on a web-based application using Node.js, Express, and MongoDB, a front-end Javascript application based on Backbone.js and Twitter Bootstrap, and a backend processing application written in Java.
- Created intelligent sentiment analysis tool in Java using OpenNLP and SentiWordNet, and feed-forward neural network to suggest matches across text-based content collections.
- Led efforts to ensure Continuous Integration and Deployment across products, set up Jenkins CI server and testing using Mocha.js and JUnit, consolidated build processes using NPM and Maven.
-
Triangulation Device
Waterloo, Ontario
App Developer and Programmer
August 2014 - October 2015 (Part-Time)
- Developed an Android client for a participatory sound art project, led by Professor Jessica Thompson, University of Waterloo.
- Used a variety of sensors (including microphone, GPS, accelerometer) to provide input to interface with an existing PureData backend.
- Created re-usable Bluetooth IPC layer and messaging library for data transfer between two Android clients.
-
Canopy Labs
Toronto, Ontario
Data-Mining & Machine Learning Developer
April 2013 - August 2013 (Full-Time)
- Fixed bugs and added features to the full stack of the Canopy Labs customer analytics platform throughout a series of inter-related applications.
- Worked in a variety of environments (both new and familiar) including Python, PHP, C++, JavaScript, HTML5/CSS, R, shell scripting on both Mac and Linux operating systems.
- Worked with a variety of software development tools including Git, FogBugz, JIRA, Scons, and Selenium.
-
Square
San Francisco, California
Android Developer
Jan 2012 – April 2012 (Full Time)
Sept 2012 – Dec 2012 (Full Time)
- Helped develop and build features, and identify and fix bugs across both Square's Wallet and Register Android applications.
- Coded across the entirety of the application, from layout files and UI to helper libraries to backend logic, home-screen app widgets and more.
- Contributed to maintaining software quality via tests using Android testing frameworks Robolectric and Robotium.
- Worked primarily on OS X using IntelliJ IDEA, along with git and both ant and maven for building.
Education
-
Georgia Institute of Technology
Atlanta, Georgia (online)
Masters of Science in Computer Science
September 2018 – December 2021 (expected)
Relevant Courses
- Deep Learning – Learning representations and classifying from just raw data.
- Machine Learning – Supervised, unsupervised, and reinforcement learning algorithms.
- Knowledge-Based AI – AI that learns and reasons based on knowledge representations.
- Reinforcement Learning – Learning based on experience via delayed rewards.
-
University of Waterloo
Waterloo, Ontario
Bachelor of Applied Sciences in Systems Design Engineering
September 2008 – June 2014
Relevant Courses
- Pattern Recognition – Methods for classifying and intepreting measured data in groups.
- Machine Intelligence – Intelligent systems, artificial intelligence techniques.
- Simulating Neurobiological Systems – Neural computation, modelling techniques.
- Control Systems – Controls engineering, systems theory, PID contorl and action.
- Data Structures & Algorithms – Data structure and algorithm characteristics and use.