- Android/Back-end DeveloperMBLSFT (via Toptal)2015 - PRESENT
Technologies: Android SDK, Go, CoffeeScript, Node.js, Protocol Buffers, SMTP, TCP
- Added new features and fixed bugs in several Android security apps. Added UI elements from textual descriptions and/or mockups.
- Created and documented a Node.js-based secure socket server to push email to Android-based clients.
- Added broadcast functionality to an instant messaging server written in Go to support new features in Android clients.
- Added endpoints to a CoffeeScript and Express.js based REST API.
- Created an integration test suite in CoffeeScript to aid in regression testing of server components.
- Created a MySQL database to enable storage of undelivered push emails.
- Created a Node.js-based SMTP relay to either deliver push messages in real-time to Android clients, or forward to an off-the-shelf email server based on account settings.
- ConsultantManitoba Telecom Services (via Protegra)2014 - 2015
Technologies: Android SDK, Node.js
- Built an Android app for a local telecom to show customers their data usage, bills, and notifications, to enable bill payments, and more.
- Implemented several asynchronous REST calls using Retrofit, including multi-level caching of results, an offline mode, and sophisticated error handling.
- Used Node.js to mock client web services for testing purposes.
- Wrote a detailed developers guide for hand-off to the application maintenance team.
- Executed and wrote test cases for a variety of Android phones and coordinated fixes with QA.
- ConsultantManitoba Blue Cross (via Protegra)2011 - 2014
- Mentored many new staff on the effective use of Hibernate, Spring, and Java.
- Helped design and develop a JSON REST web service to provide data from an ODS.
- Built batch processes to perform billing, exporting to legacy systems, and letter printing.
- Aided in the creation and extension of common utility libraries for internal use by dozens of projects and developers.
- Created and delivered presentations on functional programming, best practices, design patterns, and test-driven development.
- Programmer, AnalystWinnipeg Transit2006 - 2011
Technologies: Ruby on Rails, J2EE, Scala, Hibernate, JMS, Swing
- Added new features to a Swing application to allow transit controllers to monitor real-time locations of GPS-enabled buses, create and view incident reports, and communicate with bus operators.
- Designed, implemented, and supported an Oracle-based ODS containing transit service information, supplemented by an in-memory store of real-time data.
- Architected and helped with the implementation of a Rails-based website redesign to deliver real-time service information to customers.
- Helped create an integration REST web service using Java and Cocoon. Developed a Ruby gem for consuming the service from internal Rails apps.
- Introduced continuous integration with Jenkins, artifact management with Nexus, simplified building and deployment with Maven, and version control with Git.
- Pushed for the introduction of Ruby on Rails to the organization and succeeded. Trained existing Java developers for the transition.