James Stuart Tait

Software engineer. Geek. Free Software advocate. Single father.

Derby, United Kingdon

Summary

I am a software engineer with over eighteen years' commercial experience, focused on Free Software and open standards. I have seven years' commercial experience developing and maintaining web services in Python (2 and 3), using Django, Restish and Flask frameworks and backed by PostgreSQL, Cassandra, CouchDB, Solr and Elasticsearch and dealing with scalability to serve millions of users worldwide. I have over twenty years' Linux experience and have been using Ubuntu exclusively on my personal machines since 2006.

The most recent version of this file can always be found at wyrddreams.com/cv.html.

Key Skills

Python
HTML/CSS
JavaScript
Linux
Distributed Version Control
Test-Driven Development
Continuous Integration
DevOps and Service Orchestration

Work Experience

Canonical UK Limited, Derby, UK (working remotely)
Software Engineer

-

As part of the Online Services team, née Web & Mobile team, I was responsible for a wide range of Canonical's web services. I was initially brought on board to work on the Ubuntu One file sync service, and was involved in the development of various add-on services including contact synchronisation, music streaming and photo galleries. Remote pair programming featured heavily.

Key technologies: Django, PostgreSQL, Celery, Cassandra, CouchDB, Graphite.

Most recently I have been involved in the creation and growth of the Ubuntu Store for Click and Snap packages. I served as tech lead on the Click Package Index search component that is the main Store API entry point for all Ubuntu devices (phones, desktops and IoT devices running Ubuntu Core) when searching for, installing and updating Click and Snap packages.

Key technologies: Django, Restish, Flask, PostgreSQL, Solr, Elasticsearch, ELK, Juju, Grafana.

Data Systems & Solutions, Derby, UK
Senior Web Developer and Aeromanager Team Leader

-

Leading a core team of two Java EE Developers and a DBA, I was responsible for the development and maintenance of Aeromanager, the Rolls-Royce customer-facing web portal for the management of civil aero engines. I worked with a small team within Rolls-Royce to determine, define and prioritise requirements. I was responsible for scheduling items for development, testing and release, managing the team's workload, mentoring team members and removing impediments to enable the release schedule to be met.

As part of a drive to improve efficiency and customer satisfaction, I initiated and supported the development of a JUnit test suite for the application, and the adoption of Agile processes for development.

Key technologies: Java, BEA WebLogic, WebMethods, SQL Server.

MChex Limited, Derby, UK (working remotely)
Lead Developer

-

As part of a three-person team, I was responsible for the ongoing development and maintenance of our SMS messaging and billing platforms. Our diverse range of services included wi-fi credentials for The Cloud; PINs for Nokia's music download services; and enabling the mobile banking services of First Direct and HSBC provided by Monilink. I liaised directly with customers and suppliers to establish and prioritise requirements, maintaining an ongoing development roadmap while also providing application support, including out-of-hours work to maintain a 99.5% availability as per our SLAs. I produced and documented our development and deployment processes, based on test-driven development, with a continuous build environment and automated tests run on our staging environment.

I instigated and oversaw the installation of eGroupware within the company as a centralised ticket tracking and project management tool and for its wiki and other collaboration features, as well as the introduction of online meetings via Skype IM to aid with the transition of support staff from their various legacy systems. I also wrote the system startup scripts for our web and application servers to allow all services to start in the correct order after a hardware failure.

Key technologies: Java/J2EE, IBM WebSphere, Struts, Oracle 9i, CruiseControl.

Morse Professional Services, Derby, UK
Developer

-

Working as part of a team of around 70 individuals, I was responsible for the development of bespoke applications designed to be tailor-made solutions to the business needs of our clients. I worked closely with several mobile telecommunicatons service providers, helping our applications to attain validation for operation on live service networks. This involved performance of a series of test scripts and analysis of SMPP 3.3, SMPP 3.4 and SEMA OiS traffic as it was transmitted to the SMS Service Centres.

Key technologies: Java/J2EE, Struts, Hibernate, XML, HTML/CSS, JavaScript, Oracle, C/C++, Apache web server, Vignette V7 VCM Server and CodeMesh JunC++ion Java Bridge, WAP/WML, Volantis Mariner multi-channel server, Empower Interactive MSP 3.1.3, First Hop Message Router.

Wyrd Dreams Internet Solutions, Derby, UK
Developer and Systems Administrator

-

Wyrd Dreams is a freelance consultancy providing a variety of services, including web design, custom application development, systems and network administration, and hardware and software support among others and specialising in open source and open standards.

Education and Qualifications

Middlesex University
BSc. Applied Computing

-

Over a three-year course I learned about various aspects of computing in the workplace and the home. The course introduced me to several programming languages, including C, C++, SQL, Java, JavaScript, HTML and Visual Basic, and allowed me to sample different programming techniques. It brought me into contact with a range of Operating Systems and different network architectures, the most prominent of which was MSDOS/Windows 3.11 on a Novell network, but also including Sun Solaris and Vax/VMS with TCP/IP networking.

Volunteer Activities

freenode
Volunteer Staff

-

As level 1 staff member, my role was mainly user support. This involved helping with administrative requests such as password resets, username and channel registrations, and general queries. I was also involved in the resolution of user disputes, moderation of undesirable behaviour, and acting as a catalyst for productive, collaborative discussions.

OpenStreetMap
Volunteer Mapper

-

Initially tracing old maps and later uploading and tracing GPS tracks of my own, I have covered large parts of Derby, including the vast majority of Mickleover's coverage. This has been supplemented with remote mapping of crisis areas as part of the Humanitarian OpenStreeMap Team.

Professional Affiliations

References

Available on request.