Professional Experience
TiVo, Inc. - January 2011 - Ongoing
UI Software Engineering Contractor
- Developed user interface features for the TiVo Premiere DVR family, a consumer set-top box platform
with constrained memory and CPU resources
- Areas of responsibility include UI for scheduling recordings, searching for content, and displaying detailed preview information for content as user scrolls through lists
- Developed utilities to improve developer efficiency, including templated code generation utilities and a
utility to inspect the UI scene graph at runtime, dramatically simplifying diagnosis of UI layout issues
TicBits Ltd. - October 2010 - December 2010, October 2011 - December 2011
Contractor
- Developed custom iPhone Sudoku application (2010), and later ported to iPad (2011)
- Developed puzzle generation software to generate puzzles of various difficulty levels
- ~8,000 lines of Objective-C
Corsair EDA, Inc. - January 2010 - October 2010
Contractor
- Developed custom web application for managing lottery tickets for individuals and lottery pools, including aggregating winning number feeds and notifying users of their winnings
- ~16,000 lines of Python
Skytrex Systems, LLC - August 2009 - July 2010
Contractor
- Contributed to development of flight planning iPhone application for general aviation pilots
- Implemented feature to fetch, parse, and display temporary flight restriction zones defined by the FAA, involving boolean operations on arbitrary 2D shapes (Objective-C / iPhone)
- Implemented tool to define boundaries and projection basis information for chart images (C# / PC)
Vicious Cycle Software, Inc. - Summer 2007, 2008, 2009
Junior Engine/Tools Programmer
- Wrote photon mapping system for real-time global illumination prototype
- Implemented mesh level-of-detail system for Vicious Engine 2
- Implemented 3D modeler-style transform widgets in Vicious Editor
- Added polish features (e.g. undo, multiple selection) to shader graph editor
- Wrote faster UV unwrapping system for map geometry
- Implemented state transition system for destructible physics objects
- Implemented asset reporting system to track down wasteful models, textures, shaders and sounds
Personal Projects
Platformer (Untitled)
- XNA sidescroller game
- Runs on PC or Xbox 360
- WinForms editor with tile & entity editing, full undo/redo, automatic image reloading
- ~25,000 lines of C#
Fallen Elements II
- First-person shooter
- Integrates OGRE for rendering, Newton physics, Python scripting, OpenAL sound
- ~30,000 lines of C++ and Python
SHilScript
- Embedded scripting engine with C-like syntax
- Used in several games and applications released by others
Education
North Carolina State University - December 2009
- B.S., Computer Engineering & B.S., Electrical Engineering
- Major GPA: 4.0/4.0; Overall GPA 3.45/4.0
- Graduated Cum Laude; Dean's List (Perfect 4.0) Spring 2007 - Fall 2009
- Senior project: Wireless digital water flow controller using 802.15.4 and variable-speed Pentair pool pump
Technical
- Languages: C/C++, Python, C#, Cg/HLSL, Objective-C, ActionScript 3
- Technologies: STL, Direct3D, OpenGL, Win32 API, networking (sockets), .NET, XNA, Python C API, Newton physics, OGRE, OpenAL, wxWidgets, Django, UIKit
- Tools: Visual Studio, Eclipse, IntelliJ IDEA, Subversion, git, 3D Studio MAX, Photoshop, SWIG, Yacc/Bison, ANTLR
- Platforms: Windows, Linux, Xbox 360, iOS