- Software Development Engineer2016 - 2018Amazon Alexa
- Architected the boundary API for the Alexa Communications library in the Alexa Mobile Android application.
- Coordinated integration efforts between the Alexa Communications team, Alexa Mobile team, and the Platform Service team.
- Implemented core Calling and Messaging functionality for mobile platforms.
- Developed video calling functionality on the Echo Show and Echo Spot family of Alexa devices.
- Mobile Developer2015 - 2016Ciphr.io (MBLSFT)
Technologies: Android, BlackBerry10, Cryptography, Java, C++, QT, Golang, NodeJS, Analytics
- Trained a team of three remote developers on BB10 Cascades and implemented the Ciphr.io suite of applications for BB10.
- Extracted the crypto module from the Android app for reuse in a SMTP bridge for CiphrMail using DropWizard.
- Ported new features implemented on BB10 edition of Ciphr to Android to maintain feature parity.
- Implemented back-end changes to the Ciphr microservices to support new features and improve security of the system.
- Full-stack Senior Developer Consultant2013 - 2015Canadian Internet Registration Authority (CIRA)
- Implemented security and reliability improvements in the core .ca domain registry system.
- Ported the existing registry platform to JBoss and PostgreSQL from WebLogic and Oracle for a new hosted registry product targeting gTLDs and ccTLDs.
- Integrated keycloak into a generic registry product for a single sign-on user federation and access control.
- Participated in a core design process on a registry product to define functionality and technology stacks.
- Implemented multi-tenant database modifications and services middleware to allow for SaaS deployment of a generic registry product.
- Sole Founder, Lead Developer2011 - 2014Bear is Gaming
Technologies: Android, Windows Phone, BlackBerry, OpenGL, DirectX, REST Services, Azure
- Created a game engine, physics engine, and particle engine for a side scrolling 2D space adventure game in DirectX for Windows Phone.
- Implemented REST-based leader boards deployed to Azure and integrated into the application.
- Created a social board game application loosely based on Settlers of Catan that supported cross-platform real-time and push-based multiplayer for Windows Phone, Android, and BlackBerry 10. Achieved over 10,000 downloads on Windows Phone.
- Created Azure web services and databases to support the board game, including account registration, match making, and global game state management.
- Senior Consultant2013 - 2013Flick Software
Technologies: Android, Bluetooth, Azure, C#, ASP, D3.js, REST, Google Maps API
- Developed and integrated between Bluetooth OBD-II adapters and an Android application to track the fuel economy, speed, and odometer reading of vehicle fleets that was cross referenced with a GPS breadcrumb.
- Created a REST API on Azure to post GPS and vehicle data and store it for display in an extension to the existing web application.
- Integrated with Google Maps to display near real-time (max 5 minute delay) tracking of each vehicle's position.
- Used D3.js to create charting of vehicle statistics, showing average speed, fuel economy, and distance traveled for each vehicle in the fleet.
- Senior Technical Consultant2011 - 2013Macadamian Technologies
- Worked as lead developer on LinkedIn and Twitter social networking applications for BlackBerry 10 using QML and C++.
- Created an OData integration framework for BB10 applications to allow for two-way binding against remote REST APIs.
- Developed an early proof-of-concept application for BlackBerry Cascades alpha SDK that demonstrated how to integrate QML and OpenGL into the same UI. Presented the application during BlackBerry Jam 2012 Developer Keynote.
- Created a BB10 UX rapid prototype in Flash that was used to gather user research feedback on the future direction of the BB10 home screen and app store.
- Developed several UX enhancements to Salesforce for BB10 application.
- Helped rewrite the middleware and web application tiers for the CIRA .ca registry to support higher reliability and scalability.
- Technical Project Lead2010 - 2011BlackBerry
Technologies: BlackBerry BBOS, Java, C
- Ensured the smooth integration of Java space applications for Torch 9850/9860 devices.
- Troubleshot known integration problems and provided solutions to the appropriate teams to maintain project velocity.
- Served as primary code reviewer for critical changes to project to reduce risk that incoming changes could break functionality.
- Participated in corporate growth activities by being a technical interviewer at career fairs and for co-op placements.
- Engineering Support Developer2008 - 2010Mxi Technologies
- Provided critical development support for production clients.
- Analyzed performance and improvement activities in the database and service layers of the application. Personally reduced run time of several critical jobs by an order of magnitude or better.
- Implemented full stack slices for new features in the maintenix application, including the data model, business logic, and application UI.
- Developed an installation workflow to allow for customization of maintenix and plugins to reduce setup overhead when deploying the maintenix solution.
- Software Developer2007 - 2008Zip.ca
- Worked as a core full-stack developer on the Zip.ca website, providing a Netflix-like service within Canada. Built using ASP.NET on top of Microsoft SQL Server and IIS.
- Created internal tools to track lead conversion which integrated with WebTrends funnel analysis and incoming ad tracking.
- Built a dynamic email generation application that integrated with StrongMail to power the NHL@Zip partnership weekly newsletter.
- Worked with an outside consulting team to integrate improvements to the SEO rankings of the Zip.ca products.
- Performed analysis on performance issues and implemented fixes to improve site responsiveness and uptime.
- Software Developer2006 - 2007Pronexus, Inc.
Technologies: Eclipse Plugins, Visual Studio Plugins, Java, C, C#, VB, Wise Installer
- Created an engineering prototype as a proof of concept for an Eclipse-based version of the VBVoice IVR plugin.
- Created new features for existing Visual Studio-based VBVoice IVR development plugin.
- Built a new version of a Wise-based installer for VBVoice updates.
- Moved the team from Visual Source Safe to SVN for source control.