Taavi Burns — Software Developer

Toronto, ON
E-mail: taavi dot burns at gmail

Summary

Experienced in Python web services, systems-level C, relational databases, relational databases, concurrent systems, refactoring, Linux, OS X, git, mercurial, and Oxford commas. I also sing, and knit continental.

Career History

Points

Software Developer (aka Defect Poacher and Futurist) from 2013-current.

  • Worked on the Loyalty Commerce Platform (LCP) team, building a new JSON REST API to access Points' broad selection of loyalty partners.
  • The LCP is developed with Python, Flask, CouchDB (with JavaScript views), NGINX, Apache httpd, mod_wsgi, and haproxy. It is implemented using a microservice architecture.
  • Redesigned packaging and deployment scripts to improve build times by caching earlier phases of the build, and bundling the production code with the deployment script itself (as a Python-runnable zipfile containing all dependencies, i.e. "python artifacts.zip deploy").
  • Implemented methods for doing schema migrations to data in CouchDB, and ways to avoid downtime due to view re-indexing.
  • Used splunk to produce report data from logged request traffic.

FreshBooks

Software Developer (aka Defect Poacher and Futurist) from 2008-2013.

  • Co-architected and built a greenfield, agile project to produce an event-based web service using Python, Flask, SQLAlchemy, and MySQL. The project delivered on its goals on-time over 8 months (business details are confidential).
  • Orchestrated and implemented massive database schema migrations over the course of 10 months involving millions of tables with zero downtime and no data loss. Using the database as intended drastically improved performance and reduced hardware costs. See Using triggers to un-shatter a schema for details.
  • Converted all customer textual data from Windows-1252 plus HTML entities into UTF-8 with no downtime. Data translation issues were detected early and corrected. Using UTF-8 eliminated workarounds for API consumers and surprise transformation of user input. See UTF-8 is here! for details about the user experience.
  • Worked on the Evolve team to improve reliability, performance, and functionality of our internal Python web service which provides One True Way to access customer data. For example:
    • Improved Evolve's average response time by 30% by using metaclasses with DTOs while maintaining a clean, declarative style. To see graphs of the performance impact, see my Server Log Analysis with pandas video starting around 15:40.

IBM Toronto Software Lab

Software Developer from 2003-2007.

Co-op student Software Developer for 8 months in 2002.

  • Updated testcases, identified bugs, and completed a performance project for DB2 working in the Backup and Restore team.

Precise Software Technologies

Co-op student Software Developer for 8 months in 2001.

  • Worked on an embedded real-time operating system (MQX), particularly device-side USB and Bluetooth.

Technical Community Contributions

Fun Projects

Education

Other Interests

Buzzword Bingo

C, ClearCase, CVS, embedded systems, Flask, git, HTML, HTTP, HTTPS, internet, JavaScript, JSON, Linux, Mercurial, PHP, Pylons, Pyramid, Python, redmine, reStrutured Text, SPDY, SVN, trac, virtual memory, web, web service, XML.

If you're read this far, thanks! :)

Last Updated 2014-10-29.