Summary
Ever since I was a child I've been absorbed in computer science. I enjoy designing and evolving large software systems. I have experience in a wide variety of problem domains, but I am particularly passionate about 2d/3d graphics, embedded systems, and developer tools. I enjoy exploring a hard problem and the satisfaction that comes with solving it.
Technical Skills
-
Languages:
C++, C, JavaScript, Python, Julia, MATLAB
-
Technologies:
2d/3d graphics, Web Browsers, Continuous Integration/Deployment, Build Systems, Cross-Platform Abstractions, Performance Profiling, Embedded Devices
-
Tools:
Git, Docker, CMake, Gyp, Ninja, BuildBot
-
Libraries:
OpenGL, Vulkan, V8 JavaScript engine, Googletest, ITK, VTK
Work Experience
Staff Software Engineer
(2012-11-05 - 2020-01-17)
Tech lead for Cobalt (cobalt.dev), the browser/application platform behind the YouTube on TV app.
- Joined the team as the graphics lead, implementing a subset of the GLES graphics API for PlayStation 3, PlayStation 4 and WiiU in terms of their respective proprietary graphics APIs.
- Designed the Cobalt graphics rendering stack, enabling improved animation framerate versus Chrome on embedded devices (e.g. game consoles, embedded TV device chipsets, Raspberry Pis).
- Designed high-level layout of major browser components, including layout, JavaScript engine, the Web API (including DOM), networking engine and graphics.
- Designed and implemented a cross-platform low-latency web-based solution to viewing YouTube 3D 360 spherical videos on TVs and VR headsets.
- Mentored and lead many team members over the course of 7 years.
- Designed systems for monitoring and analyzing performance issues.
- Collaborated with TV and device makers to promote adoption of Cobalt across the industry.
Software Engineer
(2009-06-01 - 2012-09-01)
TurtleSeg started as my M.Sc. project at Simon Fraser University, and was later acquired by Oxipita Inc. TurtleSeg is a tool for performing interactive 3D image segmentation, with emphasis on a built in active learning feature.
- Architected, implemented, and packaged the software tool.
- Implemented algorithms which convert volumetric 3D image data and user input into 3D surface meshes.
- Integrated with the medical image analysis software libraries ITK and VTK.
- Designed and implemented TurtleSeg's website, turtleseg.org.
- Wrote a manual for using the software, including video tutorials.
Software Developer
(2007-05-01 - 2009-05-01)
Worked on multiple games including Punch Out!! (Wii), Super Mario Strikers (GameCube), Ticket To Ride (Xbox 360) and Spider-Man: Friend or Foe (PS2, Xbox 360, Wii).
- 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 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.
Software Engineer Intern
(2006-05-01 - 2006-08-01)
Worked on features for NVIDIA's GoForce mobile chip firmware.
- Implemented power-saving functionality by disabling chip features while they are not being used.
- Optimized time-to-splash screen by recording and playing back standard bootup flow.
- Respire (2020): A modular build system with a Python front-end.
- Linfinity (2008): An infinitely recursive 3D scene graph system enabling the construction of 3D fractals that are rendered in real-time.
- Virtual Foosball (2006): A networked 3D foosball computer game.
- Marching Tetrahedrons (2004): Implements the marching tetrahedrons algorithm to convert 3D density fields into isosurfaces.
- Software 3D Renderer (2003): A software 3D rendering pipeline written from scratch that is capable of rasterizing Quake 2 models.
Education
🎓
(Master)
Simon Fraser University (BC, Canada)
(2009-06-01 - 2012-09-01)
Computer Science (Medical Image Analysis), Supervisors: Ghassan Hamarneh and Rafeef Abugharbieh
GPA: 4.3/4.3
🎓
(Bachelor)
University of Waterloo (Ontario, Canada)
(2002-09-01 - 2007-04-01)
Math
GPA: 88% (CS/Math courses)
Publications
-
Andrew Top, Anjali Wheeler.
(Patent) Spherical video in a web browser.
In United States Patent and Trademark Office,
2019-05-21.
-
Mahmoud Ramze Rezaee, Andrew Top, Colin Brown, Ghassan Hamarneh.
(Patent) Method and apparatus for detecting anatomical elements.
In United States Patent and Trademark Office,
2018-04-10.
-
Ghassan Hamarneh, Rafeef Abugharbieh, Andrew Top.
(Patent) Methods and systems for interactive 3D image segmentation.
In United States Patent and Trademark Office,
2016-04-19.
-
Andrew Top.
M.Sc. Thesis: Automated confidence-based user guidance for increasing efficiency in interactive 3D image segmentation.
In Simon Fraser University,
2012-01-25.
-
Andrew Top, Ghassan Hamarneh, Rafeef Abugharbieh.
Active Learning for Interactive 3D Image Segmentation.
In Medical Image Computing and Computer-Assisted Intervention (MICCAI), volume 6893, pages 603-610,
2011-01-01.
-
Andrew Top, Ghassan Hamarneh, 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-01-01.
-
Andrew Top.
Dynamic 3D Scene Graphs.
In gamedev.net,
2008-12-10.
Awards
-
Innovation in Technology Award
2013-03-13
by Western Association of Graduate Schools (WAGS)
This award is given for the development of innovative technology in a thesis or dissertation and its utilization for the creative solution of a major problem.
Interests
- Snowboarding
- Swimming
- Hiking
- Computer/console games