Hi, my name is

James.

I write code.

I’m a developer with a wide mix of skills. I’ve enjoyed working with GIS, IOT tech, WebRTC and still enjoy messing with a home lab in my spare time.

About Me

I’m a software developer with 15 years of experience in the industry. I’ve built GIS applications, an IOT deployment stack, video chat platforms, and more text entry forms than I’d like to admit. I pride myself on finding solutions to complex problems, and thrive on getting my teeth into new and varied technologies. Here are a few technologies I've been working with recently:
  • React
  • Material UI
  • Asp.Net Core
  • Docker
  • Azure
  • AWS

Experience

Senior Software Developer - VisionsLive
September 2019 - present

Implemented video conferencing system to create a new product as part of an existing software offering. Worked with C#/ASP.NET Core on the back-end, with React and Material UI on the front-end. Deployed cloud infrastructure with Azure and AWS. Maintained existing CI pipelines with Jenkins/Octopus, and built new CI setup with Bitbucket Pipelines. Occasional work with Node JS backend systems and Docker infrastructure maintenance. Modified, updated and implemented build systems for Docker-hosted Node JS backends and React applications.

I’ve advocated and implemented technology and process shifts within the team, mentored colleagues and helped bridge the gap between management and the technical team.

Software Developer, Technical Lead - In Touch Ltd
October 2011 - September 2019

October 2011 - April 2014: Software Developer
Web front-end and server back-end development role. Performed full software lifecycle tasks, from Analysis to Maintenance. Development of business-oriented applications using ASP.Net (MVC with C# and VB.Net), MS-SQL, HTML, JavaScript, CSS. Setup and maintenance tasks on both Windows and Linux servers. Integration of various GIS technologies and datasets, including GeoServer, PostGIS, OpenLayers, OpenStreetMap, OS MasterMap and OS OpenData.

Performed mentoring and guidance of interns and new development staff. Assessed technical skills of candidates during interviews and provided recommendations based on their skills.

April 2014 - September 2014: Technical Lead
Technical leadership and mentoring role. Guided development of products to benefit the business. Designed and implemented system for managing configuration and deploying updates to embedded equipment distributed over a wide area. Designed and developed monitoring system for embedded sensor network.

Documented and implemented new processes for both technical and non-technical aspects of the team. Mentored staff for professional development and ensured effective use of resources by taking advantage of individuals’ strengths and weaknesses. Analysed technologies for potential usage in new products. Led a shift in primary technologies whilst building colleagues’ knowledge of new systems. Working primarily in C# and ASP.NET on the on the back-end, with Vue.js and jQuery UI. Smaller projects involving Python/Django, embedded C/Assembly, and a smattering of other technologies.

Software Developer - OpenBet
August 2009 - October 2011

Web-oriented software development role. Performed analysis for projects, organised automated testing and reviewed code as required. Developed customer-facing systems using HTML, JavaScript, Tcl and IBM Informix, as well as various back-end and development/testing tools.

August 2010 - June 2011:
Time spent on secondment with new company expansion in Canada, extended periods working on-site with customer contacts. Performed pre-live development tasks, as well as launch-period and post-launch support. Arranged initial automated functional testing and static analysis setups. Performed analysis for further changes.

Education

2006 - 2009
BSc Hons Computer Science (2:1)
Lancaster University

Major course: Computer Science (Optional modules: Embedded Systems; Artificial Intelligence; Special Topics in Computer Science)

Group Project: “Guided Vehicle Parking System” - group implementation of java-based networked parking management and vehicle guidance system. Used pseudo-3D overhead guidance and interface suited to touch-screen interfaces. Responsibilities included implementation of the map rendering system and development of the accompanying website.

Dissertation: “High-rate sampling and compression in Embedded Sensor Networks” - involved implementation and evaluation of compression system on low-powered devices. Written as thesis and demonstrated with an oral presentation.

Various Java projects: 2D physics simulation and rendering, basic JSP/Tomcat implementation, genetic algorithm for route finding, recursive descent parser, various non- course projects (NMEA parser, IRC client)

C and ASM coding: file-system design and implementation, networked chat program, DNS client, database code, wheeled robot control code

Minor course: Mathematics - modular course, combined core maths and engineering-specific topics

2001 - 2006
High School
Sudbury Upper School and Sixth Form

A-level: Physics (B), Maths (B), Further Maths (D)

GCSE: 6 A*-C (including Maths and English), 5 others.

Projects, etc.

Historia Normannis Website
Wordpress Hugo
Historia Normannis Website

Revamp of the website for Historia Normannis re-enactment group. Worked closely with the group head to put together new design extended from existing concepts. Staging of new features to ensure timely delivery of high-priority requirements. Implementation of the new look and feel as a WordPress template to allow maintenance by a wider variety of users. Creation of UI widgets where needed.

Later on when requirements changed, rebuilt the website with static site generation to improve stability and performance, whilst simplifying hosting infrastructure.

Membership System
Django
Membership System
Design and development of bespoke system for collecting and managing membership details. Collecting of requirements from various stakeholders and resolving conflicting requests. Consideration of data protection issues of handling sensitive personal and medical details. Creation of system using the Django framework and further development projects. Iterative changes yearly as required by changing needs.
Etc.
Etc.

I try and keep a lively and varied set of hobbies…

  • Art & Photography
  • Historical re-enactment
  • Licensed Radio Amateur
Art & Photography
Art & Photography
A selection of photographs I’ve taken and watercolours I’ve painted.