Thomas Alan Honermann 5243 Harvest Glen Dr. Glen Allen, VA 23059 Phone: (510) 823-1199 E-mail: tom@honermann.net Web: http://www.honermann.net Blog: http://honermann.net/blog Professional Goal: C++ Language and Toolchain Expert Professional, passionate, dedicated individual committed to technical excellence and advancement in software development. Enjoys a diverse environment, challenging projects that expand exposure to new technologies, and working with other skilled workers who also enjoy a good challenge. Committed to open standards, open processes, and open discussions. Chair of the ISO C++ standard committee SG16 study group focused on improving support for Unicode and text processing in C++, and author of the P0482 char8_t proposal adopted for C++20. Well rounded leadership experience with all aspects of software development including development processes, architectural design, programming languages, operating systems, processor architectures, debugging, testing, SCM systems, build systems, defect tracking systems, and documentation. Professional experience as project lead, architectural lead and consultant for distributed teams. Knowledge Base Programming languages and tools: C, C++, Java, JNI, Python, POSIX shell, Make, HTML, XML, SQL Operating systems and architectures: Linux on x86 and IBM z Systems, AIX on PowerPC, HP-UX on PA-RISC, HP-UX on Itanium, Solaris on Sparc, Windows on x86, z/OS Compilers: LLVM/Clang for various platforms, GNU gcc for various platforms, IBM Visual Age for AIX, Sun Forte for Solaris, HP aCC for HP-UX PA-RISC and Itanium, IBM C++ compiler for z/OS, VisualStudio, Oracle JDK Debuggers: gdb, dbx, TotalView, VisualStudio, Heap debuggers (PageHeap, DUMA, dmalloc), Valgrind SCM systems: git, Subversion, ClearCase, CVS, RCS, SourceSafe Professional Experience Synopsys / Coverity http://www.synopsys.com http://www.coverity.com Compiler Engineer - 6/2011 – Present Frontend compiler engineer contributing to development and maintenance of Coverity's language frontends and internal program representation. Key achievements: Lead the design and development of a Clang based frontend that performed translation from Clang's internal AST to Coverity's internal AST for the C, C++, and Objective-C languages. Lead the design and development of a CPython based frontend that performed translation from CPython's internal AST to Coverity's internal AST. Developed code for Windows used to ex post facto change the command line of a running process in order to inject alternate behavior required by a process tree monitoring utility. The code used Windows debugger interfaces to perform remote process code injection with rudimentary support for run-time relocation and linking, in order to invoke Windows APIs in the target process. Oracle / PeopleSoft http://www.oracle.com http://www.peoplesoft.com Senior Principal Software Engineer - 9/2007 – 6/2011 Architect responsible for platform support, product stability, development environments, build systems, programming language conformance, and third party integrations. Key achievements: Established and lead the Server Stability team to identify the root causes leading to abnormal termination of PeopleTools software. Using postmortem debugging techniques, this multinational team identified hundreds of defects in PeopleTools, worked with code owners to implement corrections, and reduced the number of crashes within our test environments from thousands per week to just a few. I was awarded one of ten divisional outstanding contributor awards from a group of approximately 8000 employees for this work. Architectural lead for the team porting the PeopleTools build system for UNIX to Windows in preparation for porting PeopleTools to 64-bit Windows. This resulted in a unified build system and a consistent developer experience for all PeopleTools supported platforms. Design of a distributed version tracking system for PeopleTools database objects with options for name tracking, content addressable storage, and automated merging for full version control. This feature was designed to enable collaborative development and improve the PeopleTools upgrade experience. Principal Software Developer - 3/2004 - 9/2007 Consultant for developers regarding platform features, compilers, SCM and development tools, build systems, language specifications, language conformance, and debugging. Team member developing a stateful application server used to host the results of queries, optimization solutions, and multidimensional analysis. Key achievements: Redesigned and reimplemented the diagnostic generation code for handling abnormal termination of PeopleTools processes. All code written had to perform correctly within the context of POSIX signal handlers, Windows structured exception handlers, and had to cooperate with third party products such as the JVM. This effort exposed numerous defects in existing operating systems and lead to changes in the POSIX specification. Implemented a cross-platform abstraction library to deal with differences between supported hardware, operating systems, compilers, and memory models in C++. The library included abstractions for multi-threading, shared libraries, processor exception handling, and file systems. PeopleTools UNIX Porting Engineer II - 5/2000 – 3/2004 Development, debugging, and support of the PeopleSoft application server on UNIX environments. Assistance and training with regard to compiling and debugging code on UNIX and Linux. Key achievements: Participated in the design, implementation and roll out of a new Iterative Development Process focused on streamlining the development process and reducing process overhead. Lead porting effort of PeopleTools to Red Hat Linux Advanced Server 2.1 and HP/UX 11.23 for Itanium processors. Designed and implemented a new build system for compiling PeopleTools on UNIX systems based on GNU make. Improvements included parallel compilation, 100% integrity checking, cross-platform design, incremental build support, scalability, and ease of use. Contributed to the design and implementation of ClearCase as the source configuration management environment for PeopleTools's with a particular focus on making sure it worked well for UNIX. University of Wisconsin Hospital and Clinics http://www.uwhealth.org Systems analyst - Network infrastructure team and Server team - 1/1996 - 4/2000 This was a multi-homed position, 70% network infrastructure team, 20% LAN server team, and 10% UNIX server team. Duties included network infrastructure design and implementation in a cooperative design role, maintenance of network equipment and Novell NDS design and implementation, backup of LAN server environments, custom software development, and on-call rotation participation. Key achievements: Lead initial Linux usage evaluation study for feasibility in production application roles and possible benefit to hospital environment. Linux was later selected to run the hospital's DNS servers. Education University of Wisconsin - Madison http://www.wisc.edu Bachelor of Science - Computer Science - 5/1998 Honors Awarded an outstanding account support award from Synopsys in 2016 Awarded a divisional outstanding contributor award from Oracle in 2007 Awarded a team outstanding contributor award from PeopleSoft in 2004 Awarded an outstanding contributor award from PeopleSoft in 2003