Android/Back-end Developer2015 - PRESENTMBLSFT (via Toptal)
Technologies: Android SDK, Go, CoffeeScript, Node.js, Protocol Buffers, SMTP, TCP
- Added complex features and fixed bugs in several existing Android apps. Either designed new features myself or worked with a designer supplying mockups.
- Created and documented a Node.js-based SSL server, with full integration test coverage, to push email to Android-based clients and receive email via a REST API or SMTP.
- Added broadcasts and new message notifications, and made reliability improvements to a secure instant messaging server written in Go.
- Added endpoints to a CoffeeScript and Express.js based REST API.
- Configured Atlassian Bamboo for testing and continuous delivery of various servers.
- Created and supported a Dropwizard-based PGP gateway with user key management.
- Added at-rest encryption of data to various Android apps, with secure key management.
Consultant2014 - 2015Manitoba Telecom Services (via Protegra)
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.
Consultant2011 - 2014Manitoba Blue Cross (via Protegra)
- 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, Analyst2006 - 2011Winnipeg Transit
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.