Dr. Stephen Freeman - Curriculum Vitae
An experienced software professional with a proven record in:
- Agile software development
- Software architecture
- 15 years object-oriented design and implementation
- Project management, team leading, technical mentoring
- Varied development environments: research, bespoke, and shrink-wrap
- Technical writing
- Electronic commerce, distributed systems, graphical user interfaces, meta-object techniques
Achievements
- Technical leadership and timely delivery of high quality software
- Coaching and mentoring
- International seminars and presentations
- Succesful projects at major research laboratories
- Publications in major journal and conferences
Current Position
Software Architect, Thomson Financial
I was recruited by some ex-colleagues to take over the development and support of a system for targetting content distribution (Java applets and Oracle). The system was in production with several major banks, but development had been chaotic and the remaining members of the team were frustrated; there were also major issues with the system design. I introduced measures to improve quality, such as: proper development tools, automated build, test-driven development, and pair programming. I mentored the members of the team to improve their development skills and understanding of object-oriented design. We have reduced our maintenance overhead by improving deployment, setting up a clean development and test environment, and removing redundant code; we have also started migrating the product to a more flexible design.
On the management side, I moved the culture of the team away from "command and control", pushing decision-making to the most appropriate people. For example, I moved the choice of which features to implement from development to support and product management, so that our business requirements drive our development priorities. I introduced an iterative development cycle that keeps us in touch with our internal customers, and ensures that our development effort remains focussed. I also arranged a facilitated Retrospective workshop to initiate a culture of Process Improvement within the team as a whole. An early outcome was that developers became more involved in the estimating of new work so that it could be more accurately specified and costed.
Later, I was chosen as one of the team leads during a corporate process reengineering and was nominated to join a company-wide Innovation group. Since then I have been involved in the technical preparation for a major bid. My current role includes technical review and coaching development staff in Agile techniques.
Technical Skills
- E-Commerce: ATG Dynamo, J2EE, Oracle, XML
- Languages: Basic, C, C++, C#, Cobol (Stratus), Java, Mesa, Modula-3, PL1 (Stratus), PL/SQL (Oracle), Python, Scheme, Smalltalk (IBM), SQL (Sybase), Tcl, Unix Shells
- Platforms: Unix, Stratus VOS, MS Windows, Cedar
- Systems: client/server, TCP/IP, SunRPC, CORBA
Employment
April 2001 - December 2001 |
Splashplastic Ltd |
Web architect |
June 2000 - March 2001 |
Big Blue Steel Tiger Ltd |
Principal Consultant |
April 1999 - April 2000 |
Lombard Risk Systems |
Senior Software Architect |
October 1998 - March 1999 |
Reuters |
Software Architect |
July 1996 - September 1998 |
Object Technology International |
Senior Programmer |
January 1996 - June 1996 |
Citymax |
Managing Consultant, Technical Strategy Group |
November 1995 - December 1995 |
Digital Equipment Corp. |
Visiting Researcher, Systems Research Center, Palo Alto |
June 1994 - October 1995 |
Rank Xerox |
Computer Scientist, Rank Xerox Research Centre, Grenoble. |
July 1993 - September 1993 |
Digital Equipment Corp. |
Summer Internship, Systems Research Center, Palo Alto |
Throughout 1992 |
Rank Xerox |
Contractor, EuroPARC, Cambridge, UK |
July 1990 - September 1990 |
Xerox Corporation |
Summer Internship, PARC, Palo Alto |
1987 |
TCAM System |
Consultant |
1987 |
Software Sciences Ltd. |
Senior Programmer |
1985 |
|
Programmer |
1984 |
|
Junior Programmer |
|
Education
- 1994, Ph.D, Computer Laboratory, University of Cambridge, An Architecture for Distributed User Interfaces
- 1989, Postgraduate Diploma in Computer Science, University of Cambridge, Distinction for final project
- 1984, BMus, Manhattan School of Music, New York, NY, USA
- 1979, BA Hons (Social Statistics), University of Manchester
- 1976, St. Johns College of F.E., Manchester
- 1975, Manchester Grammar School
-
Miscellaneous
- Invited speaker, Icelandic Software Conference, Reykjavik, June 2003
- Programme Chair, OT2003, St. Neots, UK, April 2003
- Committee and presenter, XP Day 2, Ironmonger's Hall, London, November 2002.
- Presentation, Developing with Mock Objects, Belgian Java Users' Group, Antwerp, November 2002.
- Workshop leader, Adventures in Unit Testing, XP2002, Sardinia, May 2002
- Presentation, Test-Driven Development, Java SIG, London, April 2002.
- Workshops: Project Rot,Expanding the Boundaries of Unit Testing, OT 2002, Oxford, April 2002.
- Conference Chair, XP Day 1, Imperial College, London, December 2001
- Tutorial on test-first programming. BBC, London. November 2001
- Tutorial, No stone unturned, OOPLSA, October 2001, Tampa, FL.
- Presentation, Living with XP, EuroForum, Stockholm
- Panel, The business of XP, XP2001, Sardinia, May 2001
- Tutorial, No stone unturned, XP2001, Sardinia, May 2001
- Workshop on Extreme Programming, Sun Microsystems Consulting, April 2001.
- Tutorial, Feats of Unit Testing, OT2001, Oxford, April 2001
- Course, Test-first programming, Dresdner Kleinwort Wasserstein, London, February 2001
- Presentation, Extreme Presentation, Symbian, London, 2000
- Seminar, Extreme Programming, Nokia, Helsinki, 2000
- Seminar, Extreme Programming, Ericsson, Stockholm, 2000
- Workshop leader, The Extreme Hour, OT 2000, Oxford, 2000
- Workshop, The Extreme Hour, JSIG, London, 1999
- Workshop leader, Learning from Experience, OT'98, Oxford, 1998
- Panel member, CSCW and the Web, World Wide Web 4 Conference, Paris, 1995
- Seminar, The Millicent protocol for inexpensive electronic commerce, University College, London, 1995
- Seminar, The Millicent protocol for inexpensive electronic commerce, GTE Laboratories, 1995
- Seminar, Industrial research and technology transfer, Universita Bocconi, Milano, 1994
- Young Researcher Fellowships to attend EuroGraphics (Barcelona) and Computer Supported Cooperative Work (Milano) conferences, 1993
- Seminar, Distributed Window Systems and CSCW, University of Milano and EurAtom (Ispra), 1993
- Member Paper review committees, InterCHI 1993; EuroGraphics 1993; CHI 1994, 1998; OT 1999, 2000, 2001; XP 2000, XP2002, XP2003
- Lecture, Distributed Window Systems, CNR-CNUCE, Pisa, 1992
-
Publications
- S. Freeman, P. Simmons, Retrofitting Unit Tests, eXtreme Programming and Flexible Processes in Software Engineering, Sardinia, June 2002.
- T. Mackinnon, S. Freeman, P. Craig, Endo-testing: Unit testing with Mock Objects, eXtreme Programming and Flexible Processes in Software Engineering, Sardinia, June 2000
- J-M. Andreoli, S. Freeman, R. Pareschi, The Coordination Language Facility: coordination of distributed objects, Theory and Practice of Object Systems, 1996
- S. Freeman, Partial Revelation and Modula-3, Dr. Dobb's Journal, October 1995.
- S. Freeman, An Architecture for Distributed User Interfaces, Technical Report, Computer Laboratory, University of Cambridge, 1994.
- S. Freeman and M.S. Manasse, Adding digital video to an object-oriented user interface toolkit. European Conference on Object-Oriented Programming (ECOOP), Bologna, Italy, 1994.
- S. Freeman, Gemma: an open architecture for distributed user interfaces, EuroGraphics Workshop on Object-Oriented Graphics, Portugal, 1994.
- S. Freeman, Invited "State of the Art" report on Computer Supported Co-operative Work, EuroGraphics Conference, Barcelona, September 1993.
- E. Bier and S. Freeman, MMM: A User Interface Architecture for Shared Editors on a Single Screen. In Proceedings of ACM Symposium on User Interface Software and Technology, Hilton Head, SC, November, 1991.
-
Personal Details
- Date of birth: 7 January 1958
- Nationality: British
- Married
-
Experience
- Web Architect, Splash Plastic Ltd.
- Technical lead for development of website and on-line systems: ATG Dynamo 5, Tomcat, SOAP, Oracle. Responsible for improving development and deployment processes. Coaching and mentoring
- Principal Consultant, Big Blue Steel Tiger Ltd.
- Project lead on pilot for talkingfamilies.com: ATG Dynamo 5. Technical coaching on various projects, including lastminute.com and beerislife.com: Dynamo 4.5 Sales presentations and documentation Improving company engagement process Extreme programming coach.
- Senior Software Architect, Lombard Risk Systems
- Responsible for development process and architecture for distributed risk management system (Java and CORBA)
Joint lead of a project of 12 people to build a derivatives pricing engine. First stage completed within 3 months, including a set of Excel spreadsheets for functional testing and demonstrations. First experience implementing Extreme Programming.
- Software Architect, Reuters
- Java architect within the Client Site Development Group. Coordinating and consulting for Java-based development within Reuters.
- Senior Software Engineer, Object Technology International (OTI), London
- OTI is an advanced software engineering company based in Ottawa, Canada, wholly owned by IBM. Its best known products are IBM's VisualAge for Smalltalk and Java. I was part of a small team in London that developed an object-oriented modelling tool to be included in IBM's VisualAge for Smalltalk. I was responsible for components concerned with hypertext, publishing and code generation, and for other tasks such as recruiting our student interns.
- Member of Technical Strategy Group, Citymax, London
- This role included membership of teams to select infrastructure for the next generation of product, to introduce object orientation across the company, and to re-engineer development process. Also provided project mentoring on object-oriented design and implementation.
- Visiting Researcher, Digital Equipment Corporation, Systems Research Center, Palo Alto
- I worked on the Millicent project for internet micro-payments. Wrote concrete specification of HTTP protocol and worked on a reference implementation for micro payments over the World-Wide Web.
- Computer Scientist, Rank Xerox Research Centre, Grenoble
- Technical architect for implementation of Coordination Language Facility (CLF), a rule-based language for the coordination of distributed applications. Role included responsibility for design and implementation of the system, team leading, and supervision of a visiting PhD student.
- Summer Intern, Digital Equipment Corporation, Systems Research Center, Palo Alto
- Summer internship to implement digital video in Trestle, an object-oriented user interface toolkit for the X window system written in Modula-3. The system exploited Modula-3's threads and type system to provide a clean and flexible architecture. The library was then integrated into higher-level tools so that programmers can easily assemble video applications.
- Contract programmer, Rank Xerox EuroPARC, Cambridge
- Part of a team implementing a database for a research project to record people's movement and activity over time. I designed the database structures, which had to support rapid querying of the current state and archiving of long-term data, and wrote a number of tools for entering, manipulating and retrieving information.
- Summer Intern, Xerox Palo Alto Research Center (PARC), Palo Alto
- Summer internship to build a user interface system to support multiple users sharing a single display. Features of the system were later folded back into the development environment and a paper was published at a major user interface conference.
- TCAM Systems Ltd., London
- Designer and Team Leader on Traded Options system built within a tight deadline. Responsible for sub-system for broadcasting prices in real-time.
Project Leader on substantial modification of Gilts dealing-room system to acquire compatibility with related system. Rebuilt processes for real-time updating of prices on screen.
- Software Sciences Ltd.
- Development and Maintenance on COLT (Continuous On-Line Trading) Equities dealing system, including: time at customer site writing programs to interpret feeds from Stock Exchange; on-site maintenance for customers; preparation of demonstration systems.
Analysis and Documentation of NSTS (National Securities Trading System) from Cincinnati Stock Exchange: building demonstration systems; giving demonstrations to customers; assistance in preparation of bids.
Part of team building system to route cables through telephone exchanges. Responsible for module to calculate cable lengths. GEC, Coventry.
Testing proprietary packages on new PC's and workstations at IBM Research Laboratories, Hursley.
Built functioning prototype of COLT from system specification during initial bid on IBM PC.
Part of Programme Support Team for Alvey ECLIPSE programme: built spreadsheet to model programme budget; liaison between programme manager and project managers; assistant to Systems Manager.