Brad Appleton Software Tools/Process Architect E-mail: brad@bradapp.net WWW: http://www.bradapp.net Summary ======= Fifteen years of software development expertise with emphasis in the following areas: * Configuration management tools and process implementation * Software engineering tools/applications development * Software process definition, improvement and automation * Best-practices for software development (including "agile" development) and design * Object-oriented design methods and programming languages Highlights of Technical Leadership & Expertise ============================================== * Lead consultant to corporate-wide (cross-sector) engineering development environment for change and configuration management, application integration, and metrics/reporting * Process lead for sector and systems release management, and CM development * Software development product/project manager for team producing on-time releases for the past 2 years using iterative development, automated testing, and weekly customer meetings * Initiated and led Java and Perl "brown bag" sessions within the department to foster the growth of co-workers programming and design skills and to serve as a mentor to others. * Design patterns section editor for the C++ report, January 2000 - March 2001 * Program/Review Committee for Software Patterns Conferences in Illinois and Europe * Co-author of the book Software Configuration Management Patterns: Practical Teamwork, Effective Integration (Addison-Wesley Professional, November 2002) * Technical advisor for CM topic content at STQE's StickyMinds.com site. * Recipient, 2002 Rational ClearCase Community Superstar * Founding member of Chicago Agile Developers and Chicago Patterns groups, and member ACM, IEEE Computer Society, and Chicago Software Process Improvement Network (C-SPIN) Skills ====== Programming: * Perl, Java, C++, C, Smalltalk, Python, Unix shell (ksh, csh, sh) Platforms: * Unix (Solaris, SunOS, HP-UX, Linux), Windows NT, Windows 2000 Applications: * ClearCase, ClearQuest, DDTS, SCCS, RCS, CVS, Perforce, Oracle, DOORs, ROSE, TMS, TeamPlay, FrameMaker, MS-Office Design and Development: * UML, Design Patterns, RUP, eXtreme Programming, SEI CMM, TL9000 Experience ========== 1998-Present: * Principal Staff Software Engineer, Motorola GTSS, Arlington Heights, IL 1995-1998: * Senior Software Engineer, Motorola IESS, Northbrook, IL 1990-1995: * Senior Software Engineer, Harris Computer Systems, Fort Lauderdale, FL 1989: * Software Engineer, Seidl Computer Engineering, Inc., Ann Arbor, MI 1988-1989: * Systems Analyst, Michigan Peer Review Organization, Livonia, MI 1987-1988: * Programmer, Schlumberger Technologies CAD/CAM, Plymouth, MI Education ========= 1995-2000: National Technological University Fort Collins, CO * M.S. in Software Engineering with Highest Distinction 1994: Florida Atlantic University Boca Raton, FL * Graduate coursework in Software Engineering. 1983-1988: The University of Michigan Ann Arbor, MI * B.S. in Computer Science & Mathematics with Honors (double major) Experience Summary ================== 1998-Present: Principal Staff Software Engineer, Motorola GTSS, Arlington Heights, IL * Lead consultant to corporate-wide (cross-sector) engineering development environment for change and configuration management, application integration, and metrics/reporting * Process lead for sector and systems release management, and CM development * CM system product/project manager for a small team producing on-time releases for the past 2 years using iterative development, automated testing, and weekly customer meetings for feature and change planning * SCM process/tool consultant for several business critical "improvement" projects to address issues with build reproducibility, build-time reduction, and integration/build planning * Technical lead for development of a CM system for sector-wide use of ClearCase/ClearQuest and common metrics/reporting * Developed, maintained, and supported a complete CCT/ClearCase-based SCM environment for several hundred users. * Local community leader in introducing "agile" development practices and other software development best-practices 1995-1998: Senior Software Engineer, Motorola IESS, Northbrook, IL * Defined and implemented departmental policies and procedures for software configuration management and software metrics collection & reporting using ClearCase and DDTS. * Implemented software development tools to automate unit testing, and to reverse-engineer design pseudo-code from C source code. * Performed critical ClearCase and DDTS systems administration and received an award for effectiveness and responsiveness for critical disaster recovery of corrupted data * Developed a suite of Perl scripts for ClearCase/DDTS to implement merging, build/release management, and automated processes for capturing inspection data, change/defect reports, and requirements traceability * Performed systems integration, testing, and release engineering for the ADVANCE system - a 100K line C/C++ embedded real-time application for automotive route planning & navigation * Performed unit testing and maintenance on the route-planning subsystem for ADVANCE * Evaluated and compared object-oriented software development methods and established C++ coding standards for use by the department * Member of a team devoted to achieving SEI CMM level 3 within the department * Received two quality awards for software process improvement within first three months 1990-1995: Senior Software Engineer, Harris Computer Systems, Fort Lauderdale, FL * Designed and implemented (as part of a team) a multi-process, multi-language, graphical symbolic debugger using C++, Motif, and the AT&T C++ task library * Enhanced and maintained and supported our CM system (75K+ lines of C/C++) for several dozen projects and several hundred users * Configured and administered defect tracking repositories (using GNATS) for multiple projects * Member of a team to document and improve our organization's software development process and achieve ISO 9000 certification * Drafted department-wide templates for software architecture and design specifications * Documented and automated software release engineering procedures for the department * Enhanced and maintained a 100K line C application which assists in the design, testing, and analysis of software written in Ada * Developed reusable open-source frameworks for parsing C++ command-line arguments 1989: Software Engineer Seidl Computer Engineering, Inc., Ann Arbor, MI (bought-out in September,1989 by Pansophic Systems, Inc.) * Ported the entire company product-line of C software development tools to OS/2 * Enhanced, maintained and provided technical support for all software development products * Designed, documented, and automated the creation of the standard directory structure hierarchy used by all projects * Composed end-user and in-house documentation to assist in the use, maintenance, and evolution of company products (both present and future) 1988-1989: Systems Analyst Michigan Peer Review Organization, Livonia, MI * Created and maintained large Oracle database systems under Xenix/386 to store medical reviews for all Medicare and Medicaid claims in the state of Michigan * Programmed C database applications (with embedded SQL statements) to provide retrospective analyses of medical reviews * Created, maintained, and documented the department's local repository of software development tools and libraries 1987-1988: Programmer Schlumberger Technologies, CAD/CAM Division, Plymouth, MI * Designed and documented software utilities using C, lex, awk, Unix shell scripts, Pascal, PL/I, and VMS DCL command procedures * Developed the data filter for a software data bus to enable data interchange between CAD applications via an application-neutral data format and translator Publications and Presentations ============================== * Agile Configuration Management Environments; CM Crossroads Newsletter, April 2003 (Vol. 2 No. 4). Also in proceedings of 2003 Midwest Software Engineering Conference; Chicago, IL, June 2003 * Software Configuration Management Patterns: Practical Teamwork, Effective Integration; with Stephen P. Berczuk, Addison-Wesley Professional (Software Patterns Series), November 2002 * Agile Software Configuration Management, with Stephen P. Berczuk; appendix appearing in the book Configuration Management Principles and Practice; by Anne Haas; Addison-Wesley, December 2002 * ClearCase Branching and Labeling Best Practices for Parallel Development; 2000 Rational User's Conference; Philadelphia, PA, August 2000 * Getting Ready to Work: Workspace Patterns for Software Development; with StephenSoftware Configuration Management Patterns: Practical Teamwork, Effective Integration; with Stephen P. Berczuk, Addison-Wesley Professional (Software Patterns Series P. Berczuk and Ralph Cabrera; 7th Annual Conference on Pattern Languages of Program Design; Allerton Park, IL, August 2000 * Software Reconstruction: Patterns for Reproducing Software Builds; with Ralph Cabrera and Stephen P. Berczuk; 6th Annual Conference on Pattern Languages of Program Design; Allerton Park, IL, August 1999 * Streamed Lines: Branching Patterns for Parallel Software Development; with Stephen P. Berczuk and Ralph Cabrera; 5th Annual Conference on Pattern Languages of Program Design; Allerton Park, IL, September 1998 * Patterns for Conducting Software Process Improvement; 4th Annual Conference on Pattern Languages of Program Design; Allerton Park, IL, September 1997 * ClearView: Associating Attributes and Notes with a ClearCase View; 1996 ClearCase International User's Group Conference; Lexington, MA, September 1996 * eXtreme Summary; Book review of Extreme Programming Explained, January 2000 (online review) * Java Patterns for Distributed Programming; Presentation & Southern Methodist University Report, May 1999 * Pizza Inversion - a Pattern for Efficient Resource Consumption; C++ Report Vol. 11 No. 4, March 1999 * Patterns in a Nutshell; Presentation; created February 1998 * Patterns and Software: Essential Concepts and Terminology; Object Currents Magazine, Vol. 3 No. 5, May 1997 * The Law of Demeter for Propagation Patterns; Northeastern University Technical Report, December 1995 * AVL trees: a Tutorial and C++ Implementation; Presentation; excerpts have appeared in Object Currents Magazine and Dr. Dobbs Journal; created 1989, last updated 1999