< email > home > CV

CV: Tim Baverstock

An end-to-end software developer working on requirements gathering and design through to implementation, test, and release. 4 years software tools and automated test at Google, 2 years team technical lead during 9 years redesigning and administering large-scale software development and testing environment; 2 years C++ programming; 4 years technical lead in multimedia with 2 years as a Unix system administrator, web designer and CGI programmer.

I am currently looking for opportunities.

Interests

I enjoy data conversion - from database and simple file formats to compilers, although I've had more experience with the former. I love Perl, and I enjoy small-scale programming, currently Android projects. I suspect embedded would appeal.

Key Skills

Additional Skills

Personal Details

Name: Timothy Baverstock
Location: Cambridge
Email: ../contact.html
Date of birth: July 1970
Nationality: British
Marital status: Married
Non Smoker
Clean driving licence, but reluctant to drive
Preferred location: Within 1 hour's commuting distance of Watford

Occupation History

Google, London.

Software Engineer in Test: December 2006 to March 2011

I accepted a position at Google working on software tools and automated application testing, latterly in mobile. Projects included delivering snapshot behaviour in the Android SDK emulator, fine-grained Java coverage integrated to Google's monstrous build/test infrastructure, automated Android screen capture, constructing standardised build/test systems for Android and Symbian/WindowsCE projects, mentoring projects in adoption of TDD, and devising and deploying server-side load testing.

UGS TeamCentre, Cambridge.

Software engineer: January 2001 to November 2006

Tools group

I resumed work in the tools group to support the transition of the product to an in-house development environment with principle responsibility for the server's regression test system, technical lead for the deployment of the regression tests to all the other development sites, leading the creation of a central testing database/dashboard, ongoing streamlining and improvement to the developer experience, and reviving the Java client's testing. I was heavily involved with the Linux port.

Specification, design, and implementation of various projects within the core product libraries.

At my request, UGS moved me to `proper' programming (with occasional environmental work thrown in), and I developed in C++ for two years. The projects included specialising a general object comparison system to make the existing comparison interface user-extensible, and a general system for translating internal datastructures into various industry-standard file-formats, and writing those plug-in modules.

I've been pleased to notice that I've had no need to change my programming aesthetic in order to program C++ in earnest, finding its encapsulation mechanism particularly pleasing and natural.

Tools Group Technical Lead: November 1997 to January 2001

Two years as the technical lead during three years in the iMAN business unit's tools and environment group. The primary tasks were reengineering, maintaining, and administering version control and software-development tools and resources, updating the various monitoring utilities, setting policy, and driving the periodic inter-site code merge process. I was required to travel internationally to install and update remote sites.

The role initially involved rewriting source control system customisations (ClearCase) in Perl to make them work on NT, and establishing the NT porting environment in Cambridge. I also ported the Unix regression test system to NT, and visited the Californian site to establish regression testing there and to make the system more easily available to the other three sites.

I replaced the distinct Unix and NT builds with a single much faster and more maintainable solution, retrofitted to the existing front ends. The new NT build system also involved deploying Microsoft's compiler-based symbol export mechanism, requiring widespread automated code analysis and editing, and the correction of several minor modularity and class hierarchy errors.

ClearCase administration involved training developers in ClearCase, monitoring resource usage and system behaviour (for which I developed additional web and email tools), deploying ClearCase upgrades, and liaising with Rational Software for various issues. I was also required to install and port the development environment in new development sites during trips to Detroit, Cologne, and Ann Arbor.

With the additional sites, and the increased breadth of the product, I realised that the tools group needed direction. Since I had automated much of my routine work, and had the best technical grasp on the overall tools area, I proposed and was promoted into a new team leader role to identify and document internal group processes, further automate mundane tasks, liaise with development managers to simplify tools use, to encourage early involvement of the tools group in new projects, and to help enforce development policy. In particular, the additional sites and heavier customer demands required a more flexible forking/merging protocol with standarised configurations and ticklisted procedures, including web-based forms reporting of fixes and projects in each merge.

Brief sabbatical

September 1997 to November 1997

While looking for my next job, I refreshed my understanding of OOA and OOD technologies (the Booch method), as a precursor and adjunct to familiarising myself with Java and bringing my C++ skills up to date.

Multi Media Machine, Bolton.

Chief Technical Officer: October 1993 to August 1997

I developed a comprehensive set of library routines which underpinned virtually all the presentation software subsequently written and sold by the group. For my final two years I was also the Unix systems administrator with responsibility for all programming and major website structuring decisions.

I implemented a games selector for the Commodore CDTV and CD32 - a menuing system allowing selection and execution of up to 300 games and demos on one CD.

I rewrote the pub entertainment system Kwizoke* for improved performance and multiplatform support. During this project I developed much of the multimedia and scheduling library, and the internal tiny Forth interpreter, which were utilised and further improved in the group's subsequent presentation software.

I completely designed and implemented Kwizoke Plus, a one-CD karaoke system: from database handling and MIDI file pre-processing through to the front-end selection and playing program. Strict real-time requirements were met using multithreaded programming and shared memory datastructures to implement an elegant lyric-presentation algorithm. I discovered a bug in the OEM's CD ROM filing system, so designed and implemented a dedicated format which also sped access, helped conceal the data, and streamlined the indexing. This involved writing a ROM image builder and interacting with the CD ROM device driver in the karaoke player. I later designed a dongle based around a PIC embedded controller to overcome an emergent pirating problem. I believe the company is now up to 3000 songs on the one CD.

Thomas Cook Holidays contracted the company to develop an internal staff training system for sittings of 100-200 staff. This product was delivered annually for 3 years and during that time the system was expanded to include increasingly advanced features such as animation and CD audio.

I spent 3 months re-implementing the Karaoke system under Linux. Investigations for product customisation and real-time issues gave me a good understanding of the core Linux kernel boot and scheduling system.

Multi Media Machine started offering Internet web services late in 1995, and I was responsible for all technical activities, including technical Point of Contact with the company's Internet provider Pipex and later, also for InterNiC. My responsibilities included system administration of the Internet server machines, bulk HTML production from other document formats via scripts, and all Perl and CGI programming required to maintain these web sites.

I set up dial-in Internet Service Provision, initially using the existing Unix systems, but later with a dedicated IOLAN+ communications server. I also wrote a program to simplify the creation of new virtual web/email servers, a task subsequently adopted by the sales department for rapid fulfillment.

Some of the sites required CGI scripting: I wrote a reusable script to provide database integration and shopping baskets for Bolton Libraries, Clay Pigeon Shooting Magazine, and all of our other Internet/intranet databases; and a generic response-checking forms system based on CGI and extended HTML. I also wrote several email automata to accept database updates from clients.

I wrote patches for a number of the systems programs and servers, including a patch to enable the web-server to directly interpret server-side image maps in HTML files, and patches to implement the login/ftp access control policy required by Thomas Cook Holidays. During migration of our server systems to a different Linux distribution, I rewrote these latter into a Solaris-style Pluggable Authentication Module (PAM) which was released into the public domain.

As an Internet designer/administrator I have worked with Thomas Cook Holidays, Greater Manchester Police, CPSA, Bolton Institute, Bolton Libraries and numerous local firms.

Scope Training Centre, Salford

July 1993 to November 1993

Basic grounding in Novell networking and an industrial placement which led to permanent employment with Multi Media Machine.

Alpha Systems, Swinton.

Contract programmer: May 1993

4GL accounts module.

Manchester Metropolitan University

September 1991 to February 1993

PGCE - Teacher Training with specialisation in Physics. I realised my skills were mismatched to school teaching and withdrew from the course.

Warwick University

September 1988 to June 1991

BSc(Hons) Computer Science

Redbridge Borough Council

Programming Officer: Summer 1990

Redbridge Council hired me to assist with the maintenance of the Unix systems and with other in-house activities. During this time, I installed ICL's DRS-NX Unix, helped administer the tendering process for a new software system, and helped with miscellaneous programming tasks.

Datathorn Systems, Loughton.

Programmer: Summer 1989

Datathorn Systems hired me as a contract programmer to write a machine code driver to pre-load Epson GQ3500 and GQ5000 printers with bitmap images and a GUI front end for the driver. This enabled primitive word processors to include graphics in documents.

Bancroft's School, Woodford Green

September 1981 to June 1988

Advanced levels: 'A' Mathematics, 'B' Physics, 'C' Further Mathematics

General employer requirements

Employment is a two-way relationship. I have a strong sense of loyalty and expect the same in an employer - represented by goodwill, honesty, and respect on both sides.

Having worked in a family business as sometimes the sole programmer on a dreadful operating system (AmigaOS), and a larger business with a lot of code older than fourteen years on multiple platforms, and Google, I find I vastly prefer working as part of a team, I hate poorly-documented code (particularly when the API is also poorly-documented), I hate prototypes that magically turn into product, I like systems architects that have the technical respect of their programmers, and generally consider OO and TDD to be my favorite paradigms.

Any job I move into should be team-based, staffed mostly with graduates, and ideally treat Microsoft Windows as just another platform (if it's there at all), have reasonable regression testing, good documentation, a house coding style, code reviews, employee reviews, and not restrict trivial environmental things like mail/web client. I'd prefer a relaxed dress code.

Cycling is my preferred mode of transport, although I will use the train if need be. I don't want to have to drive regularly.

Software written

Commercial

Public Domain

Interests and Activities

Favourite technical book: Design Patterns; Gamma et al. [Addison Wesley]

Favourite fiction authors: Lindsey Davis, Alan Dean Foster

Favourite sandwich filling: Houmous

Referees

    Mike Reger
    UGS TeamCentre
    46 Regent Street
    Cambridge
    CB2 1DP


* Please note: I have no connection with Kwizoke: No CDs, no files, and no contacts. Please don't ask me for systems, discs, or how to hack the security - I don't put holes in my software.

< email > home > CV


This page last changed Fri Mar 25 12:22:57 2011