Michael Warkentin
Operations Engineer
Download PDF
mwarkentin@gmail.com
@mwarkentin
(647) 880-0174
Profile
I'm an Operations Engineer by way of Developer in Toronto with 10 years of experience building web apps. I love building fast, usable software - and enabling other developers to do the same. In my spare time I enjoy playing soccer and rocking out with my band.
Technical
- Ansible
- Python
- AWS
- Django
- Javascript
- HTML / CSS
- Docker
- Vagrant
- Packer
- Hubot
- ELK stack
- Linux / bash
Experience
2013-PresentSenior Operations Engineer, Wave Accounting
- Leading a migration of Wave's apps to containers from VMs to improve reliability and reduce costs by 40-60%
- Increased payments revenue 40% by building and deploying three Level 1 PCI compliant applications to AWS
- Enabled easy provisioning of new environments and changes to existing environments in AWS by building an abstraction layer around Cloudformation using the Troposphere Python library
- Reduced application downtime by building self-healing components using Auto Scaling Groups and Multi-AZ deployments
- Sped up time to deploy various server types by building a multi-stage AMI pipeline using Packer, Ansible, and Jenkins
- Provided on-call support including communication with internal stakeholders while assessing and resolving high-pressure downtime incidents
- Improved developer onboarding by standardizing the development environment using Vagrant and Ansible
- Built strong relationships with engineers from our hosting provider while working to improve and scale Wave's operations capabilies
- Improved security by finding vulnerabilities (XSS, server configuration, etc.) in several apps during internal penetration tests
- Built and operated a Python application to scan and scrub potential credit card data across hundreds of servers and hundreds of millions of database rows
- Mentored both junior and non-technical employees to the point where they were shipping code into production
2011-2013Software Developer, Wave Accounting
- Worked with multiple teams to deliver new features and maintain existing functionality across multiple applications
- Increased deployments from once every three weeks to many per day by automating deployments across our services, introducing feature flags, and improving code review processes
- Implemented ChatOps by adding wabot (hubot) which has been used more than 10,000 times across the company
- Built a deployment library on top of Fabric (Python) used to deploy 14 distinct services
- Helped design and build the Wave Accounting API which now powers both mobile and web apps
- Eliminated most causes of planned downtime by introducing pt-online-schema-change and multi-step data migrations
- Introduced company-wide "release" emails where new features, a/b test results, etc. could be celebrated
- Organized the inaugural Wave Hack Days event
2010-2011Web Developer, Arcestra
- Prototyped, designed, and developed the user interface for a major redesign of the web app
- Designed landing pages for Google AdWords campaign in support of the marketing team
- Reduced page load time by ~50% by implementing JS/CSS minimization and concatenation
2005-2010Senior UI Developer, Casero / Radialpoint / Amdocs
- Led design and front-end development for a team building a new customer portal for Rogers as part of a project to unify all of Rogers' systems
- Helped set up version control, bug tracking, and project management software at the beginning of the project
Side Projects
2013-PresentShrinkray (https://shrinkray.io)
- One-click optimization for images in your Github repos
- Integrates with multiple Github APIs
2011-PresentConcerts by me (http://concertsby.me)
- Enter your favorite bands and where you live to get email notifications when they announce a show nearby
- Uses the BandsInTown API to search for announcements on a daily basis
2008-PresentCome Together (http://come-together.ca)
- An online video hosting site for important events like weddings and funerals
- Part owner responsible for all technical aspects of site operation
Open Source