Professional Experience
Clio, Toronto/Burnaby — Sr. Developer, Data Migrations
November 2023 — PRESENT
Member of the Data Imports team, maintaining data migration tooling and collaborating with internal customer service teams. Technologies used include Ruby on Rails, TypeScript, and Python.
- Collaborated on delivering a new ElectronJS Windows/Mac app within 9 months, achieving >150% usage and adoption targets.
- Led MVP implementation of a data migration tool to evaluate customer adoption and support workflows.
- Provided TypeScript fundamentals to a team of non-JS developers.
Peerly/PrimeContact, Burlington — Staff Developer
January 2022 — November 2023
Returned to help accelerate and mentor a small team in modern development practices after a 10-year hiatus.
- Designed the first LLM feature using Google PaLM for polling data collection and question answering (Python, LangChain, Pinecone Vector DB).
- Built video transcoding and reporting microservices (Google PubSub, Python, Go).
- Mentored the team on software development practices (TDD, event-driven architecture, CI/CD).
- Migrated legacy Python services from data center to cloud.
Nulogy, Toronto — Senior Full Stack Developer, API & Platform Teams
August 2018 — December 2021
Contributed to the API team, enhancing Nulogy's Ruby on Rails monolith and implementing a data warehouse.
- Added GraphQL to Nulogy’s Ruby on Rails monolith.
- Created a third-party report ETL pipeline (TypeScript).
- Integrated Mulesoft into Nulogy’s platform and trained the integration engineering team.
FreshBooks, Toronto — Full Stack Developer
December 2015 — August 2018
Worked on accounting tools for small businesses, contributing to various exciting projects on collaborative teams.
- Planned improvements to the EmberJS application as a member of the EmberJS committee (JavaScript).
- Delivered 10+ new features on an AGILE product development team (Python, JavaScript).
- Built new Jenkins CI/CD tools as a member of the DevOps team (Jenkins, Groovy).
- Learned accounting principles while working on refactoring the accounting journal domain.
Beanfield MetroConnect, Toronto — Software Developer
April 2012 — December 2015
Part of a team building Beanfield’s in-house ERP, network provisioning, and billing tools.
- Delivered features for ISP network provisioning, sales, and CRM tools (Python, Cisco).
- Worked with hardware vendors on Wi-Fi access point management firmware for Beanfield's residential internet.
- Trained and mentored junior developers.
PrimeContact Inc., Hamilton — Technical Founder/Architect
May 2006 — April 2012
Co-founded PrimeContact, a company for political campaign services and polling. It later became Peerly, a leading platform for political messaging in North America.
- Architected electoral polling data warehouse software for Canadian and US elections (Python, PHP).
- Built a customer portal for streamlined invoicing and results delivery (Python Django).
- Created a payroll system for 250+ employees during 2009 - 2010 (MySQL, Python).