About Me

Hi.


I'm Kevin.


I develop software.

Device Drivers.

Graphics Rendering.

Web Applications.

User Interfaces.

Command-Line Tools.


I build computers.

Play video games.

Watch movies.

Snowboard.

Play basketball.


I drink tea.

Eat food.


I'm a poet.

No, definitely not a poet.

Technical Skills

Proficient With

C++, C, C#, Java, Python, JavaScript


Familiar With

Android SDK, OpenGL, GLSL, Unreal Engine 4, Unity, React, PHP, WPF, SQL, JQuery, Ember.js


Novice With

D3D11, D3D12, HLSL, Tensorflow, PyTorch, IOKit, Ruby, Lua, Qt, MFC, Assembly (x86, ARM)


Tools

Visual Studio, Android Studio, IntelliJ, XCode, Git, Perforce, SVN, Mercurial


Platforms

Windows, Mac, Linux, Android, Xbox One

Work Experience

Software Engineer Intern – News Feed Ranking Platform

Facebook

September 2017 to December 2017

  • Collaborate with an Android engineer to develop the debugging data collection and storage system in Scuba and Hive for client-side ranking
  • Architect a tool in React and Hack for querying, organizing and visualizing debugging data for the backend and client-side ranking process

Software Development Engineer Intern – Rendering

Microsoft Studios – The Coalition

January 2017 to April 2017

  • Work with artists and designers to introduce new graphical capabilities to Unreal Engine 4 for the Gears of War games using C++ and HLSL
  • Improve performance and visual accuracy of postprocessing effects
  • Integrate graphics features from new updates of the vanilla Unreal Engine into the Gears of War engine

Systems Software Engineer Intern – Mac GPU Drivers

NVIDIA Corporation

May 2016 to August 2016

  • Develop new display channel APIs in C and C++ for the driver stack
  • Improve hardware resource management of the Mac display driver
  • Design and implement a mechanism in the kernel-level driver to increase the performance of virtualized environments

Software Developer Intern – Drivers and Diagnostics

SMART Technologies

September 2015 to December 2015

  • Develop algorithms for a new communication protocol in C++ using protocol buffers for the Mac and Windows user-level drivers
  • Expand the I/O capabilities of the user-level drivers to handle multi-threaded HID interrupt and USB bulk transfers
  • Create a visual diagnostics tool in C# and WPF for debugging multi touch and multi pen input on Windows

Software Developer Intern – SMART Amp

SMART Technologies

January 2015 to May 2015

  • Develop an interactive activity in JavaScript to be used in the Lesson Activity Builder add on for SMART Notebook
  • Design and implement a new class joining and management system in SMART Amp in Ember.js
  • Integrate additional data into the front-end and back-end of the SMART Amp chat system using Ember.js and Java

Agile Test Engineer Intern

Pivotal Labs

April 2014 to August 2014

  • Create a simplified web testing automation library using Selenium Webdriver in Ruby to streamline web application testing
  • Develop tests for mobile and web applications

Projects

WAVELab 3D Vehicle Detection

  • A computer vision project in collaboration with the University of Waterloo WAVELab to build a neural network in Python with PyTorch to detect 3D objects from 2D image and lidar data
  • Uses a neural network to interpret pre-processed data from a 2D detector and lidar in order to predict a 3D bounding box

Bouncer

  • 3D game developed in C++ with OpenGL where the player controls a large sphere inside an arena, trying to bounce a small ball into a goal
  • Renders lighting and shadow effects from multiple point light sources, particle effects on collision, and post-processing effects such as motion and gaussian blurs

Wumbo

  • Peer-to-peer Android messaging application for secure local public and private communication without internet access
  • Automatically connect with nearby Wumbo users using Wi-Fi Direct and propagate all messages from device to device
  • Private group messages and group invites are encrypted for security

Watershed Game

  • Simulation strategy game developed in Unity and C# where players build a prosperous city by responding to the movement of water through the map
  • Maps are a randomly generated or file loaded grid of different tiles which respond differently to water based on land properties and elevation

Ditto

  • Windows application written using WPF and C# that runs in the background to synchronize files and folders across different directories

Fotag Mobile

  • Photo library Android application that saves photo ratings in the EXIF data and allows users to filter photos by rating

See my code

Github