Igor Naverniouk

Software Engineer / Technical Lead

abednego at gmail dot com
cell: (650)996-9735 (I prefer email)


Ph.D. in Computer Science at the University of Toronto (unfinished), focusing on approximation algorithms and combinatorial auctions. Supervisor: Dr. Avner Magen.
Master of Science in Computer Science from the University of British Columbia, specializing in stochastic algorithms for multiobjective optimization. Supervisor: Dr. Holger Hoos.
Graduated from the University of British Columbia with a B.Sc. Combined Honours in Computer Science and Mathematics.


Software Engineer / Tech Lead at Google, Inc. in Mountain View, California.
  • Android. Data collection and analytics infrastructure for Google's core apps (Search, Gmail, Calendar, Maps, Play Store, Google+, and others). I lead a medium-sized team of software engineers who work with petabytes of data from 1B+ users.
  • Google Commerce Platform. E-commerce solution for medium-to-large online retailers.
  • TV advertisement quality and auction. Designing new ad quality measures; applying machine learning models to problems in audience measurement, advertisement auctions and revenue/quality trade-offs.
  • Google Code Jam (20% time). Contest platform, problem preparation, spin-offs.
  • Other confidential projects.
Summer 2007
Software engineering intern at Google Inc. in Mountain View, California. Initial design and implementation of the Google Code Jam website.
Summer 2006
Research intern at Google Inc. in Mountain View, California. Machine learning for real-time natural language processing tasks for use in many Google products, including search and ad quality.
Summer 2005
Research assistant to Dr. John Buchanan at Electronic Arts Canada. Applying machine learning to game AI - making a game that learns strategies from expert players. This was a summer project with the goal of evaluating a number of techniques for learning strategies used by humans in a fighting game. My program was based on a neural network and was able to learn and imitate an expert player's strategy in real time.
Technical test marker (part time) for Business Objects (now part of SAP). Evaluating the coding section of the written technichal test used in the company's hiring process.
Course designer and instructor A fellow student and I designed and taught twice a Problem Solving course (CPSC490) in the Computer Science department of UBC, drawing on our experience in programming competitions.
Software Engineering Lead (part time) BioVires Solutions Inc.: Hep-CAT - a tool for Hepatitis C virus researchers to study RNA amino acid sequences, their alignment, phylogenic trees and 3D structures. Experience working on a large scale Java project and leading a small programming team.
Senior Undergraduate Teaching Assistant at UBC. Course: CPSC216. Experience preparing and teaching tutorials.


17th place team ACM International Collegiate Programming Competition World Finals in Shanghai (2nd place in North America).
Site Champions and 1st place team ACM Regional International Collegiate Programming Competition (Pacific North-West region).
NSERC Post-Graduate Scholarship.
4th place team ACM Regional International Collegiate Programming Competition (Pacific North-West region).
Site Champions and 3rd place team ACM Regional International Collegiate Programming Competition (Pacific North-West region).
UBC Computer Science Terrific TA Award for CPSC216: Program Design and Datastructures.
Site Champions and 6th place team ACM Regional International Collegiate Programming Competition (Pacific North-West region).


I regularly participate in and organize a number of programming competitions. As a result, I am familiar with a vast number of algorithmic problems from all areas of computer science. Among the thousands of people who participate in these competitions, I am consistently ranked in the top 50 worldwide. Frankly, I believe that these competitions have taught me more about computer science and programming than all of the university courses. The competitions I am referring to are TopCoder, ACM ICPC, Google Code Jam, Bytecode and others.