tom@tomflanagan.ca // 650.924.2456 // LinkedIn

Tom Flanagan

Technology

Algorithms & data structures, systems programming, performance measurement, analysis, and optimization

Experience

Zoox, Inc
Foster City, CA
 
 
Staff Software Engineer // Jun 2016 - Current

Systems Engineering and Integration team
Responsible for owning all aspects of Zoox's Linux soft-real-time compute systems performance measurement and validation.

  • Designed comprehensive performance instrumentation systems for measuring and debugging real-time performance, deployed on all production systems with minimal overhead
  • Utilized Linux perf, ebpf, ftrace, cgroups, and custom userspace tracing and latency measurement tools
  • Developed and maintained open- and closed-loop hardware test frameworks
  • Authored many internal tools for investigating and debugging issues on production vehicles
  • Performed root cause analysis and fixes on systems performance and correctness bugs

Google, Inc
Mountain View, CA
 
 
Software Engineer III // Jan 2015 - June 2016

Worked on Google Maps for Android app, improving performance and stability

  • Improved app startup time by 30%
  • Maintained and improved performance testing infrastructure

SimplyHired.com
Sunnyvale, CA
Senior Software Engineer // July 2013 - Jan 2015

Worked on the Partner Platform team on a full stack launch of SimplyHired's new hosted job board solution.

  • Responsible for designing and developing new application from inception
  • Developed in MySQL, Python (Django), Apache, HTML, CSS & JavaScript
  • Created partner and admin portals to manage partner accounts
  • Created fully user-customizable hosted job board, allowing partners to apply their own branding, themes, and styles
  • Integrated with legacy systems and migrated existing partners
  • Utilized SCRUM and Agile software development lifecycle processes

Pagebites, Inc.
imo.im
Palo Alto, CA
Software Engineer // June 2010 - Sept 2012

imo.im is an instant messenger aggregation service that allows you to sign in to many different chat networks. It includes clients for web and mobile devices.

  • Headed redesign of the main imo.im web chat application in JavaScript
  • Created tools to compile/minify web assets including sprites and external libraries
  • Researched and implemented best practices for improving website performance; tested and debugged application in all major browsers including IE7 and mobile
  • Implemented Steam chat service backend, integrating with the imo API
  • Maintained Python back-end chat infrastructure, improving stability and reliability
  • Refactored APIs and services, performed security audits and improvements
  • Created tools to monitor server performance and logs, facilitating debugging and data analysis
  • Developed an internal dashboard to manage user accounts and track reports of harassment, spam and scams on the imo network
  • Screened and interviewed candidates at all stages of hiring process

Software Engineering Intern // Summer 2009

Developed a multi-user, realtime collaborative whiteboard for imo.im as an intern project, using Python, JavaScript, AJAX, and new HTML5 features.

University of Calgary
Artificial Intelligence Lab
Professor Jörg Denzinger
Research Assistant // Summer 2007, Summer 2008
  • Designed and implemented a distributed marine simulation environment for testing unmanned surface vehicle (USV) policies in the context of harbour security
  • USV behaviours were tested using genetic evolution and particle swarm optimization AI techniques
  • Developed using Python, .NET, PostgreSQL, GIS, DirectX9, and OpenGL
  • Wrote and published two academic papers detailing the system and results of the particle swarm optimization research
  • Awarded two NSERC Undergraduate Student Research Awards for this work

Education

University of Calgary // Calgary, Alberta, Canada

B.Sc. First Class Honours in Computer Science, Minor in Pure Mathematics // Class of 2010

4.0 Computer Science GPA / 3.85 Overall GPA
Honours Thesis: Realtime Photon Mapping in the GPU

Personal Projects
& Open Source

github.com/knio
CarHack

Automotive data-logging and analysis application. Interfaces with a car's ECUs and other sensors. Reverse engineered controller outputs for the Nissan 370Z. Records and displays in real-time extremely high precision telemetry for racing analysis.

SSHSec

A web service that tests the security of SSH servers, alerting about common vulnerabilities and configuration problems.

Dominate

Python library for creating and manipulating HTML documents using an elegant, concise DOM API.

pynmea2

Python library for parsing and generating NMEA 0183 messages, the communication protocol used by GPS and marine navigation devices.

dominate.js

JavaScript library for creating an manipulating DOM/HTML objects.

everdb

A python embedded database engine with efficient on-disk data structures.

plok

JavaScript library for interactive and real-time graphs of time-series data.

SoylentSoft

Website to help students easily find and schedule their classes at the University of Calgary.

eRacer

C++ & Python multiplayer 3D racing game based on F-Zero.

UltiGPX

Java desktop application for viewing and editing GPX log files, with integration of Google Maps and Google Earth.

Competitions

Competed in many programming competitions, individually and on teams. These competitions involve being given a set of algorithm problems with limited time (1 to 5 hours) to solve as many as possible.

2007
  • World Finalist // ACM International Collegiate Programming Contest
2007
  • First Place // Rocky Mountain ACM ICPC Region
2007, 2008
  • First Place // Alberta Collegiate Programming Contest
2008, 2009
  • First Place // Calgary Collegiate Programming Contest

Scholarships

University of Calgary
2007
  • University of Calgary Undergraduate Merit Award // Academic merit
2007, 2008, 2009
  • Undergraduate Student Research Award // Natural Sciences and Engineering Research Council of Canada (NSERC USRA)
2007, 2008
  • Jason Lang Scholarship Academic achievement, Alberta scholarship programs
2009
  • Lockhart Family Computer Science Award // Top student in 4th year computer science, academic merit and community involvement
2009
  • W. Swan Memorial Book Prize // Top student in 4th year computer science, GPA
2009
  • Data Processing Management Association Prize // Top student in 4th year computer science, academic merit

Publications

C. Thornton, T. Flanagan, J. Denzinger, and J.E. Boyd. Evaluating Goal Ordering Structures for Testing Harbour Security Policies. IEEE CISDA 2011, April 11-15, pp. 1-8, Paris, France

T. Flanagan, C. Thornton, and J. Denzinger. Testing harbour patrol and interception policies using particle-swarm-based learning of cooperative behavior. IEEE CISDA 2009, July 8-10, pp. 1-8, Ottawa, Canada

Volunteering

2008, 2009 VP Academic of the Computer Science Undergraduate Society (CSUS)

  • Served on the Department of Computer Science Undergraduate Affairs Committee
  • Served on the Department of Computer Science Hiring Committee
  • Assisted in organizing student events throughout the year

Interests

Rock climbing, Photography, Motorsports