Saving the world from bad software.
home | search | contact us  
Agile/XP OO Mentoring Training Embedded Resources Customers
About Us
history mission philosophy people contacts location careers
Proven strategies for maintaining and enhancing legacy code!

Working Effectively
with
Legacy Code

Learn more

Winner of the 2002 Jolt Award!

Agile Software Development: Principles, Patterns, and Practices.
Click here to learn more.

A pragmatic view of UML!

UML for Java Programmers.
Click here to learn more.
Michael Feathers

"Michael doesn't know when he started developing software, but he knows that he has been developing for pay for at least the last twelve years. He has been active in the XP community for the past four years, balancing his time between working with, training and coaching various teams around the world. Prior to joining Object Mentor, Michael designed a proprietary programming language and wrote a compiler for it, he also designed a large multi-platform class library and a framework for instrumentation control. Publically, Michael developed Cppunit, the initial port of JUnit to C++, and has spoken at several conferences. He is a member of the ACM and the IEEE and he has acted as the chair for the Codefest event at the last three OOPSLA conferences. When he isn't engaged with a team, he spends most of this time investigating ways of altering design over time in codebases. His key passion is helping teams surmount problems in large legacy code bases and connect with what makes developing software fun and enriching."


WORK HISTORY

1999-present
Senior Trainer/Mentor
Object Mentor, Inc

Currently providing training and mentoring in Test Driven Development (TDD), Refactoring, OO Design, Java, C#, C++, and Extreme Programming (XP) to a variety of clients ranging from a financial services company to a geographic database company. Co-instructor of the XP Immersion training courses. Maintainer of CPPUnit, the C++ port of the JUnit testing framework.

1995-1999
Sr. Software Engineer II
CC Hematology Research and Development

Authored departmental system development process. Became the designer and lead programmer for the Instrument Control and Data Acquisition project: a multi-application, multithreaded Windows NT-based framework using COM components to accommodate instrument hardware variability. Delivered five milestones of functionality to internal customers. Co-designed and mentored the development of COM components suitable for reuse across departmental software. Gave in-house talks about Catalysis and Martin Fowler's Analysis Patterns. Joined a product development team and participated in the design of a distributed system with proprietary middleware.

1992-1995
Software Engineer II, Sr. Software Engineer
CC Applied Research

Designed and implemented the second-generation of an object-oriented class library for hematological data analysis. Carried the project through a full lifecycle using IEEE standards. Supervised the work of two other employees on the continued development of the library. Initiated research into alternative multivariate data analysis techniques. Oversaw the transition of the library from a research tool to production software. Developed proprietary data analysis techniques currently in use in production software. Developed a prototype instrument control and data acquisition application for research instruments. Mentored coworkers on various object-oriented projects.

1991-1992
Programmer Engineer I
Coulter Corporation (CC) Applied Research

Designed a programming language for the development of hematological data analysis algorithms. Implemented a re-targetable compiler for the language using C++ and YACC. C++ was the first target language.

EDUCATION

1991
B.S. Computer Science,
Florida International University,
Miami, Florida

(thesis in progress)
M.S. Computer Science,
Florida International University,
Miami, Florida

PUBLICATIONS

Factoring Class Capabilities with Adjectives
Journal of Object-Oriented Programming, April 1999

ACTIVITIES

Stability through Change
OOPSLA 1999, Accomplishing Software Stability Workshop

System Tunneling with Data
OOPSLA 1999, Meta-Data and Active Object Model Workshop

Member of the ACM and the IEEE Computer Society

Member of the OOPSLA99 2000 DesignFest Organizing Committee.

Organizer of BoF Sessions at the JavaOne 2000 Conference.

Currently writing a book about concrete techniques teams can use to work with legacy code bases.


privacy statement | terms of use © Copyright 1994 - 2005 Object Mentor, Inc.