Detailed Work History :
Note: sorry this is rather long. I've highlighted some of the slightly more interesting bits in bold.
Or you could just skip to the bottom for the most interesting (and irrelevant) bit.
2016 to present : my own web projects
For some details with photos please see : davegott.com/about
Below the following websites are briefly described :
- Film
- Music
- Your Life
- Nobel Prize Winners
Film Website : davegott.com/films Linux, Python, ksh, JavaScript, jQuery, HTML, CSS, lftp, Requests, BeautifulSoup, Selenium, OMDb API, REST, Web Services
This began with a simple question : "How do I write a python program to tell me the best films currently showing in Bristol - not just what's showing, but what, in the view of a number of respected critics is really worth watching?"
It's expanded to a website which figures out the best films by Genre, Actor, Director, Year, the best Actors and Directors for every decade since 1915 and the best films currently showing in up to 600 UK towns and cities.
Behind the scenes are 250+ python and shell programs, 29,000 JSON files and many custom templates which automatically build and update 21,000 web pages.
It's pretty well fully automatic, but currently only when I choose to run it.
Music Website : davegott.com/music Linux, Python, ksh, JavaScript, jQuery, HTML, CSS, lftp, Requests, BeautifulSoup, SpotiPy, Python-Musicbrainzngs, Discogs-client, Selenium, REST, Web Services
This was inspired by the excellent book "1001 Abums You Must Hear Before You Die" by Robert Dimery.
I figured a website would be so much more powerful - including links to listen to the music (using Spotify), detailed album reviews, links to related Artists etc.
So I wrote a program, which, for any given music artist (or band) automatically scrapes the internet and builds 2 web pages for them, and ran it for 1200 fabulous Artists.
- Features 1200 artists and 22000 albums chosen by a wide range of critics as amongst the best ever.
- Features webpages for Best Album lists from Rolling stone Magazine, Uncut Magazine and Mercury Music Prize.
- Features Best Album playlists from Rolling stone Magazine, Uncut Magazine and Mercury Music Prize.
- Features links from each Artist to related Artists.
The code is largely automatic, but currently only when I choose to run it.
Your Life Website : davegott.com/yourlife Linux, Python, ksh, JavaScript, jQuery, HTML, CSS, lftp, Requests, BeautifulSoup
Enter your date of birth and this website generates a "spreadsheet of your life" where each cell is one month.
Alarmingly it calculates a precise day for your demise (don't panic - it may be wrong - but which way? - maybe do panic!) - based on UK Office for National Statistics data.
The "spreadsheet of your life" is filled with key events from history, technology, sport, film and music.
Click on a film or album image for more info. Alas Netflix and Amazon have no API - so you can't click on a film and watch it. Spotify (being Scandinavian, cool and wise?) do have an API - so you can click on an Album and listen to it.
Nobel Prize Winners Website : davegott.com/nobel-prize-winners Linux, Python, ksh, JavaScript, jQuery, HTML, CSS, lftp, Requests, BeautifulSoup
A flexible and informative exploration of all individual Nobel Prize Winners.
- Query by country, prize, name, year, gender.
- Photos of each winner and biographies with links.
- Choose table layout and biography length (S,M,L,XL).
- Pie charts of wins by country and Prize (the UK does pretty well - often as scientists working in the US).
2011 to 2015 : Airbus, Bristol Linux, HP-UX, Python, OO Perl, Perl TK, ksh, LSF, Fortran, MVS, VAX
Built a multi-user dynamic parallel processing system for FLAGLIS* with benefits :
- Jobs can run up to 6X faster.
- Jobs automatically scale between 1 and 6 threads at run-time depending on system capacity.
- Jobs will scale down automatically if other jobs are waiting.
Designed a system to migrate 50 years worth of UK Flight Physics data and codes from an IBM mainframe (MVS) onto Linux, then used this system to run 8 threads 24/7 for 1 year to migrate near-line data from the IBM to linux, including running automated in-house binary conversions for much of the data. Please note that I never want to work with an IBM mainframe again, whether emulated or not.
Created a GUI archiving system on linux to hold 50 years worth of UK Flight Physics data with benefits :
- Data is much faster to find and retrieve.
- Data Integrity – if any archive files are lost or corrupted Support Staff are automatically emailed.
- Huge cost savings as the emulated IBM mainframe is no longer required.
Enhanced FLAGLIS to provide daisy chaining of jobs, automated archiving to offsite hosts, and semi-automatic results checking, then ran and checked 2.5 million program steps to allow de-commissioning of FLAGLIS.
Migrated 50 years worth of UK Flight Physics data and codes from a VAX system to HP-UX.
* FLAGLIS = Flight and Ground Loads Integrated System and allows Flight Physicists to run aircraft load simulations and retain the data in compact form to meet Industry archiving requirements
2006 to 2008 - Airbus, Bristol
Linux, HP-UX, OO Perl, Perl TK, ksh, LSF, C, Exceed, Matlab, Fortran
Enhanced the functionality of FLAGLIS (see above) including :
- Speeded up job submission code 40X
- Speeded up the FLAGLIS GUI page load times (100 or so windows/pages) approx. 10X
- Speeded up critical multi-day job run-times over 3X by designing and coding a parallel processing mechanism.
- Designed a generic extensible logging system which allows us at runtime to switch on or off logging of messages by category and to decide for which error messages to generate a function call back-trace, and to time critical sections of code to aid run-time optimization.
- Developed a GUI front end (GUAVA) using OO Perl to the (in-house) VARLOADS system and integrated it with LSF, ProMT (in-house) and MATLAB.
- Re-wrote the unmaintainable (but critical) “Counters” program – changing it from 7000 lines of code (with no comments and meaningless function and variable names) to 2500 lines of maintainable code.
- Developed a tool which can automatically generate summary documentation for any Perl source code.
- Introduced “perltidy” so we could automatically format our 500,000 lines of code in a consistent standard way.
- Designed a suite of tools which perform integrity checks of the FLAGLIS meta-data, build a database allowing the meta-data to be queried, provide reporting on the meta-data, and provide an easy to use GUI interface (using Perl Tk) to these reports and queries.
2004 to 2005 - Nokia, Copenhagen Linux, HP-UX, Perl, Mod_Perl, Oracle, PostgreSQL, ksh, XML, XSLT, HTML, JavaScript, Rsync, Apache, Excel, Synergy, Agile
- Enhanced a high speed global file distribution system (GRACE) to help minimize the critical time-to-market for the latest mobile phone software.
- Designed network performance monitoring and intelligent routing software which worked together to speed-up global distribution and minimize inter-continental data traffic
- Developed an improved Graphical User Interface for GRACE (using XML and XSLT)
- Developed a data warehouse which allows Management to monitor global performance and activity trends by automatically generating reports overnight, formatting them as Excel binaries and posting them on the Intranet
- Designed, coded and tested a significantly better core system (than the some person-years one) in a weekend.
2003 - Zurich Financial Services, Swindon AIX, Perl (DBI,CGI,MQ &TK), SQL, ETL, DB2, IBM MQSeries, Apache, ksh, Siebel EIM
Developed Perl DBI Extract, Transform and Load (ETL) programs to migrate Eagle Star mainframe insurance and pension data into a SIEBEL Customer Relationship Management Contact Centre.
Achieved a 10X reduction in live system downtime (for mass updates) by building a generic self-optimizing parallel running SQL update tool using SQL and UNIX KORN Shell. This tool automatically finds and sets the optimal transaction size at runtime.
Wrote a graphical integrated development environment (in Perl TK) providing a GUI interface for source code control, file editing, program execution and log-file and database table monitoring.
Added Server Side Includes and MIME functionality to our intranet support web site allowing menus to be dynamically built at runtime from config files and integration with Microsoft Word, Excel and Adobe Acrobat.
Wrote a graphical dual control code release system (in Perl TK) which makes it easy to select code to be released, emails details for authorization and when authorized makes the release, generates a spreadsheet of latest code versions and emails this to the appropriate user group. Transferred UNIX and Perl skills to ZFS staff to facilitate future in-house maintenance.
2001 to 2002 - Zurich Financial Services, Swindon AIX, Perl (DBI,CGI,MQ &TK), SQL, ETL, DB2, IBM MQSeries, Apache, ksh, Siebel EIM
Speeded up the main Extract, Transform and Load program 40X by redesigning and re-writing it (using Perl DBI).
Yes 40X! Even I was impressed!
Increased the speed of software development and maintenance approximately 10 to 20X by migrating code from ESQL/C to Perl DBI and redesigning it.
Created self-documenting ETL software to migrate Allied Dunbar mainframe insurance data into a SIEBEL Customer Relationship Management Contact Centre.
Developed a menu driven user interface (using UNIX KORN Shell) to the UNIX components of the system allowing authorized users to run programs, view summary or detailed logs, monitor executing programs and to install new software components or full releases.
Built an intranet web site (using Perl CGI and Apache) providing support users (with PCs running NT) with an easy to use graphical interface for viewing the UNIX program logs, source code and system documentation.
2000 - Equant Application Services, Godalming Solaris, C, EDI
Developed a flight booking validation system (in ‘C’) for a Canadian airline. This role required learning Airline Industry data protocols and in-house propriety software and developing an airline ticket pricing engine from scratch, liasing with an expert in the USA (in the late afternoon).
1999 - Orange, Bristol HP-UX, Perl, ksh, C, Informix SQL, 4GL, ESQL/C
Produced Perl programs to analyze billing data files so Orange can verify the correct number and value of bills have been printed. Developed a Sliding Scale Billing System. Developed a call rating data aggregation & reporting system facilitating extremely fast reports and automated email distribution of required reports controlled by easily modified configuration files. By taking a high level approach (using SQL and UNIX Shell) this system was developed in a few days and is very simple to modify.
1997 to 1998 - Orange, Bristol HP-UX, Informix SQL, 4GL, ESQL/C, Business Objects, ksh
Created Customer Lifetime Value software which allows Orange to segment their customer base for marketing. Also worked on a large company-wide data warehouse - designing aggregate INFORMIX tables and building customized Business Objects Universes for specific user groups.
1996 to 1997 - Eagle Star, Cheltenham Dynix, Informix SQL, 4GL, ESQL/C
Produced software to convert, cleanse and aggregate insurance data from different legacy systems into a single company wide data warehouse.
1996 - Orange, Bristol HP-UX, Informix SQL, 4GL, ESQL/C
Built batch programs to aggregate large daily volumes of telephone call data records overnight for the MIS Data Warehouse.
1995 to 1996 - Aethos Communications, Bristol HP-UX, C, Informix SQL, EQSL/C, Foxpro API, X-windows, Motif
Wrote a generic mobile telephone billing system (in ESQL/C) designed for high performance and worldwide use.
1995 - British Telecom Mobile, Leeds HP-UX, C, Informix SQL, EQSL/C, Csh, Sun Accounts
Developed a bill generation, storage, retrieval and printing process so that bills are generated in a condensed format allowing bulk storage and rapid retrieval of bills for printing or screen viewing.
1994 to 1995 - UPS, London Solaris, C, Oracle Pro*C, Oracle SQL*Plus, Oracle PL/SQL, ksh, AWK, EDI
Created an Electronic Data Interface for UPS's key customers - resulting in a massive efficiency gain over the previous paper, postage and manual data-entry method.
1993 to 1994 – SEL / Alcatel, Stuttgart SCO, C, Oracle Pro*C, Oracle SQL*Plus, Oracle PL/SQL
Developed software to enable the Deutsch Bundespost to re-configure their System 12 digital telephone exchanges, creating a scalable and easy to maintain system which can be extensively re-configured at run-time via database updates.
1993 - Barclays Network Services, Knutsford AIX, C, sh, X-windows, Motif, Ingres
Wrote software providing centralized control (from an IBM mainframe) of the initial configuration and ongoing administration of application and communication software on IBM RS6000 workstations at bank branches.
1993 - Bull, Hemel Hempstead AIX, C, sh, AWK
Created software to merge data from several hospital departmental database systems into a central Health Care Patient Administration System
1992 - Andersen Consulting, Warrington AIX, C, Oracle Pro*C, Oracle SQL*Plus, AIC (UIM/X) Gui Builder
Developed software to make various services (eg. Printing) available everywhere in a mixed network.
1990 to 1991 - Reuters, London SUNOS, Oracle, X-windows, Motif, C, sh, SCCS, TCP/IP
My first freelance contract : system administration of forty Sun workstations involving UNIX, Oracle and communications software configuration and automation.
1985 to 1989 - British Telecom, London SUNOS, SCO, sh, C, Informix SQL, ESQL/C, 4GL, UUCP
Over 4 years I worked on 11 different software development projects (often through the full project life-cycle) and also performed UNIX System Administration.
Education : BSc (Hons) in Psychology, Leeds University 1983
Same class of degree as : David Dimbleby, Hugh Laurie, A. A Milne, Evelyn Waugh, W. H. Auden and Carol Vorderman.
Website: davegott.com Contact:
Random :
(It's been a long boring document!) What's it really like climbing Everest? Is it dangerous?