Maintained and added features to custom Scala ERP server.
Implemented job shop scheduler for customizing drinkware.
Integrated with third-party laser and mechanical systems to create system that enables customers to customize individual pieces. Included writing automated conversion of customer-provided color bitmaps into black and white vector images on the browser, and creating the hatching patterns for the laser scanning. This project was a key multimillion dollar project, and involved feasibility exploration, concept demos, and production engineering.
Designed and implemented Eight Brains Chinese Dictionary, an iPhone app with custom dictionary entries and features for expats using Chinese on a daily basis.
Designed sorting algorithm so that the most likely word is first (helpful when there are five different words and you have no idea which one is actually used).
OCR turns pictures of Chinese into characters that you can tap on to get pronunciation and meaning.
Analytics tracks usage patterns for targeted feature improvements
Was available on the iOS App Store at https://itunes.apple.com/app/eight-brains-chinese-dictionary/id790088315.
Designed and implemented Letter Panic, an ad-supported iPhone word game in OpenGL ES. Includes analytics to track user behavior. Was a free download on the iOS App Store at https://itunes.apple.com//app/letter-panic/id1013534678.
Designed and implemented Eight Brains Nutrition Diary (iOS, Swift) to provide daily calorie and detailed nutrition information sourced from the USDA database. Was available on the iOS App Store.
Open3D (Intel Systems Labs): Designed and implemented UI rendering API (C++) and Python bindings, and used in a standalone 3D viewer app. The API is also used in several dataset inspectors.
Palo Alto Insight: Developed iOS app (Swift) that transcribes Japanese text via network service and does real-time, on-device text analysis. Analysis includes a CoreML model as well as keyword analysis. Developed algorithm to deconjugate verbs and adjectives so that different tenses are recognized as the same word. App is internationalized to aid in development by English speakers. Developed macOS app for debugging analysis of the algorithms. Developed and deployed Python/Flask server on AWS.
Airship: Developed C++ library for communicating with a network service. Built library interfaces and packages for Python, Ruby, and Java. Build binary packages for Linux, macOS, and Windows.
Gliderscape: Architected and built WebGL-based renderer for architectural models. Decreased load time from over 60 sec to 16 sec, decreased space required from 100 MB to 55 MB, increased rendering speed from 4 fps to 15 fps (30 fps with adaptive rendering that does not render small objects when moving/rotating and the frame rate is too low), and decreased time to first object from 60 sec to 2 sec.
Lightform: Wrote OpenGL-based vector graphics editor and texture mapper for quickly creating projection mapped art. Used OpenCV for image processing to implement some effects. Created novel mapping from one polygon onto an arbitrary other polygon with same number of vertices, which is critical for smooth scaling of the applied texture.
The.Land: Built iOS app for creating and monetizing social media posts on Twitter, Facebook, and a proprietary social media network. Involved high amount of visual cusomization not directly supported by UIKit.
Dyslexicon: Architected and implemented a word processor for dyslexics, with standard word processing features, but the text can be right-to-left, mirrored and/or flipped vertically. Was vailable on the Mac AppStore at https://itunes.apple.com/us/app/dyslexicon/id1165081331.
MindMagic Audio: UI implementation for a music-player iOS app that adjusts the audio to based on headgear profile for richer sound. Available on the iOS App Store at https://itunes.apple.com/us/app/mindmagic-audio/id997988243.
Embedded PostScript (EPS) Validation: created an internal EPS file validator for WebSummit that validates proper colorspaces, no unreferenced fonts, and minimum bitmap resolution (when not purely a vector EPS) by instrumenting the open-source GhostScript interpreter for the PostScript language.
Happylatte (北京开心杯可技有限公司 in Beijing, China)
Software EngineerNov 2011 – Aug 2013
Architected and helped implement server and iOS/Android client for player-vs-player sub-game of HighNoon 2.
Architected and helped implement an iPad real-time strategy game prototype.
Helped maintain and improve the HighNoon MMO live game servers (both code and server maintenance).
UTC Fire and Security (formerly GE Security)
Lead ProgrammerMarch 2010 – Sept 2011
Redesigned and implemented user interface for key portions of the archive video features of the Qt 4 video management client.
Designed filmstrip feature for quickly identifying the piece of video where a scene change occurs (i.e. a painting was there and now is not), providing both better functionality and avoiding the potential legal liability of the previous mechanism. (Patent granted)
Implemented new video management web server in order to allow more robust testing of the client.
Refactored several pieces of the video playback layer to be thread-safe.
Adecco
Contractor for GE SecurityNov 2009 – March 2010
Implemented and helped design the archived video searching user interface in Qt 4 for the GE Security Video Management Client.
Instrumental in driving feature requests and bug fixes necessary for the Qt client with members of the video archive server and video management server teams.
CD-adapco
Senior ProgrammerMay 2003 – Sept 2009
Architected and implemented a standalone 3D scene viewer using VTK, including creating an efficient file format.
Designed, implemented, and documented the primary file format API for Adapco products.
Designed and implemented an algorithm to create a smooth, uniform block mesh, including around sharp curves in the mesh that give problems for most well-known algorithms.
Developed and implemented visualization features for the pro-Vis and STAR-CCM+ fluid-flow simulation post-processor, including the addition of stream-ribbons for polyhedral meshes, animation of streamlines, section slices, and visualization of rotating reference frames.
Designed and implemented internationalization of STAR-Design.
Administered the local office’s 25-node Linux network. This included writing scripts to speed up common tasks, implementing redundant NFS/NIS/Samba/DHCP servers, creating web pages and scripts to reduce help desk load, and improving office usability by writing web-based source code browsing, man pages and CVS improvement scripts.
National Instruments
Software EngineerJuly 2000 - Dec 2002
Improved the LabVIEW programming language by championing and implementing a child-panel (subpanel) feature in order to allow better user-interface encapsulation.
Researched, proposed, and implemented full Unicode support on three platforms (Windows, MacOS, and Linux) for more universal multi-lingual support in LabVIEW.
Learned production software techniques: coding practices, evaluating features based on business need, product-cycle team dynamics, source code control (Perforce).
Presented LabVIEW at NIDays conference and visited customers to get product feedback.
National Instruments
Applications EngineerAug 1998 - July 2000
Solved customer problems by performing initial product and programming consultation and technical support for customers.
Developed widely used product support documentation after identifying frequent and difficult support questions.
Developed and implemented a client-server call center queue monitoring program.
Taught product classes at regional and corporate offices.
Extensive knowledge of Linux configuration through 8 years of daily Linux use and 5 years of professional system administration for the 24-node network at the CD-adapco Austin office.