Mike Taylor - CV
8th March 2010
For those who prefer CVs that take two minutes to read:
I'm Mike Taylor
<mike@miketaylor.org.uk>,
a 41-year-old software engineer with extensive experience and
expertise in software requirements analysis, architecture, design,
implementation, testing, debugging, maintenance, documentation and
training: the whole bundle from top to bottom. I also write
technical specifications and project bid documents, make
presentations and run workshops. I have a a BSc. in pure maths from
Warwick and a Ph.D in paleontology from Portsmouth.
I currently work as a consultant developer for Index Data
(indexdata.com),
a small independent software house. Prior to that, I was the lead
developer of the team that built the on-line ticket-sales systems
for various football and rugby clubs including
Tottenham Hotspur
(www.seatbooker.net/thfc).
My favoured tools are Unix (in its various flavours, including
Linux), C and Perl;
but I'm also experienced in Java, C++, Python, the Unix shells, sed,
awk, nroff,
HTML, lex, yacc, and much, much more. I wrote my first Windows
program fifteen years ago (on Windows 2!)
I'm keenly interested in network protocols - I wrote my first
multiplexing TCP/IP server in the 80s - and in interoperability
- I was a member of the SRW Editorial Board
(www.loc.gov/standards/sru),
which put together the
specifications for this standard Web Service for rich
searching and retrieval over the Internet.
I am the author of the Zthes profile for navigating hierarchical
thesauri
(zthes.z3950.org),
the instigator of the ZOOM initiative for standardising
object-oriented interfaces to information retrieval protocols
(zoom.z3950.org),
one of the primary authors of the ZeeRex specifications by which
IR servers can explain their own capabilities to clients
(explain.z3950.org)
and a key contributor the development of the new query language CQL
(zing.z3950.org/cql)
I created the ZOOM-Perl module for Z39.50 and SRU
programming
(http://search.cpan.org/~mirk/Net-Z3950-ZOOM),
zSQLgate, the generic Z39.50-to-RDBMS gateway server
(sql.z3950.org),
CQL-Java, a free Java implementation of the query language CQL
(zing.z3950.org/cql/java)
and Keystone Resolver, an OpenURL Resolver.
I've designed and built more information systems than I can count,
including content management, electronic publishing, community,
sport and entertainment, estate agency and e-commerce sites. Many
of these have
been web-based; others have used bespoke client software and/or
non-interactive input streams such as newsfeeds.
Ever since my first commercial software was published a quarter of a
century
ago, my history has been one of seeing a need and making things
happen, either alone or by drawing together and motivating ad
hoc teams.
If you don't like that you've read so far, you may as well stop
reading now: the rest of the CV merely expands on this summary.
Name: |
|
Mike Taylor |
Sex: |
|
Male |
Date of birth: |
|
12th March 1968 |
Nationality: |
|
British |
Address: |
|
Oakleigh Farm House Crooked
End Ruardean Gloucestershire GL17 9XF |
Telephone: |
|
+44 1595 546 941 |
Email: |
|
<mike@miketaylor.org.uk> |
Web: |
|
www.miketaylor.org.uk |
I've only had three full-time permanent jobs, because I tend to stay
with them for a long time.
As a consultant developer, I have very wide range of duties
including bid-writing and representing Index Data in the UK as well
as the tasks more usually associated with development and support.
The projects I have worked on include the following:
- Simple2ZOOM,
a universal gateway between the standard information
retrieval protocols Z39.50, SRU and SRW, used especially to
provide Z39.50 access to SRU servers. (Public open source
release due by the end of September 2007.)
- IRSpy,
a registry of standards-compliant information services,
including facilities to probe and test registered services to
discover their capabilities.
- ZOOM-Perl,
a Perl implementation of the ZOOM abstract API for access to
standards-compliant information services.
- Keystone Resolver,
an open source OpenURL Resolver supporting both
version 0.1
and
version 1.0
of the OpenURL standard. Keystone Resolver uses a system of
plugins to support a wide selection of identifier types,
service types and individual services.
- Alvis,
an ongoing collaborative project involving partner
organisations from several European countries joining to create
a peer-to-peer semantic search engine. My role has included
creating the metadata format specifications for peer
description and for representing semantically enriched
documents; and driving the process of agreeing a distributed
architecture for the system.
- The Library of Texas, a metasearch portal for the consortium of
Texas libraries, now running at
libraryoftexas.org.
- Work on the documentation for the
Zebra database.
- Implementation and documentation of the
ZOOM-C++
software (a C++ binding of ZOOM) included in the
YAZ++ toolkit.
As head of software engineering, I led development of a wide
variety of systems, including:
- SeatBooker
- an e-commerce system for selling seats at events such as football
matches and cinema screenings. Sales are visible in real-time
via a continuously updated Java applet. Current clients
include Tottenham Hotspur
(www.seatbooker.net/thfc)
and Southend United
(www.seatbooker.net/sufc)
- onefootball.com
- I created the web-based content management system by which this
pan-European football website was edited: players, teams,
leagues, competitions, transfers and about thirty other kinds
of object are all handled, together with the links between them.
- Logistical software for managing operations in a
cash-in-transit company whom I am not at liberty to name.
- The British Medical Journal's classified adverts website, at
www.bmjcareers.com
My role also included management of a small development team,
supervising placement students, and handling recuitment of both
permanent and placement staff.
In nine years at
System Simulation,
I worked extensively on the core of
Index+,
their proprietary text-and-multimedia information
management system. This software has evolved from humble beginnings
more than two decades ago into a comprehensive network-capable
system used widely in museums, image libraries, electronic
publishing and many other applications.
In addition to my work on Index+ itself, I was involved in building
the following systems for SSL, among others:
- The Victoria & Albert museum's collection management system,
built on Index+, encapsulating their complex data structure
requirements and curatorial procedures.
- The London Transport Museum's TAP (Total Access Project), an
organisation-wide integration of all their information:
collection management, public access, etc.
- Widely differing image library systems for both Hulton Getty
and Tony Stone Images, including image acquision pipelines,
captioning systems, web-based front-ends, etc.
- Plato (PLAnt TOxins), an expert system used by doctors to
rapidly identify poisonous plants from fragments of material
brought into the treatment room. This won the prestigious
gold medal in the
1994 BCS awards
- ROCKnROM, a massive CD-ROM database of popular music since the
1950s, linking artists, albums, songs, composers, engineers,
studios, charts, reviews and many other kinds of information.
This won a BCS award in 1995.
- Numerous other CD-ROM and web publishing systems, including
TICTAC
for identifying medicinal and other tablets; the
British Pharmocopoeia, the QA register, and the Civil Service
Yearbook.
I also wrote much of the Index+ technical documentation, and taught
numerous courses on Index+ applications, interfaces and internals at
a variety of levels to a variety of audiences, with the material
tailored accordingly.
In among my regular employment, I've found time to take on a few
freelance contracts, including:
- University of Sunderland (2007) -
The
Film and Video Distribution Database.
- Clackmannanshire Council (2004) -
Enhancements to the zSQLgate program described below, enabling
it to generate MARC records.
- Simon Fraser University, British Columbia, Canada (2003) -
Enhancements to the Net::Z3950 module described
below, enabling it to handle OPAC records.
- Knowledge Integration (2002) -
work on the Z39.50-in-Java toolkit,
JZKit,
including creation of a generic server.
My work with SSL, Seatbooker/TECC and Index Data has involved
extensive use of and contributions to the Z39.50 protocol
(lcweb.loc.gov/z3950/agency)
and its XML-based successor, the Search/Retrieve Web Service SRW
(www.loc.gov/standards/sru).
I've been a leading member of the ZIG (Z39.50 Implementors Group)
for many years, contributing to the specification, implementation
and dissemination of this important international standard for
distributed information retrieval. More recently, I was one of
the founder members of the SRW Editorial Board.
I count the following among my achievements in this area:
- I contributed to the CIMI profile for searching and
retrieving cultural heritage information
(www.cimi.org/public_docs/HarmonizedProfile/HarmonProfile1.htm)
- I wrote
the profile
for the EU-funded Aquarelle project, and
drove the process of harmonising it with the CIMI profile,
giving rise to the current CIMI document (see above).
- I am the principal author of the Zthes profile for thesaurus
navigation, and the creator and maintainer of its website at
zthes.z3950.org
- I am the instigator of the ZOOM initiative which aims to
standardise an abstract object-oriented API for access to
Z39.50 and SRW services; and the creator and maintainer of its website
at
zoom.z3950.org.
Besides the continuing development of the abstract ZOOM API,
my continuing contribution includes technical leadership of
the effort to define the C++ binding of that API, and
input into the definition of the Java binding and others.
- I was the author of the open source Perl module
Net::Z3950 for building Z39.50 clients.
(I have since superseded this with the ZOOM-Perl module,
written for Index Data and described above.)
- I am also the author of zSQLgate
(sql.z3950.org),
a generic Z39.50-to-RDBMS gateway server which allows the
contents of any relational database to accessed via Z39.50.
The gateway is targeted against a given set of databases
simply by editing a single configuration file.
- I am one of the primary authors of the ZeeRex specifications at
explain.z3950.org
(Z39.50 Explain, Explained and Re-Engineered in XML). These
specifications include an XML DTD, notes on using ZeeRex in a
web services environment, and user-oriented commentary.
Using the ZeeRex specifications, an IR server can explain
its own capabilities, and those of other servers, so that
intelligent client software can then configure itself
accordingly.
- I have contributed extensively to the development of of the
``Next Generation'' query language
CQL,
and written both
a free Java implementation of the query language
(zing.z3950.org/cql/java)
and the CQL tutorial
(zing.z3950.org/cql/intro.html).
- I have presented several papers to conferences. These include:
I've also written and released any number of spare-time programming
projects including
real-time puzzle games for serial terminals,
MUDs (Multi-User Dungeons),
email handling software, an SQL parser, a device-independent HTML
parser,
joke programming languages
and more.
- 2005-2009: Ph.D., University of Portsmouth
My dissertation, "Aspects of the history, anatomy, taxonomy
and palaeobiology of sauropod dinosaurs", consisted of five
chapter of which one is published in a major international
journal, two more are in press, and two are shortly to be
submitted. Details at
www.miketaylor.org.uk/dino/pubs
- 1986-1989: BSc., Warwick University.
Studied Mathematics, gradually taking a higher and higher
proportion of optional Computer Science units as it became
apparent that I'm better at CS than at pure maths. Graduated
with a 2.ii which I'm not particularly proud of. In the mean
time I founded and administrated a recreational computer
society which grew to become to the second largest society on
campus.
- 1979-1985: Bishop's Stortford Boys High School.
Passed eleven 'O' levels (Maths, Additional Maths, Physics,
Chemistry, Biology, English Language, English Literature,
French, German, Music and General Studies) and four 'A' levels
(Maths at grade A and Physics, Chemistry and Further Maths all
at grade C). Also grade 6 music theory and practice (playing
clarinet). Won a couple of trophies, but it all seems a long
time ago now.
- Two decades' intimate experience with Unix in a
bewildering variety of flavours including Linux, Solaris,
FreeBSD, SunOS, Ultrix, OSF/1, IRIX, SCO, Minix and more.
- MS-Windows experience going right back to building applications
for Windows 2.
- Extensive Perl programming, including module design and the
construction of large web-based systems running under the
Apache server's mod_perl.
- I've been writing C and C++ since the 80s, including very
low-level database engine work, concurrent systems,
networking, and much more. C and C++ were my primary
development languages for large, complex systems until I
became a Perl convert, and I remain on intimate terms with
them.
- Java design and programming, notably the definition and
implementation of
the Java binding
for ZOOM, and the CQL parser and server-side JZKit work
mentioned above.
- Masses of experience with the numerous ``little languages'' of
Unix: the various shells, Python, sed, awk, perl, nroff, tbl and eqn,
Tcl etc. I've used lex and yacc to build numerous
compilers (though I've also built a lot of compilers from
first principles without the use of such tools.)
- Broad & deep working knowledge of ANSI/NISO Z39.50 (ISO 23950)
and related IR technologies and concepts such as the Dublin
Core metadata framework; involvement with the design of the
SOAP-based ``Z39.50 Next Generation'' IR protocol
SRW.
- Detailed HTML and CSS (all the websites I maintain use
hand-coded HTML), XML, XSLT, HTTP, DocBook, etc.
- I'm a vivid if idiosyncratic technical writer, believing the
O'Reilly dictum that just because a document is technical and
precise, that doesn't mean it has to be dull. O'Reilly say
``Our books [...] have a down to earth quality. We like
straight talk that goes right to the heart of what people need
to know.'' That goes for me too.
There are plenty of examples of my technical writing at the
ZOOM,
Zthes
and
ZeeRex
sites, and also in the work-in-progress
Dinosaur FAQ
which I am writing - a different kind of technical writing,
but the issues are the same: clarity with readability.
- I'm a clear speaker and trainer on technical issues. Recent
feedback on my ZIG sessions described them as, and I quote,
``very entertaining'', which, while not necessarily what you'd
look for first, can't be a bad thing.
- Many of the Information Retrieval projects I've been involved
with (Zthes, ZOOM, ZeeRex) have come about because I have
taken the initiative in convening informal working groups to
evolve the specifications by email discussion. I seem to have
a knack for making that kind of thing happen.
- I've worked closely with graphic designers in many projects,
both web-based and involving bespoke UIs, integrating their
visual work into functional software.
- Similarly, I've often worked closely with content providers -
writers, museum curators, etc. - with strong ideas on
how the material for which they are responsible should be
presented. This kind of collaboration is a skill in itself.
- Oh, what the hell - I can do anything :-)