Andrew Top

www.AndrewTop.com

Contact Information
aabtop@gmail.com
(415) 347-6309




Technical Skills

  • Expert knowledge of C++. Comfortable and familiar with C++11 and many advanced Boost components.
  • Excellent working knowledge of Python in many different problem domains (i.e. WSGI, SCONS, NumPy/SciPy).
  • Other languages: MATLAB, Java, HTML, PHP, Lisp
  • Tools: vi, Emacs, gcc, Apache, Eclipse, Microsoft Visual Studio, MySQL
  • Libraries: POSIX sockets, OpenGL, DirectX, Qt, Pthreads, CUDA, OpenCL
  • Build systems: CMake, SCONS, Makefiles, GNU build system
  • Version control: Client and server experience with Perforce, Subversion, Mercurial, CVS and Git
  • Operating systems: Windows and Unix
  • Concepts: Task-based and data parallelism, networking, large-scale software systems, program profiling

Work Experience

Google Inc.

Software Engineer (November 2012 - Now)

  • Designed/Implemented OpenGL graphics stack for YouTube's Chrome-based XBox One and WiiU application platform.
  • Designed/implemented debug aiding systems.
  • Investigated stability issues on the XBox One and greatly reduced memory pressure in order to quell them.

Next Level Games (NLG)

Programmer (January 2005 - April 2005), (September 2005 - December 2005), (May 2007 - 2009)

  • Dramatically improved the framerate in Punch-Out!! by utilizing the Wii's locked cache resources.
  • Augmented silhouette algorithm to greatly improve appearance of cartoon character rendering in Punch-Out!!.
  • Designed and implemented a networking library on top of the Wii's networking API in order to provide truly non-blocking asynchronous calls.
  • Architected the gameplay structures and networking system in the Xbox Live Arcade game, Ticket to Ride. The game's networking model was client-server based, with support for server migration if the host drops.
  • Interviewed many potential future co-op students to fill the role of software developer.

NVIDIA

Software Engineer (May 2006 – August 2006)

  • Developed driver code for NVIDIA's GoForce products.
  • Implemented power-saving functionality to disable chip features while they are not being used.
  • Implemented system to record low-level communication the driver makes with hardware. The startup process was recorded and its playback enabled quick display of a splash screen on device bootup.

Sun Microsystems Inc.

Software Developer (September 2003 - December 2003) (May 2004 - August 2004)

  • Developed functionality for Sun's Enterprise Learning Platform web application under Enterprise JavaBeans.
  • Developed tools in Perl to automatically generate graphs and reports based on data queried from Sun's bug database.  These enabled managers to make better decisions regarding bugs.

Academia

MSc in Computing Science at the Medical Image Analysis Lab of Simon Fraser University (SFU) (2009-2012)

  • Supervisors
  • I was supervised by Dr. Ghassan Hamarneh of SFU and Dr. Rafeef Abugharbieh of the University of British Columbia (UBC).

  • Publications
    1. Andrew Top, Ghassan Hamarneh, and Rafeef Abugharbieh. Active Learning for Interactive 3D Image Segmentation. In Medical Image Computing and Computer-Assisted Intervention (MICCAI), volume 6893, pages 603-610, 2011.
    2. Andrew Top, Ghassan Hamarneh, and Rafeef Abugharbieh. Spotlight: Automated Confidence-based User Guidance for Increasing Efficiency in Interactive 3D Image Segmentation. In Medical Image Computing and Computer-Assisted Intervention Workshop on Medical Computer Vision (MICCAI MCV), pages 204-213, 2010.

    [1] was a single-track oral presentation at the Medical Image Computing and Computer Assisted Intervention (MICCAI) conference.

  • Awards
  • Won the Western Association of Graduate Schools (WAGS) 2013 Innovation in Technology award for my thesis.

  • TurtleSeg
  • I developed an interactive 3D image segmentation tool called TurtleSeg (http://www.TurtleSeg.org). Since going public in February 2011, it has been downloaded all around the world by research institutions, hospitals and businesses. TurtleSeg is a proprietary software owned by Oxipita Inc.

  • GPA: 4.33 / 4.33

BMath in Computer Science from the University of Waterloo (2002 - 2007)

  • Average grade among CS/Math courses: 88%

Personal Projects

  • (2008) Dynamic 3D Scene Graphs Created a proof of concept implementation of an dynamic 3D scene graph system. It allows for 3D scene graphs composed of objects of vastly different scales, and loops are allowed (i.e. a node of the scene graph may feature itself as a child). Implementation includes a creation tool and viewer tool. I wrote an article about this work that was published on GameDev.net (Link).
  • (2006) [School Project] Real-time operating system + Train Controlling Application Created an x86 real-time operating system. On top of the OS, I successfully created a train controlling application which managed multiple trains navigating around a real-life model train track, while avoiding collisions.
  • (2006) [School Project] Virtual Foosball Created a 3d video game of foosball, called Virtual Foosball. Game features include ball physics, networked multiplayer games and instant replays. (Link).
  • (2005) Marching Tetrahedrons Demo Created a screensaver which implements the Marching Tetrahedrons algorithm with post-processing involving mesh simplification and mesh subdivision (Link).
  • More projects can be found here: http://www.AndrewTop.com/Projects.

Interests

  • Snowboarding
  • Swimming
  • Hiking
  • Computer/console games