Vancouver, BC
Languages: TypeScript, Node.js, Python, Java, R
Databases: Postgres, Redshift, Cassandra, Mysql, Redis, Elasticsearch
DevOps: Docker, Terraform, Logstash, Datadog, StatsD, AWS CLI
Technical Lead at Thrive Health from December 2017 - Present
- Managed up to 6 direct reports on the Platform team responsible for building the foundational infrastructure
- Ran retrospective meetings and 5 whys sessions to help the team evolve its processes
- Load tested our APIs and built a caching layer to ensure the Canada COVID-19 app could scale to millions of users
- Helped set the strategic direction of the company as a member of the leadership team
- Architected the access control lists to ensure the privacy of health data and prevent data breaches
- Built a scalable event tracking system that kept data in Canada and gave insights to public health officials
Technical Lead at Clir Renewables from April 2017 - November 2017
- Led for 3 software developers creating a wind farm analysis tool with a Python backend and React frontend
- Responsible for architecting the system, mentoring junior developers, and writing code
- Setup infrastructure including a build server, user tracking, and secret management
- Restructured the AWS deployment, defining security groups, IAM roles, and VPC subnets
- Migrated time-series data from Elasticsearch into Redshift for reliability and speed
Principal Software Engineer at Pulse Energy (Acquired by EnerNOC then Yardi) from September 2008 - April 2017
- Created a time-series database in Java using Cassandra to store terabytes of smart meter data
- Designed a tariff engine in node.js for modeling energy costs
- Patented an algorithm for forecasting energy use based on historical conditions and weather
- Wrote Chef recipes to provision our cloud infrastructure in EC2
- Setup a monitoring stack using Logstash, Kibana, Graphite, Statsd, and a custom Graphiti-fork
- Optimized code for other teams (in Java, Python, Ruby, and R) to reduce memory footprints and speed up execution
- Mentored junior developers on our team, teaching them fundamentals in code design and software life-cycles
- Handled technical recruiting for new developers, including managing the coding challenge
Software Developer at Business Objects (Acquired by SAP) from July 2006 - September 2008
- Developed server-side components in C++ and Java
- Feature owner of licensing technology and Java container server
- Quickly learned new codebases and helped with features that were behind schedule
Programmer Analyst (Co-op) at Morgan Stanley from August - December 2005
- Worked for the Credit Derivative Swap (CDS) team
- Created C# GUI component to view historical data
- Integrated a third-party distributed cache to store real-time market data
Software Design Engineer in Test (Co-op) at Microsoft from January - April 2005
- Created quality measurement tool for MSN Newsbot that revealed several weaknesses
- Improved Newsbot’s algorithm to return more relevant content for Canadian users
Bachelor of Software Engineering at University of Waterloo from September 2001 - June 2006
- Dean's Honours List
- Valedictorian