Jon Sangster

Computer Programmer

  • Vancouver, BC
  • (778) 877–4682

Profile

  • Over a decade of professional programming experience, with particular knowledge in Ruby on Rails, Java, C, and agile project management.
  • Pursuing opportunities to make a significant contribution leading a small team in agile development while mentoring junior developers.

Technical Skills

Languages
Agile
  • Scrum
  • Agile Alliance “Certified Scrum Master”
  • Kanban
Database
Operating Systems
Web Servers
Version Control

Work Experience

Ballistiq Digital IncSenior Developer

2014–now
  • Developed software for a variety of high-profile clients, including Autodesk, NVIDIA, Riot Games, Luxion, and HP.

  • Created a conference management application which coordinated registration, housing, tax information, seminar and class enrollment, childcare, custom discounts, meal plans, and PDF name-tag generation for thousands of attendees.

    This was a Ruby on Rails application backed by a PostgreSQL database, with a UI implemented with a highly customized version of Active Admin. Offline processes, such as name-tag generation and email dispatch were delegated to Sidekiq Pro via Redis.

  • Architected an internal ontology server with Adobe Experience Manager to allow a large client to manage shared assets across their global platform.

  • Implemented an ontology server for a client with many departments that independently create marketing and advertising websites to act as a “single source of truth” to ensure these sites all maintain up-to-date copy and assets.

    This is a custom node.js backed by a MongoDB NoSQL database. It included custom middleware to Authenticate users against the organization's Active Directory server via SAML.

  • Adapted Shopify's storefront to sell digital—instead of physical—goods. This included a custom API server to automatically deliver product keys to end-users upon payment verification, as well as an “embedded Shopify app” to allow the client to manage their serial code inventory directly from Shopify's dashboard.

    This project required a custom “serial-code provisioner” service implemented in Ruby on Rails and backed by a MySQL database. Serial codes were delivered to end-users with Mandrill.

    Administration of the serial-code provisioner was implemented through a custom Shopify Plugin, also written in ruby. This allowed administrators to securely manage their inventory in the remote application directly from their Shopify console.

Unique LtdSenior Developer

2013–2014
  • Led a Scrum project to replace a disparate collection of legacy REST services with a unified Ruby on Rails service.

  • Implemented a service to communicate the volumetric data returned by millimetre wave scanners to that customer's profile, allowing E-Commerce partners (such as Levi's or Bloomingdale's to pre-select the garment size which fits them exactly.

  • Created an E-Commerce Wordpress plugin to enable REST access to an the automated garment-fitting service.

  • Incrementally improved legacy REST services to meet changing business requirements.

  • Developed an AngularJS extension to allow partners to embed a profile creation wizard in their own E-Commerce site, allowing their users easy access to our garment-fitting service.

NTT Data/KeaneSenior Developer

2008–2013
  • Implemented control and user-interface software so the custom hardware our client, Pason Systems, created for the operation of land-based oil derricks, including the Automatic Driller, Electronic Drilling Recorder, Enhanced Pit Volume Totalizer, Rig Display, and SideKick.

  • Created many custom, skeuomorphic UI widgets to emulate the physical equipment which our Java applications replaced.

  • Led a Scrum project to replace a simple drilling recorder with a touchscreen charting interface that supports multiple lanes and several traces per lane.

  • Developed a module for the “Automatic Driller” system to safely stop the drilling operation if the Driller fails to stop it before the Kelly drive reaches the drill floor.

  • Held the role of “Backup Client/Server & Reporting Domain Lead:” the first consultant to become a Backup Lead for one of our client's domains.

CGI Group IncConsultant

2007–2008
  • Code Support on five UNIX applications and Application Support of nine UNIX applications and one Windows application.

  • Developed a Java service to incorporate legacy telecom systems into Bell's One Bill service. This project earned a perfect 10/10 in each of the twenty categories of the Client Satisfaction Assessment Program (CSAP) report. Recognized via the Kudos program for my work on this project.

  • Involved in the local Java Special Interest Group and occasionally presented a seminar on introductory UNIX/Linux skills to newer employees.

St. Francis Xavier UniversityTechnical Support

2004–2007
  • Provided support for all forms of technology on the university campus.

  • Helped in 2005–2006 to launch the WebFX Open Source initiative, which updated all the lab computers on campus to dual-boot Linux along with Windows XP.

Open Source Contributions

ffmpeg-​filter_​graph
A RubyGem to create ffmpeg filter graphs, to facilitate complex audio/video processing on Ruby on Rails application servers.
img2pcd8544
Convert images to a format suitable for the PCD8544 LCD controller.
libsangster_​avr
A convenience library for developing projects with AVR microcontrollers.
atmega328p-​planter
A machine which automatically waters and plant and controls its growlight on a schedule.
arduino-​pong
A toy Pong “arcade machine” using an Arduino, the LCD screen from the indestructible Nokia 5110, and simple components.
gtfs_​reader
A RubyGem which provides a simple API for parsing General Transit Feed Specification (GTFS) files.
gtfs_​engine
A Rails Engine which adds a RESTful API for GTFS feeds to a Ruby on Rails host application.
jsend_​wrapper-​rails
A RubyGem for Ruby on Rails to render JSend-compliant JSON responses.
CodeMirror-​Textile
A Textile parser for CodeMirror, the in-browser code editor.
ppp
A RubyGem which generates Perfect Paper one-time passwords.

Education

  • Completed 108 credits toward a Bachelor's Degree in Computer Science.
  • Dean's List, 2006–2007
  • Summer Research Assistant of department chair, Dr. van Bommel.