Curriculm Vitae: Dr. Dafydd Rees
Experience Summary
Extreme Programming (5 years)
Certified Scrum Master (3 years)
Java (7 years, SCJP)
Globally distributed, agile teamworking (3 years)
Full software lifecycle experience.
Early adopter of Ruby on Rails.
Experience of writing and presenting technical courses.
Personal Details
Web: www.dafydd.net
Mobile: +44 (0)7968 486 880
Education and Qualifications:
| 1995 - 2001 | PhD in Software Engineering: An Algebraic Theory of Software Interfaces, Swansea University. |
| 1992 - 1995 | BSc Computer Science (Hons. II.1), Swansea University Swansea. I achieved an "excellent" grade for my contribution as team manager on a project which involved building a compiler using C, lex, yacc and Solaris. My dissertation applied algebraic methods to a software-assisted proof of Groetschel's conjecture (a graph theory problem). |
| 1990 - 1992 | A-Levels, Gorseinon College: Law (A), Computer Science (A), and Economics (B) I was awarded the 1992 prize for outstanding achievement in Law. |
| 1984 - 1990 | 10 GCSE Passes, Ysgol Gyfun Gwyr |
| 2006 October | Advanced Hibernate, JBoss, London |
| 2006 August | Retrospective Facilitiation Course, Agilexp, London |
| 2005 April | Mind Mapping Course, Buzan Centre, Poole |
| 2004 July | Certified Scrum Master (Agile Project Management Course) |
| 2003 December | Extreme Programming Day 3 |
| 2003 March | Sun Certified Java Programmer for Java 1.4 |
| 2003 February | Responsibility-Driven Design Workshop, eXtreme Tuesday Club, London |
| 2002 November | Extreme Programming Day 2 |
| 2001 December | BCS Extreme Programming Day |
| 2001 September | Arsdigita Course: The ACS Java Bootcamp |
| 2001 August | Sun Microsystems Course: The Java Programming Language |
| 2000 June | Business Connect, Swansea: Starting a Business (a short course) |
Affiliations
ACM - I am a member for the Association of Computing Machinery
BCS SPA - I am the secretary of the BCS "Software Practice Advancement" group and have been an active member for the last ten years.
Professional Experience
June 2006 - May 2007, Developer, BNP Paribas, London
Working on an extreme programming team on a bond static data system consolidating static data for fixed income within the bank. This system is developed in London and deployed globally with users in New York, London and Tokyo. Specifications for our system consisted of HTML pages written in co-operation with our business analysts. These specifications are run using the Java FIT framework and form part of the formal system build.
Technologies: Java 5, Hibernate, Jakarta Tomcat, Linux, Oracle, FIT
November 2002 - June 2006, XP Developer, Wireless Data Services Global
Worked in a globally distributed extreme programming team mostly working in Java using the following technologies:
EJB, JSP & Servlets (with Tomcat and Orion), Swing, Axis (SOAP), XSLT, JDBC, JUnit, Spring, Jakarta Velocity, DbUnit, JMock, Toplink, Ant and Cruise control.
I have full life-cycle experience from project inception to decommissioning. I have been especially involved in customer-facing work. I was a participant in one of the first, follow-the-sun agile teams.
I was appointed team lead on a project to create an internal tool written using Ruby on Rails. Despite introducing a new language, web server and framework to the team and integrating them into a complex build, the application was delivered three days early.
I have made significant contributions to our custom, J2EE web application framework which is a Model-View-Presenter framework, including lazy view population (for speed), submodel aspects (for management and configuration of many, slightly different web applications) and with type converters (that considerably simplify the code by using real objects rather than identifiers).
Using my Prolog-skills, I played a leading role introducing rules-based email configuration. This has allowed internal users to describe configuration changes using rules and to quickly determine the consequences of those rules on a set of about 5100potential configurations.
I have been involved in maintenance of a Microsoft Pocket PC application for the iPaq PDA written in embedded Visual C++.
Whilst working for WDS (Americas) in Seattle I mentored developers new to Java and object-orientation. I also wrote and presented a design patterns workshop.
I have been fortunate to receive coaching from two of Europe's most experienced Extreme Programming coaches (Oliver Bye and Joseph Pelrine.)
April 2002 - November 2002 Analyst/Programmer, Cardiff e-commerce practice, BT
I worked on a web-based sales tool that configures, prices and submits complex contracts. This involved using the Selectica ACE knowledge base, Weblogic and Oracle. The work largely concerned the development of new features and cleaning existing code. I also helped clarify requirements with clients and introduced automated builds and unit testing to the team.
April 2000 - November 2001 Self-employed Software Developer
I spent a year developing web applications. I also taught some courses at the Swansea University. During this year, I wrote, presented and examined a first course in software engineering and a separate course in team software development. Independent work involved building and using a web development toolkit based on Perl and MySql.
September 1995 - March 2001 Ph.D Research Student (Sponsored by BT), BT and Swansea University
My research concerned the mathematics of packaging software into re-usable components and describing object models using algebraic specification. Further information about my PhD is available at www.dafydd.net/thesis
1998 - 1999 Robert Recorde Studentship in Computer Science, Swansea University.
This studentship involved full teaching responsibility for the Data Communications and Data Networks course taken by 130 undergraduate students. Further work included writing and presenting courses on Unix, C and Java. During this year, I co-authored technical reports with other staff members and helped a research group develop regression testing scripts and code for a C++ project. I contributed a new section to the Theory of Programming Languages course.
1995 - 1996 Web Content Development (part-time), Swansea University
I undertook private work translating the Welsh language prospectus into a web site. This work involved writing a suite of conversion programs in the Awk and Perl scripting languages. I have since performed a number of smaller, paid web-related tasks.
1992 - 1995 British Alcan Studentship (summer job and sponsorship)
Whilst working in the IT department I developed a Pascal program that was used to estimate the packing cost of wire products. I also helped the finance department migrate from Supercalc to Quattro Pro by re-writing spreadsheet macros.
Technology-Specific Skills
Programming Languages used in production: Java, Ruby (with Rails), Perl, Prolog, C++
Server Platforms used in production: Apache, Tomcat, Orion, Weblogic, JRun
Databases used in production: Oracle, SQL Server, MySQL
Favoured XP Tools: Eclipse, JUnit, CppUnit, PyUnit, Ant, Cruise control, Clover, Dynamock, Easymock, JMock
Very familiar: Test-Driven Development, Refactoring, Design Patterns, Extreme Programming, Object-Relational Mapping (Toplink and Hibernate), Responsibility-Driven Design, Model-View-Controller and Model-View-Presenter-based user interfaces, J2EE, Ruby, Perl, UML, XML, HTML, Linux, Microsoft SQL Server, Prolog
Familiar: Python, Smalltalk (Dolphin and Squeak), Oracle, C++, C#, Awk, Pascal, Unix, CGI-based web development (using Apache), Object-oriented design methods (Catalysis, Fusion, OMT and Syntropy), Rational Rose, the Selectica “ACE” KBS, JavaScript, PHP, MacOS X, Windows 98, 2000 and XP Professional.
I have been using object-oriented techniques for the last ten years and object-oriented modelling since before the first public release of UML.
I have experience of building systems using advanced object technology including TypeObject-based meta-models, double-dispatch and prevayler-based persistence.
Due to my teaching engagements I have considerable experience of problem solving and explaining technical issues in plain English.
Pro-bono Projects
JCollector - A Junit test collector. I wrote a small framework that ensures that all test cases are added to an appropriate test suite. This is done in a way that highlights test cases that haven't been classified properly as a unit, functional or acceptance test. See http://sourceforge.net/projects/jcollector/
Ant Profiler - The time taken by an automated build can significantly affect the productivity of a team. I have written a profiler that measures the time taken by different tasks and targets within an ant build. This allows developers to make informed decisions about how speed up the build.
IT Wales - I have written numerous articles for ITWales.com mostly about software development, including an article about the proceedings at XP Day2, an article about the use of scripting languages and one about Open Croquet, the new Smalltalk-based virtual environment.
XP and Test-First Development Talk - In February 2003, I gave a talk about Extreme Programming to the BCS South Wales Group. This involved a live demonstration of test-first coding.
RSS Gateway - I have developed an RSS Gateway in Python that translates, caches and serves XML-based syndicated content from the BCS "Software Practice Advancement" public discussion forum. Although the first version performs cached, on-the-fly translation I'm conducting experiments that will allow updates to be triggered from mailing list subscriptions.
Publications
D.Ll. L. Rees, K. Stephenson and J.V. Tucker, The Algebraic Structure of Interfaces, Science of Computer Programming, 49 (2003), 47-88.
D.Ll. L. Rees, K. Stephenson and J.V. Tucker, The Algebraic Structure of Interface Definition Languages and Architectures (Revised Version), Technical Report CSR 14-2000, Department of Computer Science, Swansea University, 2000.
D. Ll. L. Rees, An Algebraic Theory of Software Interfaces, Ph.D. Thesis, Swansea University, 2000
References
References available on request.