CINXE.COM
Mike Taylor - CV
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <link rel="stylesheet" type="text/css" href="/style.css"/> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="Author" content="Mike Taylor"/> <meta name="Date" content="8th March 2010"/> <title>Mike Taylor - CV</title> <script> (function() { var cx = '003756542089210583679:z8wz4cg76-s'; var gcse = document.createElement('script'); gcse.type = 'text/javascript'; gcse.async = true; gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') + '//www.google.com/cse/cse.js?cx=' + cx; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(gcse, s); })(); </script> </head> <body> <h1> Mike Taylor - CV <div style="width: 350px; float:right"> <gcse:search enableHistory="true"></gcse:search> </div></h1> <p style="text-align:left"><small>8th March 2010</small></p> <div class="toc"> <a href="#1">1. Summary</a><br/> <a href="#2">2. Personal Details</a><br/> <a href="#3">3. Employment History</a><br/> <a href="#3.1">3.1. February 2003-present: Index Data ApS.</a><br/> <a href="#3.2">3.2. July 1999-February 2003: Seatbooker UK Ltd. (previously TECC Ltd.)</a><br/> <a href="#3.3">3.3. April 1990-June 1999: System Simulation Ltd.</a><br/> <a href="#3.4">3.4. Miscellaneous</a><br/> <a href="#4">4. Professional Achievements</a><br/> <a href="#5">5. Education</a><br/> <a href="#6">6. Skills</a><br/> <a href="#6.1">6.1. Programming</a><br/> <a href="#6.2">6.2. Other</a><br/> <a href="#7">7. References</a><br/> </div> <H2><a name="1">1. Summary</a></H2> <P> For those who prefer CVs that take two minutes to read: <BLOCKQUOTE> <P> I'm Mike Taylor <<a href="mailto:mike@miketaylor.org.uk">mike@miketaylor.org.uk</a>>, 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. <P> I currently work as a consultant developer for Index Data (<a href="http://indexdata.com/">indexdata.com</a>), 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 (<a href="http://www.seatbooker.net/thfc/">www.seatbooker.net/thfc</a>). <P> 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!) <P> 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 (<a href="http://www.loc.gov/standards/sru/">www.loc.gov/standards/sru</a>), which put together the specifications for this standard Web Service for rich searching and retrieval over the Internet. <P> I am the author of the Zthes profile for navigating hierarchical thesauri (<a href="http://zthes.z3950.org/">zthes.z3950.org</a>), the instigator of the ZOOM initiative for standardising object-oriented interfaces to information retrieval protocols (<a href="http://zoom.z3950.org/">zoom.z3950.org</a>), one of the primary authors of the ZeeRex specifications by which IR servers can explain their own capabilities to clients (<a href="http://explain.z3950.org/">explain.z3950.org</a>) and a key contributor the development of the new query language CQL (<a href="http://zing.z3950.org/cql/">zing.z3950.org/cql</a>) <P> I created the ZOOM-Perl module for Z39.50 and SRU programming (<a href="http://search.cpan.org/~mirk/Net-Z3950-ZOOM/">http://search.cpan.org/~mirk/Net-Z3950-ZOOM</a>), <TT>zSQLgate</TT>, the generic Z39.50-to-RDBMS gateway server (<a href="http://sql.z3950.org/">sql.z3950.org</a>), CQL-Java, a free Java implementation of the query language CQL (<a href="http://zing.z3950.org/cql/java/">zing.z3950.org/cql/java</a>) and Keystone Resolver, an OpenURL Resolver. <P> 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. <P> 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 <I>ad hoc</I> teams. </BLOCKQUOTE> <P> 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. <H2><a name="2">2. Personal Details</a></H2> <TABLE border="0" cellpadding="1" cellspacing="1"> <TR> <TD align="right" valign="top">Name:</TD> <TD></TD> <TD>Mike Taylor</TD> </TR> <TR> <TD align="right" valign="top">Sex:</TD> <TD></TD> <TD>Male</TD> </TR> <TR> <TD align="right" valign="top">Date of birth:</TD> <TD></TD> <TD>12th March 1968</TD> </TR> <TR> <TD align="right" valign="top">Nationality:</TD> <TD></TD> <TD>British</TD> </TR> <TR> <TD align="right" valign="top">Address:</TD> <TD></TD> <TD>Oakleigh Farm House<BR>Crooked End<BR>Ruardean<BR>Gloucestershire<BR>GL17 9XF</TD> </TR> <TR> <TD align="right" valign="top">Telephone:</TD> <TD></TD> <TD>+44 1595 546 941</TD> </TR> <TR> <TD align="right" valign="top">Email:</TD> <TD></TD> <TD><<a href="mailto:mike@miketaylor.org.uk">mike@miketaylor.org.uk</a>></TD> </TR> <TR> <TD align="right" valign="top">Web:</TD> <TD></TD> <TD><a href="http://www.miketaylor.org.uk/">www.miketaylor.org.uk</a></TD> </TR> </TABLE> <H2><a name="3">3. Employment History</a></H2> <P> I've only had three full-time permanent jobs, because I tend to stay with them for a long time. <H3><a name="3.1">3.1. February 2003-present: Index Data ApS.</a></H3> <P> 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: <UL> <LI>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.) <P> <LI><a href="http://irspy.indexdata.com/">IRSpy</a>, a registry of standards-compliant information services, including facilities to probe and test registered services to discover their capabilities. <P> <LI><a href="http://search.cpan.org/~mirk/Net-Z3950-ZOOM/">ZOOM-Perl</a>, a Perl implementation of the ZOOM abstract API for access to standards-compliant information services. <P> <LI>Keystone Resolver, an open source OpenURL Resolver supporting both <A href="http://www.openurl.info/registry/docs/pdf/openurl-01.pdf" >version 0.1</A> and <A href="http://library.caltech.edu/openurl/Standard.htm" >version 1.0</A> of the OpenURL standard. Keystone Resolver uses a system of plugins to support a wide selection of identifier types, service types and individual services. <P> <LI><A href="http://alvis.info/">Alvis</A>, 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. <P> <LI>The Library of Texas, a metasearch portal for the consortium of Texas libraries, now running at <a href="http://libraryoftexas.org/">libraryoftexas.org</a>. <P> <LI>Work on the documentation for the <A href="http://indexdata.dk/zebra/">Zebra</A> database. <P> <LI>Implementation and documentation of the <A href="http://indexdata.dk/yazplusplus/doc/zoom.tkl">ZOOM-C++</A> software (a C++ binding of ZOOM) included in the <A href="http://indexdata.dk/yaz++/">YAZ++</A> toolkit. <P> </UL> <H3><a name="3.2">3.2. July 1999-February 2003: Seatbooker UK Ltd. (previously TECC Ltd.)</a></H3> <P> As head of software engineering, I led development of a wide variety of systems, including: <UL> <LI><A href="http://www.seatbooker.net/">SeatBooker</A> - 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 (<a href="http://www.seatbooker.net/thfc/">www.seatbooker.net/thfc</a>) and Southend United (<a href="http://www.seatbooker.net/sufc/">www.seatbooker.net/sufc</a>) <P> <LI><TT>onefootball.com</TT> - 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. <P> <LI>Logistical software for managing operations in a cash-in-transit company whom I am not at liberty to name. <P> <LI>The British Medical Journal's classified adverts website, at <a href="http://www.bmjcareers.com/">www.bmjcareers.com</a> <P> </UL> <P> My role also included management of a small development team, supervising placement students, and handling recuitment of both permanent and placement staff. <H3><a name="3.3">3.3. April 1990-June 1999: System Simulation Ltd.</a></H3> <P> In nine years at <A href="http://www.ssl.co.uk/">System Simulation</A>, I worked extensively on the core of <A href="http://www.ssl.co.uk/content/indexplus.html">Index+</A>, 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. <P> In addition to my work on Index+ itself, I was involved in building the following systems for SSL, among others: <UL> <LI>The Victoria & Albert museum's collection management system, built on Index+, encapsulating their complex data structure requirements and curatorial procedures. <P> <LI>The London Transport Museum's TAP (Total Access Project), an organisation-wide integration of all their information: collection management, public access, <I>etc.</I> <P> <LI>Widely differing image library systems for both Hulton Getty and Tony Stone Images, including image acquision pipelines, captioning systems, web-based front-ends, <I>etc.</I> <P> <LI>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 <A href="http://www.scit.wlv.ac.uk/bcs/bcs.awards.94.html" >1994 BCS awards</A> <P> <LI>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. <P> <LI>Numerous other CD-ROM and web publishing systems, including <A href="http://tictac.vhn.net/home/">TICTAC</A> for identifying medicinal and other tablets; the British Pharmocopoeia, the QA register, and the Civil Service Yearbook. <P> </UL> <P> 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. <H3><a name="3.4">3.4. Miscellaneous</a></H3> <P> In among my regular employment, I've found time to take on a few freelance contracts, including: <UL> <LI>University of Sunderland (2007) - The <a href="http://fv-distribution-database.ac.uk/" >Film and Video Distribution Database</a>. <P> <LI>Clackmannanshire Council (2004) - Enhancements to the zSQLgate program described below, enabling it to generate MARC records. <P> <LI>Simon Fraser University, British Columbia, Canada (2003) - Enhancements to the <TT>Net::Z3950</TT> module described below, enabling it to handle OPAC records. <P> <LI><A href="http://www.k-int.com/">Knowledge Integration</A> (2002) - work on the Z39.50-in-Java toolkit, <A href="http://www.k-int.com/products/jzkit/">JZKit</A>, including creation of a generic server. <P> </UL> <H2><a name="4">4. Professional Achievements</a></H2> <P> My work with SSL, Seatbooker/TECC and Index Data has involved extensive use of and contributions to the Z39.50 protocol (<a href="http://lcweb.loc.gov/z3950/agency/">lcweb.loc.gov/z3950/agency</a>) and its XML-based successor, the Search/Retrieve Web Service SRW (<a href="http://www.loc.gov/standards/sru/">www.loc.gov/standards/sru</a>). 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. <P> I count the following among my achievements in this area: <UL> <LI>I contributed to the CIMI profile for searching and retrieving cultural heritage information (<a href="http://www.cimi.org/public_docs/HarmonizedProfile/HarmonProfile1.htm">www.cimi.org/public_docs/HarmonizedProfile/HarmonProfile1.htm</a>) <P> <LI>I wrote <A href="http://www.cimi.org/old_site/documents/aqua_profile_0598.html" >the profile</A> 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). <P> <LI>I am the principal author of the Zthes profile for thesaurus navigation, and the creator and maintainer of its website at <a href="http://zthes.z3950.org/">zthes.z3950.org</a> <P> <LI>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 <a href="http://zoom.z3950.org/">zoom.z3950.org</a>. 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. <P> <LI>I was the author of the open source Perl module <TT>Net::Z3950</TT> for building Z39.50 clients. (I have since superseded this with the ZOOM-Perl module, written for Index Data and described above.) <P> <LI>I am also the author of <TT>zSQLgate</TT> (<a href="http://sql.z3950.org/">sql.z3950.org</a>), 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. <P> <LI>I am one of the primary authors of the ZeeRex specifications at <a href="http://explain.z3950.org/">explain.z3950.org</a> (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. <P> <LI>I have contributed extensively to the development of of the ``Next Generation'' query language <A href="http://www.loc.gov/standards/sru/specs/cql.html">CQL</A>, and written both a free Java implementation of the query language (<a href="http://zing.z3950.org/cql/java/">zing.z3950.org/cql/java</a>) and the CQL tutorial (<a href="http://zing.z3950.org/cql/intro.html">zing.z3950.org/cql/intro.html</a>). <P> <LI>I have presented several papers to conferences. These include: <UL> <LI> <a href="pubs/TaylorDickmeiss2005-lc-marcxml.pdf" >Delivering MARC/XML records from the Library of Congress catalogue using the open protocols SRW/U and Z39.50</a> at the World Library and Information Congress, 2005. <LI> <a href="pubs/TaylorCromme2005-peer-to-peer-proxy.pdf" >Searching very large bodies of data using a transparent peer-to-peer proxy</a> at the IDDI-05 conference. <LI> <A href="http://zoom.z3950.org/misc/slides/index.html" >a presentation of the ZOOM API</A>. <LI> <A href="http://zing.z3950.org/cql/ims/cql.ppt.zip" >a presentation of the CQL query language</A> <LI> <A href="http://zoom.z3950.org/misc/tutorial/index.html" >a tutorial on the <TT>Net::Z3950</TT> module</A>. </UL> </UL> <P> I've also written and released any number of spare-time programming projects including <A href="http://www.miketaylor.org.uk/tech/tt/" >real-time puzzle games for serial terminals</A>, <A href="http://www.miketaylor.org.uk/tech/advent/mundi/index.html" >MUDs (Multi-User Dungeons)</A>, email handling software, an SQL parser, a device-independent HTML parser, <A href="http://www.miketaylor.org.uk/tech/eta/doc/index.html" >joke programming languages</A> and more. <H2><a name="5">5. Education</a></H2> <UL> <LI><B>2005-2009: Ph.D., University of Portsmouth</B><BR> 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 <a href="http://www.miketaylor.org.uk/dino/pubs/">www.miketaylor.org.uk/dino/pubs</a> <P> <LI><B>1986-1989: BSc., Warwick University.</B><BR> 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. <P> <LI><B>1979-1985: Bishop's Stortford Boys High School.</B><BR> 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. <P> </UL> <H2><a name="6">6. Skills</a></H2> <H3><a name="6.1">6.1. Programming</a></H3> <UL> <LI>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. <P> <LI>MS-Windows experience going right back to building applications for Windows 2. <P> <LI>Extensive Perl programming, including module design and the construction of large web-based systems running under the Apache server's <TT>mod_perl</TT>. <P> <LI>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. <P> <LI>Java design and programming, notably the definition and implementation of <A href="http://zoom.z3950.org/bind/java/">the Java binding</A> for ZOOM, and the CQL parser and server-side JZKit work mentioned above. <P> <LI>Masses of experience with the numerous ``little languages'' of Unix: the various shells, Python, sed, awk, perl, nroff, tbl and eqn, Tcl <I>etc.</I> 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.) <P> <LI>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 <A href="http://www.loc.gov/standards/sru/">SRW</A>. <P> <LI>Detailed HTML and CSS (all the websites I maintain use hand-coded HTML), XML, XSLT, HTTP, DocBook, <I>etc.</I> <P> </UL> <H3><a name="6.2">6.2. Other</a></H3> <UL> <LI>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. <P> There are plenty of examples of my technical writing at the <A href="http://zoom.z3950.org/">ZOOM</A>, <A href="http://zthes.z3950.org/">Zthes</A> and <A href="http://explain.z3950.org/">ZeeRex</A> sites, and also in the work-in-progress <A href="http://www.miketaylor.org.uk/dino/faq/">Dinosaur FAQ</A> which I am writing - a different kind of technical writing, but the issues are the same: clarity with readability. <P> <LI>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. <P> <LI>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. <P> <LI>I've worked closely with graphic designers in many projects, both web-based and involving bespoke UIs, integrating their visual work into functional software. <P> <LI>Similarly, I've often worked closely with content providers - writers, museum curators, <I>etc.</I> - with strong ideas on how the material for which they are responsible should be presented. This kind of collaboration is a skill in itself. <P> <LI>Oh, what the hell - I can do <I>anything</I> :-) <P> </UL> <H2><a name="7">7. References</a></H2> <UL> <LI>Sebastian Hammer <<a href="mailto:quinn@indexdata.dk">quinn@indexdata.dk</a>>, Managing Director of my current employer, Index Data (<a href="http://indexdata.dk/">indexdata.dk</a>). <P> <LI>Mike Stapleton <<a href="mailto:mike@ssl.co.uk">mike@ssl.co.uk</a>>, Technical Director of System Simulation (<a href="http://www.ssl.co.uk/">www.ssl.co.uk</a>), my previous employer of nine years. <P> <LI>Ray Denenberg <<a href="mailto:rden@loc.gov">rden@loc.gov</a>>, Senior Network Engineer and director of the Z39.50 Maintenance Agency, Library of Congress, Washington DC. (<a href="http://lcweb.loc.gov/z3950/agency/">lcweb.loc.gov/z3950/agency</a>). <P> </UL> <P> <P> </BODY> </HTML>