Stephen P Berczuk

http://www.berczuk.com                                                                                        Email: steve@berczuk.com

Expert in agile software development and release management with over 20 years of experience delivering enterprise applications through multiple release cycles.  Skilled at leading teams, mentoring team members, developing architecture, design, and requirements, and establishing lightweight software configuration management and release processes to enable organizations to build stable products quickly. Author of Software Configuration Management Patterns: Effective Teamwork, Practical Integration (Addison-Wesley 2002). Certified Scrum Master (Practicing). Demonstrated ability to understand and improve legacy code and to become proficient at new technologies quickly.

Education

Stanford University          Stanford, CA                                              June 1988

Master of Science in Operations Research

Massachusetts Institute of Technology                                                 June 1987

SB in Electrical Engineering

Experience

Cyrus Innovation (Boston MA)                                             Technical Lead, Scrum Master                                January 2008 – Sept 2008

Technical Lead for the Boston office of a New York City based agile consultancy. Coach team members, provide training in agile methods and SCM techniques to clients, develop code as part of an XP-Team. Assist with Boston business development activities.

    Established a lightweight Scrum project management process and helped team meet sprint goals.

    Coach team members and clients on agile software development techniques.

    Developed code in Java, J2EE, Webwork and Hibernate using XP Practices (Pair Programming, TDD, Continuous Integration).

    Participated in other client projects to provide strategic assistance as needed.

    Managed a team of 4 engineers on client site.

Fast Search and Transfer (Needham, MA)                  Sr Software Engineer, Scrum Master                January 2006 – August 2007

Technical Lead for a search application development team. Develop code, participate in project and release planning and management and serve as Scrum Master for the team developing an e-commerce application using the FAST platform. Java, J2EE.

    Developed application components in Java.

    Developed build and release management system using Maven, Cruise Control and CVS.

    Organized Sprints and planned releases with the team using Jira and Confluence.

    Worked with product management and QA to clarify requirements into planable units of work.

    Consulted with other application teams on applying scrum and using Jira and Confluence effectively.

    Coached and mentored team members in Unit Testing and design.

    Provided support for customers and solutions team.

    Managed a team of 4 engineers.

Boston R&D Operations were shut down.

Iron Mountain (Boston, MA)                                                                  Sr Software Engineer               June 2004 – December 2005 

Developed software for a Digital Archives application. Developed automated build and deployment scripts. Introduced Scrum to the organization. Established a Wiki knowledge repository for the project. Influenced Release and Configuration Management best practices. Scrum master and automation evangelist.

    Developer, Sustaining Team. Fixed software problems and wrote deployment and administration tools.

    Developed application software and build scripts for next generation Digital Archives application. Technical resource for J2EE frameworks (Struts/Tiles, JSTL), testing frameworks, and build/integration tools (ANT, Maven, MKS). Assisted team lead with task management and Scrums.

    Technical Lead for project to define reference architecture for the next generation Digital Archives application. Facilitated daily Scrum meetings and weekly project planning and status sessions. Designed and developed framework components in Java using J2EE and the Spring Framework.

    Technical Lead for application to convert proprietary format messages to RFC2822 format for archiving. Developed code in Java and Perl. Worked with QA and operations to improve deployment.

Contract Work

Perceptive Informatics (Waltham MA)                        Contract Software Developer      February 2004 – June 2004

Member of a 3 person team developing a web application interface to configure the database for an IVR system for clinical trials. Developed in Java using J2EE technologies, including JSP, JSTL, Struts, Tiles and the Tomcat application server. The team used an iterative/agile approach with unit tests and weekly releases. The application uses an Oracle database and the Torque O/R persistence framework.

Aliaswire, Inc. (Boston MA)                                        Consultant/Software Developer August 2003 – February 2004

Developed software and managed projects for a telephone and web based bill presentment and payment system using Java, J2EE technologies, Tomcat and the Eclipse IDE for this early stage start-up.

    Led the development of the telephone (VXML) interface to the bill payment application. Managed a 3-person team. Maintained and extended VXML for a voice application.

    Developed components to implement a bill payment system with a web and telephone interface using Java, J2EE technologies (JSP, Taglibs), Jakarta Struts, VXML. Implementing interfaces to an Oracle database and an XML over HTTP web service interface. Led the effort to use Struts in the application. Developed a testing infrastructure for voice and web applications using Cactus, StrutsTestCase, JUnit, DBUnit, XMLUnit,and HTTP Unit.

Independent Consulting  & Community Work              August 2002 – August 2003                                            

    Consulting: Consulted with clients about how to improve their build and version management process.

    Development: Oct – Nov 2002: Developed a tool in Java for monitoring a telephony server for a health care VXML application for Silverlink Communications using Eclipse, and the Log4J. Set up a version control system (CVS), and intranet server (Apache).

    Writing and Training: Presented tutorials on using agile development techniques at conferences and to clients. Regular columnist at CMCrossroads.com. Technical Advisor for StickyMinds.com. Built and maintained, a wiki for Worcester, MA high school students to review each others work. Taught classes on web design to high school students.

Skyva International (Medford, MA)                                      Developer                                   June 2001-August 2002

Developed Java applications for business process modeling, and service management applications.

    Prototyped web services applications for the Skyva application. Focused on run time configuration issues.

    Developed tooling for configuring persistence (RDB to Object mappings for an Oracle DB) using IBM San Francisco Framework and Java. Developed requirements.

    Practiced and evangelized agile development approaches. Wrote ANT scripts and assisted with build and configuration management processes.

Laid off Aug 15, 2002. Sykva was acquired by ABB International in 2002.

iPhrase Technologies (Cambridge, MA)                               Principal Software Engineer             October 2000-May 2001

Developed software in Python, Java, and C++ for 2 release cycles of a web-based natural language search engine that ran on Windows and Unix platforms. Introduced and applied agile development techniques.

    Technical Lead for Presentation Team. Developed the infrastructure to allow iPhrase to use XSLT and CSS technology to present the search results, allowing customers to customize presentation. Planned releases, defined requirements, supported customer deployments. Supervised 1 engineer.

    Verification Tools team developer. Defined project goals, wrote tools to verify the performance of the query interpretation and answer systems in Python. Wrote a prototype tool in Java for editing test data l. Wrote a web-based interface for the query tool to allow testers to run tests more effectively.

Laid off May 2001.

Verbind (Boston/Lexington, MA)                                             Senior Software Engineer                July 1999-October 2000

Developed software in C++ for a Customer Relationship Management (CRM) System.

    Technical lead for Audience Manager portion of the CRM application, which coordinated audience selection and message delivery. Supervised 1 engineer. Defined the architecture and XML interfaces. Refactored, maintained, and enhanced core CRM technology using C++ and Rational Rose.

    Facilitated agile development process in the company including requirements and design processes. Developed build and release scripts and assisted with configuration management process.

Left in advance of a layoff and to pursue more challenging work. Verbind was acquired by SAS in 2002.

NetSuite Development Corporation (Concord, MA)              Sr Software Engineer                      October 1998-July 1999

Developed Software in C++ and Visual Basic for a enterprise network design application. Led quality improvement process including code reviews.

    Key member of the product design and development team for the Enterprise product. Adapted existing APIs to work in a client server environment using Oracle. Technical lead for new features team.

    Primary developer for the COM API used by network design products. Supervised the architecture of the network design framework. Enhanced and maintained core APIs using C++ and Rational Rose.

Netsuite has since been acquired by Visionael Corp.

Biztravel.com (Somerville, MA)                                             Sr Software Engineer                April 1998-September 1998

Developed software in C++ for an internet travel reservation system running on Windows NT.

    Designed and developed software and support tools. Developed and maintained interfaces to the customer reservation system. Designed and developed database access code and (Oracle) database schemas. Designed and developed monitoring and reporting tools in Perl and C++ for operations personnel.

Laid off September 1998. Biztravel has since been acquired by Rosenbluth International.

Corechange, Inc (Boston, MA)                                            Sr Software Engineer                     January 1997-April 1998

Developed software for a client-server organizational management application in C++ under Windows.

    Developed a role-based desktop customization application using C++, DCOM, Win32 APIs and ATL.

    Worked with deployment teams to develop product requirements and to provide custom solutions. Assisted QA team with test planning. Improved requirements process, and mentored junior staff.

Left in advance of a layoff. Corechange has since been acquired by Open Text.

Optimax Systems Inc (now I2) (Cambridge, MA)                            Sr Software Engineer           February 1996-December 1996

Developed genetic algorithm based manufacturing scheduling applications using Microsoft Access and Visual Basic under Windows and HPUX using VBA, MS Access, C++ and a proprietary constraint language. Maintained and extended the scheduling toolkit. Designed database schemas to store constraint and scheduling data.

    Project Manager for vehicle paint scheduling application. Delivered application into production. Engaged in extensive customer contact to develop requirements and provide support and enhancements.

    Wrote a prototype Available-To-Promise system in Java.

Once my client project was done I left to pursue work emphasizing programming in C++.

MIT Center for Space Research(Cambridge, MA)                 Software Tools Engineer               June 1992-January 1996

Developed real-time data analysis and satellite monitoring software in C++, TCL, and Perl on Unix (Ultrix, SunOS4, Solaris2) for the Rossi-XTE satellite under tight deadlines and rapidly changing requirements to analyze and archive real-time data. Designed and promoted a C++ framework for handling telemetry used by teams at 3 sites. Performed support tasks, including, developing and maintaining the SCM system across project locations.  Supervised graduate and undergraduate students who developed tools to support our work.

Eastman Kodak Boston Technology Center(Billerica, MA)    Software Engineer                       May 1990-February 1992

Developed Photo CD photographic applications using C++, X11/Motif, on Unix (SunOS). Technical liaison between Boston and Rochester development teams. Implemented user interface, application and framework, and image processing APIs.

Laid off Feb 1992.

Systems Center, Inc. (Waltham, MA)                                   Technical Support Representative        Jan 1989-April 1990

Supported and tested products that managed and optimized DB2 applications running under MVS/TSO. Assisted customers in technical evaluation of products, resolved customer problems involving database design and optimization, and product customization, and wrote tools for customer and internal use. Trained support representatives in MA, VA, and UK offices.

Left to pursue work as a programmer.

Publications

I have a regular column on Agile Software Configuration Management on CM Crossroads (www.cmcrossroads.com). A complete list of publications (including links to online versions) is available at www.berczuk.com/pubs.

Book

Berczuk, Stephen with Brad Appleton. Software Configuration Management Patterns: Effective Teamwork, Practical Integration published by Addison-Wesley, November, 2002.

Articles

Berczuk, Steve, Pragmatic Software Configuration Management, IEEE Software. March/April 2003.

Berczuk, Steve, Software Configuration Management Resources, a Reference Point article in the January/February 2003 issue of STQE Magazine (Volume 5 # 1).

Cabrera, Ralph, Brad Appleton, and Steve Berczuk. 1999. Software Reconstruction: Patterns for Reproducing the Build. In Proceedings of the Sixth Annual Conference on Pattern Languages of Program Design. Monticello, IL.

Berczuk, Stephen P. 1997. Teamwork and Configuration Management. C++ Report 9, no. 7: 28 ff.

Berczuk, Stephen P. 1996. Organizational Multiplexing: Patterns for Processing Satellite Telemetry with Distributed Teams. In Pattern Languages of Program Design, ed. John Vlissides, James Coplien and Norm Kerth, 2. Reading, MA: Addison-Wesley.

Berczuk, Stephen P. 1995. A Pattern for Separating Assembly and Processing. In Pattern Languages of Program Design, ed. James Coplien and Douglas Schmidt, 1. Reading, MA: Addison-Wesley.

Berczuk, Stephen. 1994. Finding Solutions through Pattern Languages. IEEE Computer 27, no. 12 (Dec. 1994): 75-76.

Background

Member of ACM, IEEE, and Computer Professionals for Social Responsibility. Participate in the Boston Agile Bazaar. Author of the book (Nov 2002) Software Configuration Management Patterns: Practical Teamwork, Effective Integration.  Active in OOPSLA and Agile Software Development communities. Columnist for CM Crossroads News (news.cmcrossroads.com). Participate in Boston Agile Development user group. Presenter at Agile Conference (2004-2007), SD Best Practices (2004-2007), and Agile Development Practices (2008) and participated on panel discussions for SD Times and CM Crossroads.

Member of the Program Committee for the 1996 through 2000 Pattern Languages of Programs conference, and Program Chair for the 1998 conference. Co-Leader of a workshop on Configuration Management Patterns for ChiliPLoP 98, held in Wickenberg, AZ in March 1998. Participant in a workshop on Organization Patterns at OOPSLA 1999.

My professional interests include software patterns, team dynamics, and agile software development.

Graduate of Stuyvesant High School in New York City. More information about my interests and current projects is on my web site: www.berczuk.com.