 |
Michael Foord - Curriculum Vitae
Past, Present, and Future
| Name: | Michael Foord |
| Date of Birth: | 12th August, 1974 |
| Contact: |
michael@voidspace.org.uk |
| Location: | Northampton, UK |
| Telephone: | 07731 383732 |
| Status: |
Married |
| Natonality: | British |
| Other: | Full Driving License |
| Address: |
27 Brook Street,
Northampton,
NN1 2PE
|
| Date: |
This document created May 2006 |
| Updated: | Last update January 2008 |
This document is available, in RTF format, from
Michael Foord - CV.rtf.
My name is Michael Foord. I currently work at Resolver Systems in London, as a senior software engineer developing primarily in Python. We are creating a desktop application for the financial services industry, using the .NET framework. The application is written with IronPython and C#.
I am also writing a book called IronPython in Action, for Manning Publications. It will hopefully be published this year.
| Name of Institution |
From - To |
Qualifications |
Grade |
Date |
Higher Education
Cambridge University,
Corpus Christi College
Cambridgeshire.
|
1993 - 1994 |
BA (Hons) Law
1st Year
|
Completed |
1994 |
A Level Education
St. Georges VA School,
Harpenden,
Hertfordshire.
|
1990 - 1992 |
A Levels
|
Grades
|
1992 |
AS Level Education
St. Georges VA School,
Harpenden,
Hertfordshire.
|
1990 - 1991 |
AS Levels
- General Studies
- Science in
Society
|
Grades
|
1991 |
GCSE Education
Verulam School,
St. Albans,
Hertfordshire.
|
1986 - 1990 |
8 GCSEs
- Maths
- Physics
- Chemistry
- Economics
- English Lit.
- English Language
- History
- Technology
|
Grades
|
1990 |
Qualifications
Amateur Radio Exam
|
1988 |
Amateur Radio
Exam |
Credit |
1988 |
- Training
|
1996 - 2005 |
- Negotiation
- Customer Service
- Assertiveness /
Time Management
- Various Product
Specific
|
|
|
| Job Title: | Senior Software Engineer and Community Champion |
| Employer: | Resolver Systems |
| From - To: | April 2006 - Date |
| Hours: | 32 Hours Per Week |
Working as part of a small team of programmers, creating a spreadsheet development environment (a programmable spreadsheet) aimed at the financial services industry.
This is programmed almost entirely in IronPython (for the Microsoft .NET platform) with some C#. It uses Windows forms for the presentation layer. The whole team has played a part in the architecture decisions and constant refactoring to maintain code quality and readability.
Because of my contacts with the Python and open source community, I am also the team 'Community Champion' (Technology evangelist).
We use agile development techniques like pair programming, test driven development (both unit tests and functional tests), continuous integration and iterative development. At the time of writing Resolver is thirty thousand lines of production code and one hundred and twenty thousand lines of code in the test framework.
This has involved some work directly with the Win32 API, primarily for automation in the functional test suite but also for remoting and a few other areas.
| Job Title: | Sales Manager |
| Employer: | TBS - Independent Builders Merchants |
| From - To: | 1995 - April 2006 |
| Hours: | 32 Hours Per Week |
- Managing the sales team at the Daventry depot of TBS, including:
- Day-to-day management
- Sales reporting
- Appraisal, training and personal development of staff
- Management of performance
- Ensuring excellent customer service from all team members
- Working with customers on project requirements including:
- Initial contacting phase
- Specification and product requirements
- Quoting and Price negotiation
- Project management of orders including post delivery follow up
- Negotiating with customers and suppliers
- Monitoring the stock profile
- Researching and advising on new products
- Responsible for winning new business and new customers
- Resolving problems and disputes including customer service
| Job Title: | Telesales |
| Employer: | Independent Financial Adviser/St.Albans |
| From - To: | 1992 - 1993 |
| Hours: | 40 Hours Per Week |
| Job Title: | Technical Services |
| Employer: | Small Computer Shop / St.Albans |
| From - To: | 1992 - 1993 |
| Hours: | 40 Hours Per Week |
- Upgrading Archimedes computers
- Technical support and advice via the telephone
- Minor repairs to computers and peripherals
I am passionate about computers and I possess excellent technical ability. I
have been using computers since the days of the BBC B 32k (early and mid
eighties). I even messed around designing my own computers with the Z80
processor and single board computer designs. I did some assembly language
programming on the Amiga (the Motorola 68000 chipset), this was my first
experience making operating system calls. I learned HTML, to manage my own
website, several years ago.
About five years ago, I started to learn Python for a project I was involved in.
Python is a cross platform, object oriented, and dynamic language. It comes
included in almost all distributions of Linux. It is often used as a web
development language and for shell scripting - but it is also well suited to
larger projects and desktop applications. It is used extensively by Google -
and is one of their four preferred languages. I appreciate the elegant design
philosophy of Python, and the clean programming style it encourages.
I have now been working with Resolver for a year, with IronPython and C#. I have learned a great deal about project architecture and have increased my appreciation of readable code.
My areas of experience include :
- Object Oriented Programming
- Programming styles including:
- MVC (plus observer and command patterns)
- Event Oriented Programming
- Recursion
- Stack based programming
- Source Code Control (Subversion)
- Unicode and character encodings
- Text parsing and processing
- Technical writing: documentation, articles, and tutorials
- Parsers and grammars (mainly with PLY)
- Windows Forms and the .NET framework
- wxPython and Tkinter Python GUI toolkits
- C# and the .NET framework
- Testing (including Test Driven Development and agile methodologies)
- Databases (some T(SQL))
- HTML and XHTML
- CSS
- XML
- ACCU Conference, Oxford 2008
- Expert Zone Developer Summit (Stockholm 2008)
- Microsoft TechEd Conference (Barcelona, November 2007)
- Mix UK Microsoft Developer and Designer Conference 2007 (London)
- Developer Day 6 (Microsoft Community Event, Reading 2007) and DDD Ireland (2008)
- PyCon (Dallas in Texas, February 2007 & Chicago, March 2008)
- Academic Student Conference (Krakow in Poland, March 2007 & 2008)
- RuPy, Ruby and Python Conference (Poznan in Poland, April 2007 & 2008)
As well as writing IronPython in Action for Manning publication, I've written various articles and tutorials on Python. (See the
articles section of my website for examples).
Some of my writing has been published by PyZine the
online Python Journal. This includes :
- An article on writing web clients in Python
- An article on writing CGI (web) applications in Python
- An article on Unicode and character encoding issues
My article on ConfigObj (an configuration file parsing library) was published in the (print) publication
Python Magazine.
A short article of mine was published in the UK MSDN Flash (Microsoft Developer Newsletter): Getting Started with IronPython. This was one of the first articles they published by a non-Microsoft
employee.
I currently manage several open source projects. Almost all the code I have
produced is available for download from my website. Last year my projects were
downloaded around forty thousand times. They include:
Movable Python - http://www.voidspace.org.uk/python/movpy/
Movable Python is a distribution of Python (for Windows) that does not need
to be installed. It includes a development environment and is typically used
from USB flash drives or for creating demo versions of applications. In 2005,
it was downloaded several thousand times from sourceforge.
rest2web - http://www.voidspace.org.uk/python/rest2web/
This is a website creation tool. It combines (X) HTML templates with the
ability to store content in reST format. It generates static HTML pages.
reStructured Text is a WYSIWYG,
plain text format. It is much nicer to maintain content in reST than in HTML.
rest2web generates breadcrumbs (navigation trails) and sidebar menus
automatically, along with all sorts of other optional features. The latest
addition is a gallery plug-in.
ConfigObj - http://www.voidspace.org.uk/python/configobj.html
This Python module presents application configuration data as a single
object. It reads and writes config files using an ini style syntax - with
single line commands (methods). Sections can be nested to an arbitrary depth
and members are accessed using normal Python dictionary syntax.
It has many powerful features (value substitution, integrated type checking of
config file entries) - but its main feature is that it is very easy to use.
ConfigObj is now used in Bazaar, the distributed
version control software used by the Ubuntu Linux distribution and
Turbogears one of the largest Python web
frameworks.
- Committed, intelligent and quick to learn.
- Confident, clear and effective communicator at all levels
- High degree of customer care skills, including quality of service
- Excellent written (e.g. reports, essays, letters) listening, presentation and
verbal skills (both telephone and face to face), including an accurate eye
for detail
- Excellent relationship building skills, with the ability to obtain
individuals trust quickly
- Good knowledge and experience of using non-verbal communication systems,
- Excellent networking and negotiation skills
- Willingness to learn new skills and develop myself, my knowledge and
experiences
- Prioritising and multi-task planning of work load
- Information resource and research, ranging from committee papers to advice
- Organisation and administration of training, campaigns and events
- Self-sufficient and self-reliant with office administration for myself and
others
- Good time, office & diary management, including flexibility
- Applying a systematic approach to solving complex problems
- Developing and implementing administrative procedures and policies
- Perform well under pressure and enjoy a challenge
- Ability to identify my own training needs
- Ability to play any role within a team and I have worked in a range of
positions where teamwork is essential and would be an asset to any
development team
- Excellent at working on my own initiative, although knowing when to ask for
help
- Strong skills such as:- initiator, motivator, proactive approach, problem
solver and a finisher
I enjoy meeting, mixing and socialising with new people. My past-times include
Python development, and writing, as well as keeping up-to-date with current
affairs.
Details available on request.
Details available on request.
Details available on request.

Return to Top
Last edited Mon Apr 21 00:56:15 2008.
Counter...
|