Curriculum Vitae

Career Summary

I have over 30 years of Software Development on a number of different platforms including Windows Desktop, Web development and IBM iSeries (AS/400). For the last 17 years I have concentrated on the .NET platform developing desktop applications and more recently for the last 10+ years Web Applications using Microsoft ASP.NET MVC / Razor Pages and .NET core.


I am currently in the process of upskilling, attempting to learn React with Material UI and Redux so will be looking for projects where I can utilize this skillset.

Work Experience

Senior Software Developer (Contract)

MS3 Networks
Jan 2022 - Jul 2023

Engaged to develop a RESTful API (and later a web application) to provide endpoints for a bespoke ERP application. The API was to be made available to third parties to allow them to manage their own orders.

The Web application was created as a in house tool to allow the internal staff to manage Customers, Products, Orders, Billing, Reports, Network Infrastructure etc

Achievements:

  • Created a RESTful WebApi written using ASP.NET core and EF core using C#, code first with Fluent API, Data Migrations and SQL Server. Hosted in Azure, secured by JW Tokens.
  • Created a Web Application (Portal), written using C#, ASP.NET core using Razor Pages. A CSS template was used and bootstrap as a UI framework was used for layout.
  • Integrated the Oneserve job management APIs into the MS3 API for scheduling engineer workload.
  • Integrated the ArcGIS API's into the MS3 API to aid management for visibility of available properties to roll out Fibre connections and the current network architecture.
  • Integrated Hangfire to schedule regular updates from Oneserve (job status updates) and ArcGIS (network infrastructure updates).
  • Created a Portal (Web Application) to allow the internal staff to manage MS3 company assets including Customers (partners), Products, Orders, Network Infrastructure etc. Several reports were made available via the portal including current open orders (automatically filtered for partners so they could only see their own data), existing connections (partners can only see their own connection information), list of all properties available for connection. Interactive maps were created using MapBox.js to show current network infrastructure status including active connections, connections on order and properties where a connection cannot currently be made.
  • Involved in the configuration of the system to allow partners such as uSwitch and TalkTalk to create orders on behalf of other third parties.

Technologies used:

  • C#
  • ASP.NET core
  • SQL Server
  • Azure
  • Blob Storage
  • Swagger
  • PostGres
  • Hangfire
  • jQuery
  • JavaScript
  • Bootstrap
  • Razor Pages
  • MVC
  • JW Tokens
  • GitLab
  • Jira
  • Agile
  • Mapbox.js

Software Developer (Permanent)

Cox Automotive / Manheim
Mar 2021 - Dec 2021

Employed on a permanent basis to support the development and maintenance of internal software to manage the supply of lease vehicles to the automotive industry.

Achievements:

  • Helped to develop MicroService endpoints to capture and process user intent on Vehicle Purchase Options inclusing options to Waive, Purchase Or Defer.
  • Developed a standalone WPF application to prettify and compare two JSON configureation files for the purposes of easily identifying configuration changes. The application automatically opened the files in WinMerge (if installed).
  • Developed and application to compare two configurations (internal to the System) and perform any updates on the configuration at the time the application was deployed. The current configuration was stored in an AWS S3 bucket and any mods to the target config file was logged to the console and also into SPLUNK.
  • Maintained a couple of React.js components. (Classes).
  • Used XUnit and MOQ to create unit tests for C#, JEST with Enzyme for React components. Latterly moved to a TDD methodology for C# using test fixtures.

Technologies used:

  • C#
  • ASP.NET core
  • MicroService Architecture
  • AWS
  • React
  • XUnit
  • MOQ
  • Jest / Enzyme
  • WinMerge
  • AWS Buckets
  • PostGres
  • Fluent Assertions

Senior Software Developer (Permanent)

VentureAxis
Oct 2020 - Mar 2021

Employed on a permanent basis to assist in the creation of a new set of Restful API's to support a new collaboration between VentureAxis and Hawk-Eye Innovations for the capture, transformation and presentation of event tracking data for sporting events.

Achievements:

  • Created a RESTful WebApi written using ASP.NET core and EF core using C#, code first with Fluent API, Migrations and SQL Server hosted in Azure for the 2021 EUFA cup event.
  • Created a RESTFul WebAPI to transform player tracking data capture using Hawk-Eyes multipele camera system, pushed into Pulsar and at scheduled intervals stored in SQL Server for the purposes of providing real-time, Delayed and Post match analytical data.
  • Researched the best technology for the purposes of managing the capture and queing of the data.

Technologies used:

  • C#
  • ASP.NET core
  • Redis Cache
  • AWS
  • RabbitMQ

Senior Software Developer (Permanent)

PharmAssist Solutions
Jul 2020 - Oct 2020

Employed on a permanent basis to support and enhance existing systems which allow pharmacies to drive compliance and take control of their own purchasing options.

Achievements:

  • Created an auto updating caching system that refreshes based on a data change in the database. Uses SqlDependency as the driver for the automatic updates to the cache. This has been added to a new customer facing website written in C#, ASP.NET core using razor pages.
  • Partially implemented a flexible graphing application using jQuery, HTML and Chart.js. The data for the graphs is driven by stored procedures and dynamic SQL. Code behind is written in VB.NET using ado.NET.
  • Integrated an HTML editor into the back-office systems to maintain documents for a new customer facing web site. The documents are for carousels, news items etc and are stored as HTML in a SQL Server database.
  • Completed a partially developed returns process in two disparate web sites (one for pharmacies and a separate application for hospitals)

Technologies used:

  • C#
  • VB.NET
  • JavaScript
  • jQuery
  • HTML
  • ASP.NET core
  • Razor Pages
  • Chart.js
  • SSRS
  • SQL

Software Developer (Consultant)

GHD Hair
Feb 2019 - May 2019

Engaged to develop microservices as part of a data integration project

Achievements:

  • Developed the Stock Reconciliation microservice in C# .NET core using T-SQL stored procs to transform the data.
  • Developed the Add Product microservice in C# using T-SQL stored procedures to transform the data.
  • Developed the Edit Product microservice in C# using T-SQL stored procedures to transform the data.
  • Developed the Expected Goods Receipt microservice in C# using T-SQL stored procedures to transform the data.
  • Developed the Payment Reconciliation microservice in C# using T-SQL stored procedures to transform the data.
  • Created a Web Application in ASP.NET core to allow the configuration of the microservices, monitor queue event failures and allow the events to be re-submitted.
  • Wrote in depth technical documentation on the microservice endpoints (request parameters, response messages, data formats etc) to be provided to third parties.

Technologies used:

  • C#
  • ASP.NET core
  • T-SQL Stored Procedures
  • Bootstrap
  • JavaScript
  • RabbitMQ

Software Developer (Consultant)

DFS
Aug 2018 - Jan 2019

Engaged to maintain and enhance the Glance web application.

Achievements:

  • Modified the Service function to retrieve an address's long and lat value for addresses outside the UK which don't have a post code.
  • Used the Google Maps api to provide a map picker function for addresses that could not be found automatically.
  • Modified the process of taking a payment so the response from the payment is automated.
  • Supported and mentored Junior developers in bootstrap and C#
  • Added Dependency Injection through Autofac, implemented interfaces on business objects and added some unit tests.

Technologies used:

  • C#
  • jQuery / jQueryUI
  • Google Maps Geocoding Api
  • Bootstrap
  • ASP.NET WebForms
  • JavaScript
  • Autofac Dependency Injection

Software Developer (Consultant)

Alliance Automotive
Mar 2018 - Jun 2018

Engaged as a consultant web developer to work on a number of RESTFul web services.

Achievements:

  • Implemented a RESTFul web service to retrieve car part stocks and prices for a given part group e.g. Braking components
  • Created a Windows Service to transfer files via SFTP / FTP from one server to another. Also handled Transformations and emailing files
  • Documented the API's I developed using Swagger / Swashbuckle to be able to provide a descriptive endpoint for the client (Halfords)
  • Investigated IdentityServer (OAUTH/OWIN provider) as a method of protecting the public facing Urls
  • Successfully implemented SignalR as a method of passing data from the client to the server and "tunneling" service calls.

Technologies used:

  • C#
  • Rebex
  • OpenApi 2.0
  • Json
  • Xml

Software Developer (Consultant)

NEXT Plc
Mar 2018 - Mar 2018

Engaged as a consultant to analyse and manage the migration of web services (WCF) from older servers to new servers.

Unfortunately I finished this assignment early due to un-forseen circumstances surrounding the commute.

Achievements

  • Reverse engineered and documented the current settings of a number of web services hosted on older server technology.
  • Created scripts to update the configuration settings of each of the web services from the old server location to the new server location.
  • Created a number of tasks and jobs in Visual Studio Team Services highlighting the required steps to successful migration.

Technologies used:

  • Visual Studio Team Services
  • IIS
  • C#
  • SQL Server

Software Developer (Consultant)

RTS Solutions
Jan 2018 - Mar 2018

Engaged as a short term consultant to work on a number of projects

Achievements

  • Re-developed a report to be included in a Safety Reporting Pack indicating when scheduled work was to take place on track and what safety measures need to be put in place for the work to commence.
  • Involved in the design and development of a track plant and machine planned maintenance application to allow the entry and reporting of scheduled maintenance on track and plant machinery

Technologies used:

  • C#
  • SQL Server
  • Entity Framework
  • ASP.NET MVC
  • Microsoft Reporting Tools

Software Developer (Consultant)

Incommunities
May 2016 - Dec 2017

Engaged as a consultant software developer to help aggregate data from a number of different sources (via Web API's) into a gateway which can be used as the central access point to this disparate data.

Achievements

  • Developed a RESTful web service as a gateway to aggregate data from a number of different databases.
  • Developed a RESTful web service to interact with the Capita OpenAccess API's. Part of their OpenHousing application. This allows the retrieval and updating of customer tenancy information.
  • Developed several modules for the neighbourhoods project. This is an MVC application developed to capture a customer's current financial and housing requirements and allow Incommunities to more accurately match them to available properties.
  • Created a RESTFul web service to retrieve aggregated data about a tenant to be displayed in an application which was developed by a third party. The Application could show rent payments, tenancy agreement details, allow the user to download their gas certificate etc.

Technologies used:

  • C# / VB.NET
  • SQL Server
  • Entity Framework
  • ASP.NET MVC
  • ASP.NET WebApi 2.0

Software Developer (Consultant)

NEXT Retail Ltd
Jan 2016 - Mar 2016

Engaged as a consultant software developer to help converge the UK and International web sites into one code base.

Achievements

  • Successfully "Channelised" the website so each country became a channel determined by the url e.g next.com/retail/gb or next.com/retail/es
  • Modified the channel service layer to display the correct language and currency settings.
  • Designed and developed tables to hold aggregated data from a number of tables in SQL Server. Created scripts to migrate the schemas across environments.
  • Created DTA jobs to populate the tables with aggregated data. Data was held on different servers so distributed transactions were required.

Technologies used:

  • C#
  • JavaScript
  • WCF Services
  • SQL Server

Software Developer (Consultant)

Capita Childrens Services
Sep 2015 - Jan 2016

Engaged as a consultant developer to aid in the development of a new single sign on service using IdentityServer3

Achievements

  • Designed and developed a WCF to retrieve user and role/claim information from an SQL Database using Dapper. Employed encryption to hash passwords and validate them when the user logs in.
  • Utilised the Bcrypt Libraries for two way encryption of data.
  • Developed an MVC application to upload a csv file into Azure Blob Storage
  • Developed a Web App (WCF service) that ran on a schedule, checking for new files in Blob Storage, parse the values, log any errors and create a Json object containing the valid data. This was then inserted into a DocumentDb store.
  • Developed a further Web App (WCF service) to take un processed data from the DocumentDb and push them into a Queue (Service Bus) to be pushed into Azure active directory

Technologies used:

  • C#
  • ASP.NET MVC
  • WCF Services
  • SQL Server
  • Azure
  • Blob Storage
  • DocumentDb
  • Service Bus
  • ASP.NET WebApi

Software Developer (Permanent)

Gamestec
Jul 2013 - Aug 2015

Employed as a developer to design and develop and new intranet based MVC application for the management of gaming machines. The system was a brand new development and includes (not exhaustively) Customer / Site management, Stock control (machines, machine parts), Site planning (management of keeping gaming stock fresh at customer sites, Collection Management and Management reporting.

Achievements

  • Developed a Warehouse Management module from wire frame diagrams
  • Developed a Customer Management module from wire frame diagrams
  • Developed a Purchase Order module from wire frame diagrams
  • Designed and developed the database for the warehouse, customer management and purchase order modules

Technologies used:

  • C#
  • ASP.NET MVC
  • SQL Server
  • Entity Framework
  • jQuery / jQuery UI
  • JavaScript

Skills & Tools

Frontend

  • jQuery / jQuery UI
  • jQuery Tables
  • JavaScript
  • HTML/CSS
  • ASP.NET Razor Pages

Backend / Full Stack

  • ASP.NET WebApi 2.0
  • ASP.NET MVC
  • SQL Server (T-SQL)
  • Entity Framework (6.0 and core)
  • ASP.NET core

Others

  • Blazor
  • UML
  • FTP/SFTP
  • VSTS
  • Unit Testing
  • Wireframing
  • VB.NET
  • SOAP
  • Json
  • XML
  • WebServices
  • Bootstrap
  • Linq
  • SCRUM
  • Agile
  • Swagger
  • Swashbuckle
  • WebForms
  • WinForms
  • Razor Pages
  • CefSharp
  • HtmlAgilityPack

Education

  • MSc in Multimedia and the Internet
    Sheffield Hallam University
    2004 - 2006
  • HND in Information Technology
    Sheffield Hallam University
    1987 - 1989
  • OND in Electronic Engineering and Computer Technology
    Rotherham College of Arts and Technology
    1984 - 1986

Language

  • English (Native)
  • Spanish (Basic)

Interests

  • Playing Music
  • Computing
  • Console Gaming
  • Cooking
  • Continual Education