MyCv

=Curriculum Vitae for Brett L. Schuchert=

Skill Summary
Brett has 25+ years of teaching experience and over 20 years of experience with object technology. He has worked extensively in developing software, training, mentoring, and consulting using Java, C++ and Smalltalk as well as software process and requirements analysis both locally and internationally.

ThoughtWorks Incorporated
November 2011 - May 2015 Title: Principal Consultant

Worked as a technical lead for a customer-facing application developed to test out modes of client interaction. The technical stack initially included Angular on the front end, Node in the mid-tier and a back end aggregation layer. After a pivot based on customer research, the front-end solution simplified to simply JavaScript and JQuery, maintaining the Node back end. Also assisted in solving inconsistent automated test execution based on changes to the technology stack after the pivot.
 * Technical Lead, Client-Facing Responsive Web Presence **

Working as both a technical BA as well as an evangelist for the introduction and use of a corporation-wide service-enabling software harness. Embedded with four teams transforming their in-store sales experience, mentoring team members on technical issues, assisting in the adoption of the harness, and working with the team developing the harness by giving feedback on those adoption experiences.
 * Platform Architect, Clothing Retailer**

Working as a tech. lead for a team of several developers in the development of [|FAR 117] rules for tracking crew flight time. This is a required to fly system with a hard deadline of January 4, 2014 for complete implementation and data deadline starting 28 days earlier. Developed functionality and coached other developers in both coding and agile practices. Supported several production-live versions leading up to the final release on December 6, 2013.
 * Technical Lead, Airline Carrier**

Also worked on dev-ops related items including: automated build for continuous integration, scripting of developer virtual machines.

Schedule into early 2014 to assist in the removal of unnecessary technical stack, which will include the removal of Enterprise Java Means and migrating from WebSphere to Tomcat.

Originally introduced to help with refactoring of a system but instead switched to agile enablement as the current solution was a symptom of a systemic problem. Assisted the team in the introduction of many of the Scrum practices, identification of and elimination of bottlenecks in their overall software development process and the creation of a preliminary backlog for new work. Continued with assisting in identification of the work that needed to be done, estimation on delivery possibility versus promises and helped introduce some of the XP practices into another team.
 * Consultant, Smart Grid Company**

This organization also needed to grow and I assisted in the definition and application of an interview process for several roles: Business Analyst, Quality Assurance (with emphasis on automation), Senior Developer.

Project: Service Retirement and Replacement
 * Consultant, Travel Corporation**

Member of team developing replacement of existing services implemented in CORBA and C++. Project stack included JMS (ActiveMQ and Tibco), Rest-based API (Jersey), IoC (Spring 3), ORM (Hibernate 3.x), Automated Test (JBehave, JUnit), Build (Maven), Continuous Integration (Jenkins), Revision Control (git, git svn bridge). Team organization included a combination of Scrum and XP with 2-week sprints. Responsibilities included both development as well as mentoring and general technical leadership within the team.

Project deployed into production 7/2012 and currently in use as of 2012.

Project: Architecture & Technology Assessment/Product Development
 * Consultant, Online Education Provider**

Member of team evaluating as-is system including: Amazon EC2, NetSuite, SalesForce, custom-build Java Applications all integrated to provide an overall learning experience. Assisting in redesign of a simplified and overall improved intermediate solution. Also involved in inception of project related to online payment processing as well as COTS product evaluation.

Object Mentor
May 2007 - December 2011 Title: Senior Trainer, Mentor and Consultant


 * Training**
 * Taught C++ and Object Design
 * Taught several Test Driven Development & Refactoring classes in multiple languages (C++, Java, C#, VB.Net).
 * Taught several Working Effectively with Legacy classes in C++, C# and Java.
 * Taught Patterns, Practices and Principles of OOD in multiple languages (Java, C++, C#)
 * Taught Agile Immersions with several people, including Robert Martin


 * Course Development**
 * Developed and taught C++ and TDD Training at NASA
 * Developed and taught course on Agile Requirements and Project Coordination
 * Co-developed and co-taught course with Robert Martin on Concurrent software development using Java 5 and TDD.
 * Co-developed blended learning curriculum involving on-line learning for TDD in a Java environment
 * Co-developing TDD Coaching Master Class
 * Co-developing blending learning curriculum called Reclaiming C++ involving working with large legacy C++ projects.
 * Coaching, consulting and teaching several of the Object Mentor offerings
 * Several course customizations involving TDD/Refactoring/Legacy Code Refactoring


 * Consulting & Coaching**
 * Several Agile/XP Immersions
 * Involved with several Agile in the Large Transitions (> 100 people)
 * Archicturial Assessment, coaching and training for a large C#-based Point of Sale Terminal provider
 * Agile transition, immersion, ongoing coaching with a large online travel offering
 * Agile coaching and mentoring with two large insurance companies. On primarily focused on automated testing and archicturail assessment, the other primarily focusing on improving several technical skills such as Test Driven Development.

Project Experience - Valtech
January 2001 - May 2007 Title: Principal Consultant

Boot Camp: Agile Development with Java, Hertz Corp.
 * Transformational Services Instructor**

Developed and offered an 8-week boot camp on agile software development from Java to Requirements as well as using TDD learning understand and develop withing an existing reference architecture. This 8-week offering is a blend of formal training on Java Programming, Design and Requirements intermixed with project work on a reference architecture. The students will practice most of the Scrum practices (maintaining a product backlog, sprint planning, daily scrum meetings) and many of the XP practices (TDD, Pair Programming, Refactoring, Simple Design, Small Releases, Continuous Integration, Collective Ownership, Coding Standard). The intention is for the attendees to continue training with on-site mentoring after the 8-week immersion program.

Custom Course Development: Agile Requirements Management
 * Transformational Services Instructor**

Developed in tandem with [|Craig Larman] a custom 2-day requirements workshop merging agile and lean principles and offered this course back to back in Israel.

Course Development: Agile Requirements Exploration
 * Transformational Services Instructor**

Developed and taught new course on Agile Requirements Exploration using User Stories. This course is roughly 70% exercise based. Attendees work through many experientially based exercises to develop user stories and understand the differences between more traditional "Requirements Management" and requirements exploration.

Course Development: Designing Systems using EJB 3 and JPA
 * Transformational Services Instructor**

Developed and taught on EJB 3 and JPA technologies using tutorials and experiential-based exercises. This week long course start with basic JPA and works through EJB 3 using stateless and stateful session beans, extended contexts, message driven beans and EJB security. This course is roughly 80% exercise and practice based with 20% being lecture and general discussions.

Project: TAS Fleet Control
 * Technical Lead - The Hertz Corporation**

Coordinated the activities of six developers, three consultants, four business analysts and one manager. The project had 3 primary goals:
 * Mentor COBOL programmers to become Java/J2EE developers
 * Mentor Business Analysis in Requirements, Analysis and Iteration Planning
 * Convert an existing COBOL application to Java/J2EE on top of an in-house Reference Architecture (co-developed by Hertz and Valtech).

Project: Several
 * Consultant/Senior Developer - The Hertz Corporation**

Coordinate both developers and consultants. Design and develop significant parts of the reference architecture. Train developers in the use of those parts of the reference architecture. Implement functionally to specifications. Interact with Business Analysis to refine and change requirements.

Project: ASAP Fleet Control
 * Consultant/Developer Mentor - The Hertz Corporation**

Mentored a team within Hertz in the adoption of Object-Oriented Programming, component technologies using J2EE and the unified process interspersed with several elements of agile methodologies. The project is re-engineering a project using Java, J2EE and the Unified process as a pilot. The goal is to move more projects over to newer technologies and software development processes. The pilot project what Hertz uses for fleet management

Project: TAS Fleet Control
 * Consultant/Business Analysis Mentor - The Hertz Corporation**

Mentored a team of four Business analysts in the development of requirements and analysis artifacts, preliminary test artifacts, iteration planning, and distributed collaboration (Dublin, Ireland to Oklahoma City, OK, USA).

Project: (Several)Project Kick-Starts - The Hertz Corporation
 * Consultant/Mentor - The Hertz Corporation**

Facilitated the Inception phase of 7 projects by guiding the development of a project vision and preliminary requirements. This was both in tandem with projects I worked on as well as projects for other groups. Developed, documented and followed a process for project kickoffs within the Hertz umbrella.

Project: Government Benefit Rewrite
 * Consultant/Technical Lead - English Modernization Program, The UK Government**

Worked on 340+ person project. Evaluating requirements and developing technical approach for release 1.1 of a project currently under development. Develop technical options, working with technical stakeholders to determine interfacing between projects, high level design and project estimation.

Project: Top-Down UP Introduction
 * Process Mentor - Large Utility Company**

Worked in Program Management Organization to introduce the unified process across the organization, I worked with management to:
 * Select UP disciplines to introduce first,
 * Evaluate and select tools in support of those disciplines,
 * Develop local policies relevant to the organization,
 * Develop and deliver appropriate training and mentoring in the adoption of the unified process.

Project: Mentor 26 Consultants
 * Mentor - ABC Virtual Communications**

Developed and delivered a boot camp to 26 ABC Virtual Communications employees. The Boot Camp Covered:
 * Basic Java Programming
 * UP - Light
 * OO Analysis, Design and Programming
 * J2EE


 * Instructor - Valtech Technologies**

Developed, refined and taught several courses including: code code
 * Advanced Java and Object Design
 * Java and Object Design
 * Object Oriented Analysis and Design
 * Introduction to Object Technology
 * Designing Internet Applications Using J2EE
 * Technical Introduction to Java
 * Introduction to Java and Technical Architecture
 * The Unified Process Distilled

Project Experience - ObjectSpace, Inc.
May 1993 - January 2001

Project: Creation of architecture hosting e services supporting the travel & leisure industry, publishing e services to wireless devices
 * Technical Architect - Galileo International**

Technical architect for system. Captured functional and non-functional requirements for the development of a system of e-services. Developing appropriate components and interfaces for a highly distributed environment. Developed a solution consuming those components and publishing content to wireless devices and browsers.


 * Internal Mentor/Technical Lead - ObjectSpace, Inc.**

Developed and taught internal mentoring programs for OOA&D and C++ development. These courses cover the following general areas:
 * Formal software process (UML & something close to Rational's process)
 * Requirements gathering
 * Analysis
 * Distributed system architecture
 * Detailed Design
 * Development & Construction
 * Unit test some test planning
 * J2EE (EJB, Servlets/JSP, etc)
 * General soft skills

Project: Integration of back-end support systems for hardware and software systems deployed to the web.
 * Technical Lead - A Fortune 5 Company**

Working with another architect performed architectural review. Recommended and implemented improvements to existing system. Came onto project very near its demise. The project was developed with no technical leadership. There was little coordination of parallel efforts in different parts of the country. The project had little chance of any success by the time we joined. Developed and began implementing changes to introduce support for primary modalities. Left the project after not being able to implement planned changes. Project failed a few months later after spending approximately $16 million dollars.

Project: Field management & control.
 * Senior Consultant/Mentor - One of the big 3 Oil and Gas Companies**

Mentored a group of 4 developers on the creation of a Java system to wrap existing system functionality in a way that makes the system more accessible and usable to the users of the system. Involved in full life-cycle development from preliminary architecture work, through conceptual modeling and use case development with users through to design, development and some level of testing. Tools used include Java, RMI, JNI, Unify Database, JavaBeans, RPM, Java Plug-In and Swing 1.1.

Project: Develop application architecture/Repeat Business
 * Technical Lead/Architect - A Nation-Wide Digital Cellular Provider**

Develop a conceptual and technical architecture to support a suite of applications falling under the area of network management. Developed a system allowing for dynamic addition and distribution of functionality. Installation time configuration via Java Beans, primary name server and dynamic server backup and recovery to satisfy the modality of high-availability.

Project: Private banking business process analysis
 * Senior Consultant -An Industry Leading Component Vendor**

Developed a conceptual model for a private banking domain by analyzing multiple private banks. The project focused on general ledger management, investment portfolios, and legacy system interaction. Developed a general understanding of private banking information management and modeled this knowledge in a CASE tool for use in complexity analysis, project scoping, and requirements development.

Project: Network configuration and management tool
 * Technical Lead - A Nation-Wide Digital Cellular Provider**

Extended a part of a mission-critical system allowing users to request hardware and software updates to a nation-wide digital cellular network. Developed a three-tier system running in various browsers supporting JDK 1.1. Communications between the presentation layer and middle tier was implemented via sockets then later with Voyagerâ¢. The middle tier connected to at first a Microsoft SQL Server database via JDBC then later to Oracle. This project also involved some skills transfer. Upon initial deployment of the system, the client was able to extend the system unaided by ObjectSpace to about 3x its original deployed functionality.

Project: Task allocation & management
 * Senior Consultant - A major heavy equipment manufacturer**

Worked with client starting with requirements. Refined UI model, developed preliminary test plan. Refined use case model. Performed analysis and design of entire system. Analyzed and designed common components to be used at an enterprise level for a suite of applications running on a common desktop. Technical architecture included DCE/RPC, Java clients and a C++ back-end.

Project: Embedded Java development
 * Consultant - A Major Telecommunications Company**

Served as technical lead in the development of server and client-side functionality using Java. Developed proprietary client/server protocols and participated in architecture refinement.

Project: PBX configuration and ordering
 * Consultant - A Major Telecommunications Company**

Acted as technical lead in server development using Java. Also involved in schema redefinition and C++ and Smalltalk support for management of the underlying operating system.

Project: Toll-free call routing configuration
 * Consultant/Mentor - A Major Long-Distance Service Provider**

Worked with Smalltalk and C++ infrastructure development and development of overall system architecture. Also involved in mentoring and in the design of connectivity to legacy systems using OODBMS.


 * Instructor - ObjectSpace, Inc.**

Developed and taught the following ObjectSpace courses for companies spanning such industries as telecommunications, banking, resource allocation, and scheduling.
 * C++
 * Advanced C++
 * Java
 * Smalltalk
 * Object-Oriented Analysis and Design Using Booch/UML/Fusion

Developed and taught internal workshops on Java and Voyager for ObjectSpace employees.

Developed and taught internal mentoring programs for OOA&D and C++ development. These courses cover the following general areas: code code
 * Formal software process (UML & something close to Rational's process)
 * Requirements gathering
 * Analysis
 * Distributed system architecture
 * Detailed Design
 * Development & Construction
 * Unit test some test planning
 * J2EE (EJB, Servlets/JSP, etc)
 * General soft skills

Teaching
February 92 - May 93
 * Instructor - University of Texas at Arlington (UTA)**

Developed and taught a C++ course in the continuing education department at UTA. Developed and taught several courses on C and using C on a UNIX system.

August 1990 - December 1991
 * Teaching Assistant - University of Iowa**

Course: Embedded Systems Development Rewrote course from 68000 Assembly to C. Ported compiler in support of this.

August 1989 - August 1990
 * Research Assistant - Center for Computer Aided Design**

Project: Finite element analysis of structural systems Developed domain models of abstract data types and interfaces to relational tables. Also developed tools to support other developers. Became project's technical resource for C++ development as well as development environment usage.

April 1985 - December 1991
 * Instructor - Kirkwood Community College**

Developed and taught several computer literacy courses including using tools such as WordStar, WordPerfect, SuperCalc, Dbase III+. Authored the textbook for one course. code code

Presentations

 * 2013: Scandinavian Developer Conference**
 * Seeing the world through you-colored glasses: The Dependency Inversion Principle in Action
 * Embedded Functional Testing with FitNesse and CSlim


 * 2010: Agile Testing Days**
 * 2011: Agile Testing Days**
 * Hosting the open space


 * 2010: Norwegian Developers Conference**
 * Get your business out of my face: Improving the testability of UI code
 * Half-Day tutorial: Automated Acceptance Testing


 * Agile 2009**
 * Pair-Programming, how not to


 * Agile 2008**
 * Pair-Programming, how not to
 * Test Driven Development and Concurrency


 * 2008 SD Best Practices**
 * Test Driven Development and Concurrency
 * An introduction to Aspect Oriented Programming


 * 2006 Tulsa Tech Fest**
 * Java 5 Variable Arguments
 * An Introduction to Aspect Oriented Programming
 * The Spring Templates: Template Method, Strategy and Function-Objects
 * Code Coverage and its Relationship to Quality


 * 2007 SD West**
 * Code Coverage: Can we really improve the quality of code using code coverage


 * 2006 Valtech Days**
 * An Introduction to Aspect Oriented Programming
 * JUnit 4 Reviewed: First Impressions

Education
Bachelor of Science in Computer Science from the University of Iowa

Recently attended:
 * Problem Solving Leadership Workshop by Weinberg
 * Congruent Leader Change Shop by Weinberg
 * Leader's Forum by Strider & Clien, 1998, 1999
 * Weinberg's SEM group
 * Satir Yearlong Performance Development Program
 * SEM Writers Workshop
 * AYE Conference
 * X-Workshop

January 1990 - December 2000
 * Book Reviewer - Addison Wesley**

Reviewed approximately 30 books on various subjects, including: code code
 * C++
 * Advanced C++
 * Java
 * Requirements Management
 * Architecture

Publications

 * Several Self-Published Technical Articles**
 * Automated Acceptance Testing with FitNesse
 * Aspect Oriented Programming with Aspect J
 * JPA and EJP 3
 * Test Driven Development/Behavior Driven Development in several languages including: C++, Scala, Java, Ruby, C#
 * Several more, please refer to; []
 * Improving the testability of UI Code
 * Testing concurrent applications


 * Contributed Two Chapters to Clean Code**
 * Two chapters on concurrent programming and testing concurrent programs


 * STL by Glass and Schuchert**

Authored second half of book on algorithms in the STL published by Prentice Hall.


 * Introduction to Microcomputers by Schuchert**

Authored manual containing tutorials and reference materials for the use of word processors, relational databases, and spreadsheets.