Below and available for download is my professional CV. I am a freelance / contract full-stack software developer with experience working for business and government organisations of all sizes. I'm available for hire on projects globally.
Much of my work centres around the C# / .NET stack, but I have extensive experience working with a diverse range of technologies across front and back end projects. I have over 17 years experience in software engineering, solution architecture, DevOps, and database administration with a history of successful projects. I'm able to take on solo projects, lead projects or fit in with existing development teams in the role of Software Engineer, DevOps Engineer or Solutions Architect. I take pride in building robust, maintainable, scalable applications with a strong focus on and prioritisation of business goals.
Gareth Brown - Contract Software Engineer CV
Specialising in .NET / Web / API / Database / Cloud development
App Software Ltd, Dilton Marsh, Westbury, Wiltshire, BA13
An experienced full stack software engineer specialising in internet programming, with an in-depth knowledge of protocols, standards and technologies including cloud services. An effective communicator and problem solver with an organised and pragmatic approach to software development. Known by my clients for being accountable, responsible and leading on key challenges.
|Date of Birth
|16th December 1980
|Tel: +44 (0)7551 123288, Email: email@example.com
|Remote (available for occasional site work / visits)
Technical Skills (Main / commonly used technologies included only)
|Expert / Proficient
|Commercial Experience Of
|Python, Dart, C++, VB.NET
|.NET (Core / Standard / Framework), ASP.NET (MVC and Web Forms), Xamarin, Node.js, Mass Transit, Dapper ORM, Entity Framework, ServiceStack, WPF, Win Forms, Svelte, AngularJS, JQuery, Knockout.js, Linq, SignalR
|Databases / Messaging
|PostgreSQL, SQL Server, MySQL, MariaDB, SQLite, MongoDB, Redis, RabbitMQ, SQS/SNS, Kafka
|UI / CSS
|CSS, Sass, Bootstrap, Tailwind, Foundation, GOV.uk Design System (GDS)
|DevOps / Cloud / Virtualisation
|Docker, nginx, IIS, AWS (EC2, ECS, Fargate, S3, CloudFront, IAM, Route53, RDS, ECR, SNS, SQS, SES), Azure, Google Cloud (GCP), Hashicorp Vault, Digital Ocean
|CI/CD / Version Control
|Git & GitHub, CodeCommit, SVN, TFS, Bitbucket, Jenkins, Azure DevOps, GitHub Actions
|Octopus Deploy, TeamCity
|IDEs / Editors
|Visual Studio, VS Code (inc. GitHub Codespaces, Dev Containers), Rider
|Windows, Linux, Mac OS, Android
|Design Patterns, SOLID, Unit / Integration / Load Testing, TDD (Test Driven Development), Selenium, Mocking, Responsive Design, SEO, Graphic design
(Stanford Online / DeepLearning.AI) Supervised Machine Learning: Regression and Classification
Microsoft Certified Technology Specialist - ASP.NET
APM Professional Qualification in Project Management
(Open University) Web Applications Design
(Open University) Development and ManagementObject Oriented Programming with Java (Open University)
3 A Levels: Maths, Physics, Business Studies
9 GCSEs: Science, Maths, English Lang/Lit, History, Sociology, Art, Phys Ed
January 2023 - Present - (Contract) Senior Software Engineer - Grants Finance System - UKSBS
This is my second contract for UKSBS on the GFS project which requires extension and maintenance following the successful delivery of the original project in March 2021. I have been working hands-on alongside the permanent development, architecture and infrastructure teams to lead and support on key project goals. So far my work has included:
- Leading on application architecture, developer tooling and workflow for supporting multiple concurrent work streams.
- Development point of contact for infrastructure teams for coordinating application deployment and maintenance.
- Design, build and documentation of a process to migrate 100's of gigabytes of audit data from Postgres to AWS S3. Structure migrated data so as to facilitate fast querying using the AWS Anthena service which I evaluated for suitability in this use case. Following the initial migration, a continuous background process is implemented to stream audit data to S3 is in place to prevent excessive amounts of data being stored in the database in the future.
- Design and implementation of a migration process to move application configuration data away from an awkward bash / Jenkins / Kubernetes based solution to Hashicorp Vault. This required evaluation of Hashicorp Vault along with proof-of-concept implementation and integration with the GFS project, along with communication and training for the architecture / operations teams. Key goals were minimal changes to the GFS code base, both CLI and UI management of configuration and secrets and the ability to hot-reload configuration values.
- Design and implementation of processes to archive data older than the retention date as directed by the business. This required the linking of relational data that met the criteria for being older than the retention period and storing in a format that facilitated potential restore at a later time while maintaining referential integrity. The solution involved serialization to sets of Postgres SQL insert statements, and controls for managing ordering of data to ensure constraints were not violated during data restore. Additional features included running as a background process and management of potential contention for data access between microservices.
- Design and build of a GUI client for management of configuration data in Hashicorp Vault. The GFS project comprises circa 20 deployed sets of microservices to facilitate testing for multiple work streams and teams. The challenge of keeping sensitive (non-version controlled) configuration data required a UI solution more advanced than the stock UI provided with Hashicorp Vault. I designed a client to tabulate configuration for multiple environments with management features such as the script generation and direct writes to the vault. The UI was built using Alpine.js with a .NET MVC backend.
- Evaluation and implementation of security remediations recommended by external penetration testers (e.g. CSP headers with associated script modifications and other HTTP headers)
- Investigation and resolution of excessive Postgres database connection consumption, with implementation of a 'unit of work' factory pattern to better control database connection lifetime.
- Implementation and documentation of GitFlow branching strategy to support multiple concurrent work streams with phased feature deployments along with blue / green deployment and environment management.
- Leading on developer tooling and workflow for supporting multiple concurrent work streams.
- Development point of contact for architecture and infrastructure teams for coordinating application deployment and maintenance.
November 2022 - January 2023 - Senior Software Engineer - A.P. Moller Maersk
C#, .NET Core, Web APIs, PostgreSQL, SQL Server, Entity Framework, XUnit, Moq, Azure
At Maersk I worked on the Customs House Brokerage AppLite product. This was a phased deployment to rebuild a legacy application and move it to Maersk's modern integrated / in house platform. I was primarily responsible for building the platform's data export feature according to internal design standards and maintaining compatibility with the legacy platform to support blue / green deployment.
July 2022 - October 2022 - (Contract) Senior Software Engineer - Forestry Commission via Quicksilva Limited
C#, .NET Core, MVC, PostgreSQL, Entity Framework, XUnit, Moq, GOV.uk Design System (GDS), Azure B2C, Azure Active Directory, Bitbucket
This short project for the Forestry Commission required integrating with the existing Quicksilva development team to assist with meeting the MVP milestone for redevelopment of the FLO software for both internal and external user management of Felling Licence Applications.
My brief here included the progression of application development against the functional spec to meet project deadlines. Specifically, I undertook the development of an internal facing administrative system, with particular focus around identity and authorisation via the integration of Microsoft's Azure B2C. This included federated Active Directory tenants and the development of a roles / claims based system to help manage a complex matrix of permissions for Forestry Commission employees.
I was able to make key contributions to the project quickly, being familiar with common agile development processes and technologies used in the project, and with significant experience of identity and authorisation platforms.
March 2022 - July 2022 - (Contract) Lead Software Engineer - Cavendish Nuclear - Zircon Software Ltd
C#, .NET Core, WPF, Python, gRPC, SQL Server, Entity Framework, XUnit, Moq, Stateless, Docker, UML, Enterprise Architect, Azure DevOps
This project for Cavendish Nuclear, under Zircon Software was for the design and implementation of prototype control software for a hazardous waste system comprising a collection of robots and sensors (OptiSort). OptiSort manages logic, state and communications between subsystems.
Requirements were captured in a client supplied Enterprise Architect (Sparx Systems) model, which was given ownership of to update with design and implementation detail consisting of interface definitions and UML diagrams.
As lead developer I was responsible for coding, configuration and implementation of the software along with leading a team of three developers and a test engineer. Leadership responsibilities included mentoring, story writing, sprint planning, estimating, reporting and detailing of low level design of features with the client and management.
My technical contributions to the project included software architecture, tooling and library choices, project base structure, core application logic, unit testing and code review.
Key achievements include a robust set of state machines with customised state observability, pause / resume / synchronisation (based on the Stateless .NET library). This highly automated system relies heavily on a set of 300+ well-maintained unit and automated integration tests to assure the correct working of 3 state machines comprising 50+ states and associated triggers. Clean, SOLID, dependency injection based architecture has facilitated pain free testing and development collaboration.
The team works well together which I feel my lead role has contributed to. The project is on track to complete early with a consistently high degree of satisfaction expressed by the customer throughout the project.
February 2022 - March 2022 - (Contract) Senior Software Engineer - GPS Rail Asset Location Project - Zircon Software Ltd
C#, .NET Core, Xamarin, ASP.NET MVC, PostgreSQL, NUnit, Docker, JSON APIs, Wireshark, Plant UML
This was a short project while the company waited for work to begin on the main project to which I would be assigned. I was able to get up to speed quickly and contribute modules to cover key requirements. My work on this project required extending a Xamarin based mobile application to facilitate comms and report on connectivity status with a GNSS receiver and web service.
The Xamarin application used underlying Android APIs to gather the required information. Some reverse engineering of the third party GNSS receiver companion app using Wireshark was required to discover means of interacting with the device, resulting in my implementing Multicast DNS client functionality in the app to improve on current network scanning mechanisms.
This project required adherence to SIL (Safety Integrity Level) coding standards and detailed technical documentation.
April 2021 - January 2022 - (Contract) Software Engineer - Home Buying and Conveyancing Platform - Veyco Ltd
Veyco is an investor backed start-up building services to support home buyers, sellers, estate agents, mortgage brokers, mortgage lenders and conveyancers. Further information regarding the business is restricted by NDA.
As a full stack Software Engineer, I have been in a lead role in designing and building the infrastructure and application code to support this ambitious financial services (FinTech) application. Using Azure DevOps to set up CI/CD to deploy containerised applications to AWS ECS (Fargate) services and configuring multiple load balanced applications for web portals, database migrations and workflow, I have set up a robust and low maintenance architecture that has enabled rapid code deployments and progress.
On the application development side, my role has been primarily back-end development for this project, which has included (alongside general .NET Core application development):
Okta SSO integration, HMLR (Land Registry) API integration, Workflow and message bus system design using Mass Transit, Database integration (RDBMS and NoSQL), Swagger API UI integration, Docker file curation, Integration Testing and Unit Testing.
The project has been progressed to a stage with demonstrable multi-portal user interfaces over multiple environments and advanced workflow management, which is supporting further advancement of business goals.
October 2018 - March 2021 - (Contract) Senior Software Engineer - Grants Finance System - UKSBS
UKSBS is a public sector service provider. Here I worked within an agile team of 15 including 3 developers, a technical architect, a DevOps engineer, and two testers, a BA and a project manager. The project was the development of a replacement for the existing Grant Finance System (GFS) which manages the allocation of funding to government backed research projects. This project was successfully moved into production in December 2020 and is now in the maintenance phase.
The new GFS system is a set of microservices running on AWS / Kubernetes. Microservice architecture was specified to facilitate fault tolerance and the potential future replacement of individual services. Well defined APIs and distinct databases were to be developed for each service while using a consistent technology stack and coding standards that would set a precedent for new software development projects within UKSBS. The project implemented full CI/CD and was deployable to multiple environments within AWS from early on.
My role within the team was to lead on implementation of core design choices as specified by the technical architect. I was responsible for coding, configuration and integration of key application features including single sign on (SSO) integration (Okta / OAuth / OpenID Connect), inter-process comms including API development and messaging framework (RabbitMQ), concurrency handling, internal code libraries, UI framework and general application architecture.
In addition to core development activities, I was tasked with mentoring junior team members, requirements gathering and story creation, with frequent contact with end users and project stakeholders. Towards the end of the project my role moved towards training of technical members of the permanent staff and maintenance of the applications.
February 2018 - September 2018 - (Contract) Senior Software Engineer - IMI Social / O2 Netflix API Integration / PayForIt - IMImobile
Much of my time during this assignment was spent developing upgrades for IMImobile's social media aggregation product - IMISocial. This product is used by several large clients including the BBC, and its primary purpose is managing large streams of messages from the major social media platforms such as Twitter, Facebook and Instagram, facilitating the curation of information for use by TV and radio presenters. Tasks included maintenance and extensions to API consumption modules and application / UI features.
An additional project with which I was involved was the development of client code for consumption of the Netflix partner API for use in O2 customer promotion workflows.
December 2017 - January 2018 - (Freelance) Software Engineer - Plumbing and Heating Retail Web Application - House of Radiators
Redesign and maintenance for existing ASP.NET MVC website to improve device compatibility (responsive design) and image management. Other upgrades included implantation of a new payment processor, and a solution for managing a large and specialised product catalogue. As the sole developer on this project I was able to design and advise on the most complete, robust and cost effective solutions for the various challenges facing this small business.
July 2016 - November 2017 - (Contract) Senior Software Engineer - O2 Tariff Management - IMImobile
Jan 2016 - July 2016 - (Contract) Senior Software Engineer - International CRM System - Dyson
Providing cover following departure of a permanent senior developer. Dyson required assistance extending existing CRM systems to support expansion to new markets in China and Europe along with the implementation of new API's to support device diagnostics applications and IoT devices.
Oct 2015 - Dec 2015 - I/O Content (App Software Ltd Internal Project)
Development of SaaS application I/O Content. I/O Content is an API centric CMS (Content Management System). This project solves various common issues relating to the delivery and retrieval of content targeting multiple device types and platforms. The service leverages NoSQL database features to create a system for managing user structured content types while allowing content to be queried based on data values in custom fields. Use of AWS caching and CDN services is automated within the system.
Jan 2015 - Oct 2015 - (Contract) Senior Software Engineer - Armed Forces Social Network Website Redevelopment - Clever Digit Media
Requirements gathering, design and build of a popular Armed Forces Social Network in ASP.NET MVC, to replace an existing classic ASP website. Requirements were to replicate core functionality and add some new features to create a new foundation on which the site could continue to be developed. The project involved requirements gathering using source code and migrating an existing MySQL database schema alongside replicating using modern programming frameworks. Worked as sole developer for the majority of the project, which resulted in a successful deployment in September 2015.
Nov 2014 - Dec 2014 - (Contract) Senior Software Engineer - Secure Media Data Browsing Application - Clever Digit Media
C++, C#, SQLite
Design and build of an application for distribution on physical media (CD / USB) of genealogy record sets. Requirements specified that application should auto run and data should be encrypted and only readable by application.
Sep 2013 - Oct 2014 - (Contract) Senior Software Engineer - Back End Processing Systems - Clever Digit Media
C#, ASP.NET MVC, Windows Services, Entity Framework, SQL Server
Maintenance and development of multiple back end processing systems for administrative data processing, payment system development (upgrade to 3D secure). Consolidation of multiple processing workloads into a robust .NET service based application. Upgrades and feature extensions to existing projects.
May 2013 - August 2013 - (Contract) Senior Software Engineer - Email Marketing System - Clever Digit Media
C#, ASP.NET MVC, Windows Services, Entity Framework, SQL Server
Development of high capacity Email Marketing System and API, featuring direct mail dispatch including DKIM signing and with several other mail deliverability features. The system includes a custom SMTP server for incoming mail categorisation, WYSIWYG editor for email composition, and multivariate testing and reporting capabilities.
Feb 2012 - Apr 2013 - (Contract) Senior Software Engineer - Genealogy Website Re-development - Clever Digit Media
Re-development and migration of server software to robust and scalable architecture for fast growing and successful genealogy and historic documents service. The site supports approx. 300 concurrent users during normal operating conditions, and commonly supports 1000+ during busy periods. Requirements were gathered from the existing Classic ASP web application, and implemented in a new ASP.NET MVC based system. The project was expanded to incorporate new features, such as advanced search and a historic document library.
Along with redevelopment of software applications, the project required the implementation of a virtualised system architecture (VMWare, AWS EC2) for isolation of major components and redundancy, along with integration with a content delivery network (AWS CloudFront).
Clever Digit Media is adept at internet marketing and so support for A/B testing frequent modification was a necessity for all applications, along with the processing of significant volumes of statistical data. Dependency injection and IoC underpin the application architecture to aid the requirement for regular refactoring and extension of applications.
Both strong back and front end development skills were required throughout this project.
Nov 2011 - Jan 2012 - (Contract) Software Engineer - Enterprise Data Processing Framework - DBG Bristol
Building of comms components to support the company's new Enterprise Data Processing framework, which is used to import and process data of varying format from varying endpoint types (e.g. Local network, FTP, WCF). This was a highly flexible workflow based system, required to support a wide variety of company clients with differing needs. I also supported the R&D team with general development work during busy periods.
Sep 2010 - Sep 2011 - (Contract) Software Engineer - SaaS Price Monitoring Service - Clever Digit Media
Product maintenance and enhancement for SaaS price monitoring service - a web based tool offering competitor price tracking for retailers.
May 2011 - Jun 2011 - (Freelance) Software Engineer - Point of Sale System and Retail Website Design and Build - House of Radiators Ltd
Design and implementation of integrated point of sale system and ecommerce website to function as core system for heating industry retail business. The project was delivered on time and within budget.
Jan 2010 - Aug 2010 - (Contract) Software Engineer - Financial Systems Design, Build, Maintenance and Consultation - Richmond Group Bournemouth (Financial Services)
C#, ASP.NET, Windows Forms, SQL Server, Web Services, SQL Server Reporting Services.
Upgrade of serial credit card processing system to parallel processing system for improved capacity.
Bug fixing, feature improvement and stabilisation of Direct Debit payment and response processing systems. Reporting systems design and build.
Jan 2009 - Jul 2009 - (Contract) Software Engineer Rail Victoria Line Comms Network Test Lead - WRSL (on sub contract from Zircon Software)
XML, Network hardware testing, Network monitoring software
Designed and executed test specification for verification of comms reliability over 9 Victoria Line tube stations and a control centre for the new underground software system. Lead team of test engineers through the test process. Achieved full functionality and stability of comms network. Responsibilities also included management of configuration data for Victoria line software systems.
Previous project experience to 2007 available on request