cv. John-Smith .me

Curriculum Vitae

I'm an experienced full-stack web developer, with a moderate preference towards the back-end side of things.

The products I've built include high-profile public websites, print and broadcast media with millions of end-users, and financial systems to manage and control billions in daily trade value.

I've been employed at both small startups, where everyone had to muck in and work on all aspects of the business as needs required, through to international corporations with tens of thousands of staff.

Technically, my background centres around Unix/Linux and Python, as these are tools which have proven reliable and able to get the job done with the minimum of fuss. I'm certainly interested in making use of new and emerging technologies - in particular, the new standards-based functionality being added to web-browsers - but ultimately only where there's a demonstrable impact to either development/delivery and/or the end-user experience, and not merely jumping on the latest bandwagon for novelty's sake.

Personal Details

Other details

Nationality
British
Academic Qualifications
BSc (Hons) 2.2 in Computer Science at the University of Nottingham; 3 GCE A-Levels (Maths, Computer Science, German); 7 GCE O-Levels.

Skills, Abilities and Areas of Expertise

Platforms

Operating systems

  • Unix and Linux - many variants, most recently Fedora, CentOS and SuSE
  • MacOS X
  • iOS
  • Windows (primarily as an end-user; I have slight experience as an admin, but none as a developer)

Cloud platforms

  • Google App Engine
  • Amazon Web Services: EC2, S3, RDS

Programming languages

Core expertise

  • Python (2 and 3)
  • SQL (numerous variants)
  • JavaScript ("traditional" through to ES6 aka ES2015)
  • Unix shell scripting (mainly bash)

Have also used, but not recently and/or heavily

  • C/C++
  • Perl
  • Java (J2EE, JSP, applet)
  • PostScript
  • Tcl/Tk
  • C#
  • Objective-C/Cocoa Touch

Web technologies

Front-end

  • JavaScript
  • jQuery
  • Backbone
  • Ext.js
  • HighCharts
  • HTML(5)
  • CSS(3)
  • WebGL
  • Server Sent Events
  • SVG
  • Google APIs

Back-end

  • Django
  • Django REST Framework
  • webapp2
  • Flask
  • node.js
  • ExpressJS
  • Handlebars
  • Apache
  • NGINX
  • Google App Engine
  • Varnish
  • Selenium
  • Tomcat
  • JBoss
  • OAuth

Server applications

Databases and ORMs

  • PostgreSQL
  • MySQL
  • Firebird
  • Oracle (8i through 10g, also HTML DB aka Application Express)
  • MS SQL Server (inc. Analysis Services)
  • Ingres
  • SQLAlchemy
  • Psycopg2

Server management

  • Samba
  • Puppet
  • Veritas Cluster Server

Software development tools

Team and workflow tools

  • MediaWiki
  • HipChat
  • Bugzilla
  • CodeBase
  • Jenkins
  • ReviewBoard
  • JIRA
  • git
  • Subversion
  • RCS

Developer tools

  • Emacs
  • Sublime Text 3
  • Eclipse
  • TOAD
  • ProClarity
  • Visual Studio
  • Xcode
  • gdb
  • Purify

Miscellaneous technologies

Productivity and design tools

  • MS Office
  • Google Docs
  • InDesign
  • QuarkXPress

Protocols and formats

  • XML (including SOAP)
  • JSON
  • PDF
  • Distributed and clustered systems (client/server, load-sharing, HA, etc)
  • Image manipulation
  • Multi-threaded applications

Technology-related "soft" skills and interests

Work History

  1. 2013 - 2015: BATS Trading Ltd

    Web developer at BATS Chi-X Europe, the biggest equities exchange in Europe. I worked on both the public site and internal web-based tools, and for the majority of my tenure, was the sole web developer in Europe, working alongside the other Europe developers, and in conjunction with the web team based at the US head office.

    My core responsibilities included designing and developing new applications, maintaining and enhancing existing applications, and providing support to internal and external users. I was also involved providing support and doing irregular development work on the batch processing and core trading systems

    Web applications were built in Python/Django and JavaScript/Ext.js, running on Apache/SuSE Linux, with Postgres and Varnish also part of the stack.

  2. 2008 - 2012: Freelance contracting to the following clients

    1. 2011, 2012: Potato Ltd

      Full-stack web developer, working mostly on projects for Google's marketing teams. My responsibilities included:

      • Lead developer on Our Mobile Planet, built using Python, App Engine, JavaScript/jQuery and CSS3. Role also involved project management and direct liaison with customer's staff and other vendors/suppliers across three continents.
      • Member of the development teams - sometimes as lead, sometimes as a minor contributor - on several other intranet/backend projects, for clients such as Google and M&S, using technologies such as Django and Backbone.
    2. 2011: European Directories

      Short-term, non-development position, evaluating and advising on vendor proposals.

    3. 2009 - 2010: Potato Ltd / Google Inc

      Developer working on-site in Google's London office, contracting via Potato agency. Initially part of a three man team developing Getting British Business Online. I was later team lead on Consumer Commerce Barometer, and also worked on systems for internal Google use. Technologies used included Python, App Engine, Django, JavaScript/jQuery and Amazon EC2.

    4. 2008 - 2009: Newsprinters Ltd

      I was brought in to ease the transition between the commissioning and full operation at three new print sites, taking responsibility for all the IT aspects of the newsprint reel handling systems.

      This required a wide variety of "soft" IT skills, from project managing vendors and suppliers, to defining, documenting and training internal processes. I also designed and built reporting and monitoring systems to cover shortcomings in products from external vendors. Technologies used included Windows, Linux, Perl, Python, Firebird database and PostScript.

  3. 2004 - 2008: News International Newspapers

    Operating as a senior analyst/programmer in a different team from my previous stint, notable projects included:

    • Designing and developing a web-based system for tracking customer responses to marketing activities across the business. Underlying technologies were Solaris, JSP, Tomcat, Oracle and HTML DB.
    • Business Continuity system to produce editorial content from an external Disaster Recovery site.
    • Developing a system to track newsprint deliveries of value £100m per annum, with rigorous audit requirements. Technologies included Java, Oracle, XML, SOAP and Solaris.
    • I also consulted on a £650m project for new print sites, in areas such as vendor analysis and go-live.
  4. 2003 - 2004: Merchant Pagan

    Consulting for a small I.T. services company, with a focus on open-source solutions.

  5. 2001 - 2003: Career break

    Funded by a Y2K bonus payment, I took the opportunity to travel the world.

  6. 1996 - 2001 News International Newspapers

    Initially employed as a programmer, I was promoted several times, rising to the title of consultant. I was part of the team responsible for developing and maintaining many of the systems for newspaper production. Numerous technologies were utilized, e.g. Solaris, C, PostScript, Tcl/Tk, Unix scripting, MacOS and Oracle.

  7. 1995 - 1996: PA Data Design

    Developed systems for newspaper and teletext services; technologies were Unix, C, Perl, MacOS and Informix.

  8. 1993 - 1995: Esprit Automation

    Developed, trained, documented and supported DOS-based applications in C.