CV/Resume
Download PDFEducation
Georgia Institute of Technology
PhD program, College of Interactive Computing (2017-Nov 2019): Took leave of absence due to health and financial concerns
Masters of Computer Science (2014-Dec 2016) - GPA : 4.0.
All CS(24) and Math(5) classes required for Bachelor of Computer Science specializing in Modeling and Simulation and Media (2010-2014) - GPA : 4.0.
Bachelor of Electrical Engineering (1986-1992)
Academic Awards
2014 Outstanding Graduate TA
2014 The Donald V. Jackson Fellowship
Languages That I have worked extensively in
C, C++, C#, Java, Javascript, MATLAB, MEL script, Pascal, Python, R, SQL.
I have delivered software products professionally in C#, C++, Java, Javascript, Pascal, Python, MATLAB, R, SQL, and Visual Basic since 1992.
I have TA'ed classes at Tech that required expertise in C, C++, Java, OpenGL, and Python.
I have implemented numerous stable applications where cross-platform execution was required such as Java calling C++ via JNI, Java calling MATLAB via Java Matlab Interface,
C++ simulation code calling and managing MATLAB to collect and format simulation data, Python web server calling and managing R environments and scripts which then
interact with various SQL servers, and others.
I've used various Machine Learning libraries in Matlab, Python, Java or C++, such as Weka (Java) to work with supervised learning tasks,
SHARK (C++) to perform randomized optimization, (specifically unimodal CMA-ES), MatConvNet and Torch for Computer Vision/Deep Learning, particularly convolutional nets and LSTMs,
and SOMOCLU (C++) to build self organized maps.
I've implemented a full Kinect Library in C++ that included IK, voice recognition, hand state tracking (via my own implementation of a Neural Net w/Back Propagation)
and a suite of Kinect-friendly UI constructs such as sliders, levers, buttons, textboxes and check boxes.
Work and Research Experience
Facebook/Meta AI Research: 3/20 to 3/22. Contingent Worker/Research Engineer.
Currently primary contributor to Habitat-Sim repository, in number of reviewed commits and secondary in code lines committed. Interfaced with research scientists, students and platform users to design and implement critical features to enable projects to meet conference and journal submission deadlines. Implemented key C++ functionality in Habitat-Sim simulator to facilitate research challenges, greatly expand dataset support, and facilitate extensive user customization capabilities. Built a subsystem based on class-templates to facilitate the implementation for, management of and easy interaction with data of indeterminate type both in-engine and via python bindings, primarily used as asset metadata management. Built Python and Blender scripts to deconstruct mesh environments into constituent pieces and synthesize metadata to support rebuilding these scenes in engine. Implemented tools to load and manipulate meshes, model Isometric camera view, synthesize meshes to visualize trajectories and other graphics-oriented functionality.
Georgia Tech : PhD Student Research Projects: 8/17 to 1/20
Advised by Dr. Karen Liu (8/17-1/19) Research focus on predicting optimal robotic control to assist an impaired biped in performing locomotion tasks, such as getting up, using RL and MPC paradigms.
Advised by Dr. Jarek Rossignac (8/17-1/18, 1/19-1/20) Researched using music to synthesize animation through signal analysis, deriving trig-based alternatives to Gaussians for ray tracing, and animating COTS patches to derive pleasing morphs.
Georgia Tech : Head TA for Graduate Algorithms OMS: 8/17 to 1/20
(This funded my PhD) Head TA for Intro to Graduate Algorithms (CS 6505/6515) class for the Online Master's Program. Classes consisted of 350-500 students. Along with sharing exam grading duty, was solely responsible for coding projects (Bloom Filter, PageRank, Knapsack and Kruskal's algorithm), including designing assignment parameters and code templates and building multi-process autograder (Python), assisting all students via discussion and video lessons, and grading all code and report submissions.
Ignition One : 8/14 to 11/16. Data Scientist/Algorithmic Specialist
Built Linux/Python-based Tornado web servers to manage multiple instances of R environment running various analytic processes on clients'
advertising performance. Some of the other projects I'm working on or have completed :
(R ref classes, SQL) Perform moments analysis of client revenue and spend over product sold and time series data.
(R ref classes, SQL) Perform regression on advertising budgets to predict optimal spend across different ad channels.
We have applied for a patent for this system.
(R, SQL)Build a predictive model of capitalizable user behavior using a single hidden layer (piece-wise linear) neural net with over 95% accuracy. Turns out folks aren't that complicated in their surfing habits.
(C++, SQL)Modified an existing C++ Self Organizing Map library for our needs and used it to find "look-alikes" in user pool - folks whose behavior looks like other folks known to "convert" (perform some capitalizable action).
Multiple Visualization tools to facilitate intuitive understanding of high dimensional data.
Analyze and predict trends in inherently chaotic time series data using non-parametric algorithms such as Singular Spectrum Analysis.
Ignition One : 10/13 to 8/14. Senior Software Engineer
Part of a team of 14 developers working in an AGILE-based behavior-driven development environment. Co-designed and implemented web-based C# and Javascript, dot.net CQRS platform for large scale advertising client management system. Among the features of this system I implemented was an outlier analysis and reporting system using Math.NET, a dot.net library for numerical computing.
Georgia Tech : 1/15 to 11/16. Graduate Teaching Assistant
TA'ed Undergraduate and Graduate Computer Animation class (CS 4496/7496 taught by Prof. Karen Liu) in Spring 2015,Spring 2016 and Fall 2016. I helped students learn MEL scripting in Maya and to code (in C++) particle, rigid body (Baraff/Witkin) and fluid (Stam) simulations, and IK solver. Lectured CS7496 on Fluid Dynamics Simulation using Eulerian Grids. Proctored and graded final exams.
TA'ed Graduate Graphics course (CS 6491 taught by Professor Jarek Rossignac) in Fall 2015. Graded all submitted assignments, projects and exams, assisted students in understanding and implementing optimized particle simulations, steady affine motion and morphs, 3D curve averaging. Derived mechanism for students to implement all questions from a difficult mid-term as part of regrade process. Responsible for final grades with approval of Professor.
Georgia Tech : 5/13 to 11/16. Undergraduate/Graduate Research Assistant
Hired (for credit) by Professor Karen Liu to code C++ Microsoft SDK-based Kinect library to be used with DART animation/physics simulation library, using motion-capture/IK solver,Voice and Gesture Recognition (included Neural Net to classify hand state) and custom Kinect-based UI components sliders, textboxes, levers, CBs.
Implemented C++/DART version of Control-PBP algorithm (Hämäläinen et al. 2015).
Implemented C++ SIMBICON state-machine-based bipedal locomotion controller in DART.
Implemented data capture protocol via MATLAB being launched in C++ to transparently collect and analyze performance of various biped controllers, such as SIMBICON, in comparison to biomech benchmark data of human motion along numerous metrics, such as gait duty cycle and ground reaction force. Used CMA-ES to improve controllers based on small dimensional data using worst performing biomech benchmarks.
Georgia Tech : 5/12 to 5/13 Undergraduate Research Assistant
Hired by Professor Greg Turk (8/12-5/13 for pay) as an undergraduate RA, working over three semesters on simulations of fluid erosion, where fractally generated (Square-Square subdivision – Musgrave '89) and procedurally generated terrain was eroded using height-field fluids governed by shallow water equations in a closed system. Developed novel approaches for eroding adjacent dry terrain (mass wasting) and transporting sediment during fluid transport calculation (Semi-Lagrangian method) as well as simultaneous Aeolian erosion (wind). As part of this project I also built a full UI using OpenGL able to completely control all simulation parameters, analyze results and visualize processes such as fluid velocity, sediment motion, etc.
Georgia Tech : 1/11 to 5/14. Undergraduate Teaching Assistant
TA'ed 6 different CS courses : CS 1050 Discrete Mathematics and Proofs, CS 1331 Intro to OOP (Java), CS 2110 Computer Organization and Programming(C), CS2200 Intro to Systems and Networking (C), CS 3451 Intro to Graphics(Java/Processing), and CS 3600 Intro to AI(Python); Suggested and developed assignment for CS 3600 for students to implement multiple hidden layer Neural Net with Back Propagation that is still used.
Talkbass.com : 3/00 to present. Forum Administrator/Moderator
Chosen as moderator (since ’00) and subsequently hired as Forum Administrator (since ’07) of largest bass guitar discussion forum on the internet, currently having over 250,000 registered members – 127th largest discussion forum in the world. Developed usage rules with site owner and other admins, as well as determined sub forum layout, hired moderators from membership and addressed technical support issues via site’s helpdesk.
DBA John Turner : on and off since 11/07.
Provided technical consultation for purchase, configuration and maintenance of small business networks. Performed technical support and provided custom application coding to meet a variety of needs endemic to small business, such as billing, accounting, inventory control and website design. I also, on occasion, would test or install commercial fire alarms in business and industrial locations.
Past Work
From here down is a brief summary of the work I did at various employers from 1992 to 2007. Much of this work was Client-Server and/or Web-based development, where I had to understand a user's or client's needs and business sufficiently to build friendly and intuitive user interfaces that they would enjoy using to do their work. My experience in this domain has sort of "institutionalized" me in that I often formulate my initial designs for software (even research code) around how to facilitate it being used fully and easily.
Abel Solutions, Inc. : 1/06 to 10/06. Contract Programmer.
Developed power transformer tracking application for Marietta Power Company in C#/.Net 1.1, using Abel Solutions’ proprietary Morphy framework, including designing and implementing customized databases in SQL Server 2000. Troubleshot and debugged Morphy framework for greater compatibility with client databases and improved reliability of generated code. Customized multiple SharePoint-based corporate intranets based on individual client needs. Designed and developed informational intranet used by marketing department of Coca-Cola Enterprises.
Charter Communications, Inc. : 3/01 to 6/03. Contract Programmer.
Provided ongoing support for billing long distance carriers and reports for international long distance calling card and disposable cell phone usage. Supported IVR programming and database maintenance for previously implemented IVR platform.
Abel Solutions, Inc. : 10/00 to 3/01. Contract Programmer.
Developed DHTML/ASP internal intranet application for big three credit-reporting firm with over 200 forms. Developed ASP/VB 6.0 COM object-based site for processing business loan applications and validation with various secretaries of state, across state lines. Designed graphics and interface for total overhaul of site, including implementing style sheets and graphics via Fireworks and Photoshop.
Abel Solutions, Inc. : 5/00 to 8/00. Contract Programmer.
Developed ASP/Web interface for an internal intranet discussion/reporting system for Pfizer(client) that included interacting with the client to develop the database and flow and functionality of the site, implementing it (including a fully functional discussion forum) and assisting with QA up to go-live date.
Computer Associates International, Inc. 8/99 to 5/00. Contract Programmer.
Modified old code base to support Web-based interface, and implemented new screens to support Canadian-specific functionality. Expanded legacy Pascal code generator to support over 300 Canadian-specific interfaces.
Charter Communications, Intl. 8/97 to 8/99. : Applications and IVR Developer.
Developed IVR solutions on Windows NT 4.0/Dialogic D480-2T1 cluster platform using EASE development suite, interacting with SQL Server database and EASE beta test site. Maintained legacy DOS-based IVR platform. Developed reporting tools for VRU performance using Visual Basic and SQL Server, later upgraded to web-based billing tools.
Computer Associates International, Inc. 3/93 to 8/97. : Client-Server UI Developer.
Developed Windows GUI for 400+ screen client/server HR product using Visual Basic. Solely responsible for the development of Pascal code generator that derived and maintained source code for GUI from legacy AS400 application, enabling project to exceed expected functionality by decreasing time requirements for core development. Developed two new graphical objects used in GUI by other CA developers. Solely responsible for interaction between GUI team and QA, successfully completed 4 QA/Beta cycles with various releases of the GUI product. Co-authored technical documentation and user manuals.
Terrapin Inc./Global Telecom : 5/96 to 2/98 Contract Developer.
Developed Windows software package for maintenance and monitoring of privately owned pay phones. Included database IO, automated modem communications, rate table editing, firmware/software settings uploading and call record downloading, performance reporting, maintenance tracking. Satisfied requirements of the Microsoft Windows SDK, with such features as Help and Tool Tips.
Ernest Telecom : 5/92 to 1/93 Programmer.
Assisted with debugging of dis-assembled firmware. Developed and implemented billing program for small long distance company, correlated calls with commissions for hotels and truck-stops. Designed and implemented maintenance program for privately owned payphones.