Don Jones Jr. || Donnie Jones Austin, TX donnie@darthik.com ------------------------------------------------------------------------------- Objective Seeking a software engineer position with challenging, complex problems that will keep my brain buzzing all day and dreaming about algorithms at night. ------------------------------------------------------------------------------- Education University of Kentucky Aug 2006 - Dec 2008 Lexington, KY 40508 Computer Science of Engineering, Master of Science (Coursework finished; MS thesis to be completed.) GPA: 3.9/4.0 University of Kentucky Graduated Aug 2006 Lexington, KY 40508 Computer Science of Engineering, Bachelor of Science GPA: 3.3/4.0 Master's Project Parallel Profiling Support for the Glasgow Haskell Compiler (GHC) July 2008 - Aug 2009 In collaboration with Dr. Simon Marlow and Dr. Satnam Singh from Microsoft Rearch at Cambridge, U.K. * Designed/Developed fast, extensible event logging framework for GHC. * Added parallel profiling events to GHC run-time system. * Developed ghc-events library to parse GHC event log files for visualizers. * Performed analysis of GHC parallelism using ThreadScope visualizer. Publication(s): * Parallel Performance Tuning for Haskell (Don Jones Jr., Simon Marlow, Satnam Singh) Haskell '09: Proceedings of the second ACM SIGPLAN symposium on Haskell, Edinburgh, Scotland, ACM, 2009 ------------------------------------------------------------------------------- Work Experience Backend Compiler Engineer Jan 2011 - Current NVIDIA, Austin, TX * Perform backend compiler optimizations for NVIDIA GPGPU. * Triaged, analyzed, fixed backend compiler functional and performance bugs. * Created framework to generate machine instructions to simulate a pseudo-hardware instruction from CUDA source code. * Developed icache alignment optimization for loops and functions. * Contributed peephole optimizations. Compiler Verification Engineer Jan 2009 - Dec 2010 NVIDIA, Austin, TX * Analyzed, reproduced, discovered causes of compiler build and test failures. * Assisted developers by narrowing down cause of failure, providing reproduction steps, and any needed files -- bug triage. * Significantly improved test reporting system to facilitate bug triage. * Created modular parsing library for searching log files for errors. * Developed generic results reporting library based upon XML results files to simplify the addition of new reports. * Documented step-by-step build process of compiler and tools to facilitate training of future members of compiler team. * Created tool to update a Perforce clientspec from a local file. * Resolved issues arising from out-of-date clientspecs by creating standard, version-controlled "gold" clientspecs. * Tool automates the update of user's clientspec from "gold" clientspec. * Performed weekly source code branch integrations with Perforce. Research Assistant Jan 2008 - May 2008 Advisor: Dr. William Dieter University of Kentucky, Lexington, KY 40507 * Project for U.S. Marine Corps. (Vagueness due to sensitive nature of the project.) * C++ programming for high-performance multi-threaded client/server. * GUI design/development using Qt toolkit. * Analyzed TCP/IP performance; performed memory profiling. Co-Founder, Lead Software Engineer, Server Administrator Jan 2006 - Dec 2007 ModernLend, Inc., Louisville, KY 40205 * Designed/Implemented website with Ruby on Rails web-framework, PostgreSQL database server. * Designed complex, scalable table relationships for home loan applications. * Implemented collapsable, sliding user-interface for home loan application. Received excellent usability ratings from user feedback. * Business exposure to housing market research, analysis of home loans, and online advertising. Research Assistant May 2005 - Dec 2006 Advisor: Dr. Hank Dietz University of Kentucky, Lexington, KY 40507 * Implemented Aggregate Function API (AFAPI) for Linux cluster supercomputer network communication with UDP multicast protocol. * Developed AFAPI library functions for efficient execution of parallel programs on Linux supercomputer cluster. * Improved performance with distributed algorithms that stored previous data for packet loss recovery and relied upon UDP multicast for packet replication by the network to decrease node overhead. Team Manager, Lead Software Engineer Oct 2003 - Aug 2006 Solar Car Team University of Kentucky, Lexington, KY 40507 * Guided multi-disciplinary team of 20-25 members to design/build a solar car for North American Solar Challenge competition. * Performed many presentations for fundraising -- $125,000+ donated. * Implemented solar cells Maximum Power Point Tracker (MPPT) and data acquisition system with two TI DSPs using TI DSP Real-Time OS, RS232 bus, CAN bus, motor controller, LCD display, and radio modem. Network Engineering Co-Op Jan 2004 - May 2004, Ashland, Inc., Lexington, KY 40509 Jan 2005 - May 2005 * Configured/Installed routers and switches for global network. * Extensive parsing of network data with Perl programming language. ------------------------------------------------------------------------------- Skills (Skill level: highest to lowest.) Programming Languages: C, C++, Haskell, Python, Ruby, CUDA, Perl, SQL, Java, LATEX, Lisp, Pascal, Fortran, Smalltalk. Software/Tools: Linux, GHC, Ruby on Rails, Apache, PostgreSQL, MySQL, GCC/GDB, Make.