 |

Michael Feathers is the author of
Working Effectively with Legacy Code.
The book contains proven strategies
for maintaining and enhancing legacy code!
|
Michael Feathers
Senior Trainer, Mentor and Consultant
Michael Feathers is a senior member of Object Mentor team. He provides training, coaching and mentoring services in Agile/XP programming practices, test-driven development, refactoring, object-oriented design, Java, C#, and C++. Michael has over 12 years of experience in developing world-class software solutions. Prior to joining Object Mentor, Michael designed a proprietary programming language and compiler as well as a large multi-platform class library and a framework for instrumentation control.
Michael is an active member of the Agile/XP community. As a contribution to this community, he developed and maintains the CPPUnit ? an open source C++ port of the JUnit testing framework. He is a member of the ACM and IEEE. He regularly speaks at software conferences around the world and has been the acting chair for the Codefest event at the last three OOPSLA conferences.
When Michael isn't engaged with a team, he spends his time investigating new ways of altering design over time in codebases. His key passion is helping teams surmount problems in large legacy code bases and connecting with what makes developing software fun and enriching.
Work Experience
Object Mentor Incorporated, 1999 - Present
Senior Trainer, Mentor and Consultant
Coulter Corporation Hematology Research and Development , 1995-1999
Senior Software Engineer Level II
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.
Coulter Corporation Applied Research, 1992-1995
Software Engineer II, Sr. Software Engineer
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.
Coulter Corporation Applied Research , 1991-1992
Programmer Engineer I
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
B.S. Computer Science, 1991
Florida International University
M.S. Computer Science, Thesis In Progress
Florida International University
Selected 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 for use with legacy code bases.
Benidorm
Poovar
Tagaytay City
Hyderabad
Cancun
Five Islands Village
Kumily
Cala en Bosc
Agra (Uttar Pradesh)
Kolkata
Nashik
Chennai
Burlingame
Horley (Surrey)
Las Vegas
Anaheim
Miami Beach
Ravenscar
Palma Nova (Mallorca)
Dubai
Manchester
Puerto Vallarta
Big Sur
Costa Adeje (Tenerife)
Niagara Falls
Bowness-on-Windermere
Hellaby
Puerto Morelos
Hellendoorn
Marmaris
London
Candelaria
San Antonio
Seattle
Punta Mita
New York
Frankenmuth
Reno
San Francisco
Port El Kantaoui
London
Negril
Ahmedabad
Palm Beach
Lake Buena Vista
New Orleans
Kochi
Washington
Los Angeles
Udaipur
Paranaque City
Panama City Beach
Hobart
Frinton-on-Sea
Corlette
Bickenhill
Santa Cruz Huatulco
Raipur (Chhattisgarh)
Tonsai Beach
Serpong
San Agustin (Gran Canaria)
Punta Cana
Didim
Kejayan
Wollongong
Athlone
Ludhiana
Myrtle Beach
Perth
Brockenhurst
Abu Dhabi
Hapeville
Orlando
Tangerang
Newport (Gwent)
Exeter
Lakeville
San Diego
North Berwick
Cobram
Cleveland
Lower Beeding
Sawai Madhopur
Purnankuppam
Williamsburg
Honolulu
Rottnest Island
Scottsdale
Kollam
Paris
York
Puerto del Carmen (Lanzarote)
New Delhi
Faridabad
Side
Estepona
Yelagiri
Cape Town
Umhlali
Briarcliffe Acres
Montreal
Park City
Wilmcote
Khimsar
Durham
Torquay
Pigeon Forge
Ballyconnell (Cavan)
Jasper
Emboodhoo Lagoon
Sydney
Can Picafort (Mallorca)
Torremolinos
Balabag (Boracay)
Pitlochry
Darjeeling (West Bengal)
Chandigarh
Boston
Sharm el-Sheikh
Mumbai
Purwokerto
Kardamena (Kos)
Islamabad
Osoyoos
Collingwood
Ottawa
Playa del Ingles (Gran Canaria)
Tirupati
Ku?adas?
Colombo
North Myrtle Beach
Cambridge
Fethiye
Batu (East Java)
Dharamshala
Lagos
Medan
Vail
Chester
Avila Beach
Kodaikanal
Troon
Cape Schanck
Dublin
Horseshoe Bay
Peterborough
Berkeley
Palembang
Cork
Birmingham
Melbourne
Palm Beach
Ixia (Rhodes)
Pune
Benner
Antalya
Looe
Tagalbato
Playa Paraiso
Richmond (Greater London)
Chelsea
Lucea
Lanzarote
Toronto
Turks And Caicos Islands
Costa Rica
Coimbatore
Grindelwald
Canary Islands
Albufeira
Naples
Miami
|