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.
Designed and implemented a new video conferencing system using React/Material UI and C#/Asp.Net Core to create a new product offering. Managed cloud deployments with Azure and AWS, alongside administration of a diverse range of servers (development and production servers running a mixture of Windows and Linux systems) Maintained and built CI pipelines with Jenkins/Octopus and Bitbucket Pipelines. Worked with Node JS backend systems and Docker infrastructure maintenance. Modified, updated and implemented build systems for Docker-hosted Node JS backends React applications and Asp.Net Core backends.
Led the design, architecture and implementation of new products and features. Served as primary code reviewer across several products, ensuring code quality, adherence to designs and team standards, and feature completeness. Researched and evaluated new technologies, making informed recommendations that were consistently adopted. Provided guidance and mentoring to junior developers. Contributed significantly to project planning, including estimation, scheduling, and dependency management. Analysed costs and identified opportunities for long-term savings, freeing up resources that allowed for additional tools and resources for the team. Led and chaired various team meetings, including planning and design meetings. Mentored junior developers and provided feedback to senior management for performance reviews. Actively worked to resolve conflicts within the team, and maintain a positive working environment. Fostered effective communication between development team and senior management.
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.
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.
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
A-level: Physics (B), Maths (B), Further Maths (D)
GCSE: 6 A*-C (including Maths and English), 5 others.
Food tracking app, designed to provide a quick-and-simple mobile-first method for managing calorie intake, with an emphasis on minimizing the time of day-to-day data entry.
Technologies chosen to prioritise ease of implementation, as well as experimenting with low-code backends.
Ongoing project, building some CLI utilities for collecting and storing metrics produced during CI processes - Linter output, test results, etc.
Build partially to learn new technologies, and partially to resolve frustrations in missing or expensive tools for the job.
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.
I try and keep a lively and varied set of hobbies…