Doug Sparling

Doug Sparling

Winnipeg, Canada
Hire Doug
Scroll To View More
Doug Sparling

Doug Sparling

Winnipeg, Canada
Member since January 6, 2015
Doug is driven by a desire to continuously improve himself, his colleagues, and the products they build. He has almost ten years of experience between the JVM platform and Ruby, and has also worked on an Android app that now serves thousands of customers. He believes in picking the best tool for the job, has a great sense of humor, and prides himself on writing code and documentation equally well.
Doug is now available for hire
Portfolio
Experience
  • Java, 10 years
  • SQL, 9 years
  • HTML, 9 years
  • JavaScript, 8 years
  • Ruby on Rails, 5 years
  • Test-driven Development (TDD), 4 years
  • Android SDK, 2 years
  • Go, 1 year
Winnipeg, Canada
Availability
Part-time
Preferred Environment
Eclipse, Android Studio, Sublime Text, Git
The most amazing...
...tool I've ever created uses Scala's parser combinators to implement a purely functional transformation from DDL to ActiveRecord and Hibernate models.
Employment
  • Android/Back-end Developer
    MBLSFT (via Toptal)
    2015 - PRESENT
    • 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.
    Technologies: Android SDK, Go, CoffeeScript, Node.js, Protocol Buffers, SMTP, TCP
  • Consultant
    Manitoba Telecom Services (via Protegra)
    2014 - 2015
    • 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.
    Technologies: Android SDK, Node.js
  • Consultant
    Manitoba Blue Cross (via Protegra)
    2011 - 2014
    • Mentored many new staff on the effective use of Hibernate, Spring, and Java.
    • Designed and implemented rich JavaScript-driven interfaces with the help of analysts for editing and viewing complex insurance information.
    • 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.
    Technologies: Java, Hibernate, Spring, JavaScript
  • Programmer, Analyst
    Winnipeg Transit
    2006 - 2011
    • 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.
    Technologies: Ruby on Rails, J2EE, Scala, Hibernate, JMS, Swing
Experience
  • Winnipeg Transit Website (Development)
    http://winnipegtransit.com

    I was a principal developer on Winnipeg Transit's website redesign, which launched in 2009. It is built with Ruby on Rails with a Java back-end, and displays real-time schedule information to hundreds of thousands of transit customers.

  • MTS MyAccount Android App (Development)
    https://play.google.com/store/apps/details?id=ca.mts.myaccount&hl=en

    I was one of two developers on the small team that built the Android version of this app for MTS, a telecommunications company. It allows customers to view and manage their account, pay bills, monitor data usage on their devices, and more. It has received a 4.5/5 rating so far.

  • Full Text Search of Dialogues with Apache Lucene: A Tutorial (Publication)
    Apache Lucene is a powerful Java library used for implementing full-text search on a corpus of text. With its wide array of configuration options and customizability, it is possible to tune Apache Lucene specifically to the corpus at hand - improving both search quality and query capability. This article gives us a glimpse of the simplicity and ease of customization of the Apache Lucene analysis pipeline.
  • Doug is a mentor in the Toptal Global Mentor’s Program. This program is a partnership between Toptal and General Assembly to provide high quality mentorship for students from minority and low income backgrounds who are looking to begin their careers as professional software engineers. Doug shows commitment to diversity in tech by mentoring a General Assembly student every week for a year, covering everything from coding tips and tricks to advice on making it in the industry.
Skills
  • Languages
    Java, Haml, SQL, CoffeeScript, JavaScript, Ruby, PHP, CSS, Go, HTML, Scala, SCSS
  • Frameworks
    Hibernate, Ruby on Rails, Spring MVC, Mocha, Express, Apache Struts, Android SDK
  • Libraries/APIs
    jQuery, Q promises, Apache Lucene, Retrofit, Node.js, Reactive Extensions, Underscore.js, JMS, Swing, React.js
  • Tools
    Git, SVN, Jenkins, Maven, Gradle, Apache, Gulp.js, Ant
  • Paradigms
    Continuous Integration, REST, Concurrent Programming, Agile Software Development, Test-driven Development (TDD), Socket programming, Functional programming
  • Platforms
    Android, Heroku, Windows, Linux
  • Storage
    MySQL, Oracle, PostgreSQL
  • Misc
    JSP, SSL, Database Design, Protocol Buffers, TCP, API Design, Cocoon, CMS, Cryptography, Jetty
Education
  • Bachelor's degree in Computer Science, Philosophy
    University of Manitoba - Winnipeg, Canada
    2002 - 2007
I really like this profile
Share it with others