I am a results-oriented professional software developer with almost a
decade of experience in senior and team-lead positions on a variety of
web applications and services. I am seeking a position that will allow
me to both leverage my strengths and experience as well as pull out of
my comfort zone with new challenges.
- Experience
-
Software Consultant 2018-2019
-
Implemented 3rd party integrations with Quickbooks and provincial
health claims portal to automate invoice data entry, saving about
a man-week of effort monthly.
VersaPay
Toronto, ON, Remote
Senior Software Engineer 2012-2018
-
Maintained and developed new features for a funds-transfer web
application as the business has pivoted to a B2B Accounts
Receivable platform accepting millions in monthly payments from
tens of thousands of businesses.
-
Maintained and enhanced (solo) a PCI Level 1 certified credit card
payments gateway with connections to 7 merchant processors in 3
countries and currencies, as well as ACH/EFT bank payment
processing for 10+ banks.
-
Participated in annual PCI audits as our engineering contact.
Assessed and implemented mitigations for potential security
vulnerabilities brought up by a static code analysis vendor.
-
Led core infrastructure upgrades, from Rails 2.x on Ruby 1.9 to
Rails 3.2 on Ruby 2.3.
Software Developer 2008-2012
-
Designed and led development of a dating platform in Merb that
powered 12 individual sites with over 2 million users; later, with
a specific focus on the billing section of the platform to support
5 payment gateways and process tens of thousands of monthly
purchases.
-
Planned and initiated a rearchitecting to a microservices
architecture, extracting components as service apps with the goal
of reducing effort required for a port to Rails 3.
-
Developed a patch for DataMapper and later ActiveRecord to route
read queries to a read-only database replica, allowing us to
cheaply scale our databases horizontally for more performance.
Quarter Turn Toronto, ON
Software Craftsman 2007-2008
- Co-founded Quarter Turn, a software consulting company.
-
Worked on a number of Rails-based web applications using agile
methodologies.
Software Developer 2003-2007
-
Spent two years maintaining a 100kloc PHP application, including
addition of new modules.
-
Successfully designed, developed and launched two internal pre-1.0
Ruby on Rails applications.
-
Led development on a Rails-based adserving system handling over
200m impressions per month; was responsible for both backend and
user-facing components; tackled scalability issues resulting in a
near-100x throughput increase.
- Education
-
University of Victoria 2003
Bachelor of Science, Computer Science
- Skills
-
-
Veteran Ruby web developer, strong programming foundations, able
to pick up new languages and environments quickly.
-
12 years Rails experience, as well as production deploys of
Sinatra, Merb+DataMapper, and static websites generated by Jekyll
and Middleman.
- Strong knowledge of OO design.
-
Strong technical web design skills, including XHTML, CSS, and
JavaScript.
-
Knowledge of agile development practices, especially test-driven
development and working in small frequent iterations.
-
Strong knowledge of both Linux and MacOS as a software development
environment.
-
Experience with server provisioning technologies using Chef and
Ansible, as well as limited exposure to the AWS ecosystem.
- Selected Code Samples
-
-
Advent of Code solutions, Ruby and others
Algorithmic data analysis puzzles, now a yearly tradition. Ruby
solutions since inception, selected problems in other languages.
-
Puzzle Game Solver, Ruby, ImageMagick, Tesseract
Automated solver for a Sudoku-like game, using an OCR library to
determine board state, a constraint-propagation library to
generate the solution, and work-in-progress mouse/keyboard
automation tools to actively solve the puzzle in the application
window.
-
Data Aggregation & Mapping, Ruby, Sinatra, SQLite, Heroku, Google Maps API
A scratch-my-own-itch project to map local real estate listings,
filter by size (beds/baths) and price, and flag rejected
properties so they wouldn't reappear on future database updates.
-
Credit Card Processor Gem, Ruby, Savon
SOAP wrapper for a a credit card processor using Savon, with a
few overrides to work around some quirks of their specific SOAP
implementation. Used by a private ActiveMerchant gateway at a
previous employer.
-
Now Playing,
Javascript, React, D3.js
Movie times aggregator, as an initial project learning React.
- Hobbies
-
I blog infrequently at
http://blog.tracefunc.com/.
When not enjoying time with my family, I occupy my time with
strategy board games, video games, 3d printing, basic robotics, and
curling.
- References
- Available on request