Gareth Brown - Software Engineer
Full Stack Software Developer with DevOps /
Solution Architecture Experience
App Software Ltd, Dilton
Marsh, Westbury, Wiltshire, BA13
PROFILE |
Senior Full Stack Software Engineer with
15+ years of experience specializing in .NET ecosystem and AWS cloud
solutions. Proven track record of delivering complex public sector and
enterprise projects, with particular expertise in: · C# / .NET / ASP.NET / JavaScript / Web
UIs · Cloud-native architectures and
microservices (AWS, Docker, Containerization) · Authentication / authorization systems
(Okta, Azure AD) · High-performance database and messaging solutions · Technical leadership and solution
architecture |
||||||||||||||||||||||||||||||
PUBLIC |
https://github.com/gbro3n, https://appsoftware.com,
https://www.linkedin.com/in/garethrbrown |
||||||||||||||||||||||||||||||
CONTACT
INFORMATION |
Tel: +44 (0)7730 590785, Email: [email protected] |
||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||
AVAILABLE
FOR |
Remote (available for occasional site work /
visits) |
||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||
TECHNICAL
SKILLS (Some niche / older technologies excluded) |
|||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||
EDUCATION |
|
||||||||||||||||||||||||||||||
OU
/ Courses |
· (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, Development and Management · (Open University) Object Oriented
Programming with Java |
||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||
Formal
Education |
· 3 A Levels: Maths, Physics, Business
Studies |
||||||||||||||||||||||||||||||
|
· 9 GCSEs: Science, Maths, English
Lang/Lit, History, Sociology, Art, Phys Ed |
||||||||||||||||||||||||||||||
Hobbies
and Interests |
· Art, Mountain Biking, Martial Arts,
Reading |
PROJECT
HISTORY
January 2023 - Present (Lead Software Engineer / Solutions Architect)
SHARP Upgrade for Grants Finance System – UKSBS (Contract)
C#, .NET Core, ASP.NET MVC, Hashicorp
Vault, Swagger, Microservices, Okta, RabbitMQ, Redis, Okta, Dapper ORM,
PostgreSQL, JavaScript, Alpine.js, Docker, XUnit, JMeter, Amazon AWS, AWS S3,
AWS Anthena, Jira
Here I rejoined UKSBS (following October 2018 - March 2021 contract) to
continue work on the GFS project which required extension and maintenance
following the successful delivery of the original project. I worked hands-on
alongside the permanent development, architecture and infrastructure teams to
lead and support on key project goals to support the wider 'SHARP' project,
integrating with work undertaken by external contractors (IBM). Specific
project contributions included:
· Leading the development team on application
architecture, developer tooling and version control strategy for supporting
multiple concurrent work streams. Co-ordinating with infrastructure teams application deployment and maintenance.
· Design and implementation of an archive
process to migrate and structure large amounts of audit data from Postgres to
AWS S3 where it could be queried by the AWS Anthena service. A continuous data
transfer process was included for moving of future data. This successfully reduced
the application database size by 90%.
· Successful evaluation, design and
integration of Hashicorp Vault for configuration and secrets management for the
GFS application. Key goals were ease of use for developers and infrastructure
teams, minimal changes to the GFS code base, options of both CLI and UI
management of configuration and secrets and the ability to hot-reload
configuration values with zero downtime.
· Design and build of a bespoke GUI client
for management of configuration data in Hashicorp Vault. The GFS project
comprises circa 20 deployed test environments each comprising multiple microservices
to facilitate testing across multiple work streams and teams. The challenge of
keeping sensitive (non-version controlled) configuration data in sync required
a UI solution more advanced than the stock UI provided with Hashicorp Vault.
· Design and implementation of processes to
archive data no longer required for compliance, thus maintaining application
database performance.
· Design and implementation of an internal cron based scheduling service to replace external calls to
API endpoints.
· 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 database
performance issues including index optimisation, database connection optimisation,
and implementation of a 'unit of work' factory pattern to better control over database
connection lifetimes in the GFS application.
· 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.
November 2022 - January 2023 (Senior Software Engineer) – A.P. Moller
Maersk (Employed)
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 a Maersk’s modern integrated / in house platform. I was able to make key
contributions to the project and advise the team on a problematic microservice
architecture that was hindering project progress, resulting in a change of
direction. While I enjoyed working with the team, I decided that Maersk was not
a good long term fit for me and left before the end of 3 months after which my
contract would have required a long notice period (References available).
July 2022 - October 2022 – (Senior Software Engineer) – Forestry
Commission via Quicksilva Limited (Contract)
C#, .NET Core, MVC, PostgreSQL, Entity Framework, XUnit, Moq, GOV.uk Design System (GDS), Azure B2C, Azure Active
Directory, Bitbucket
This 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 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.
February 2022 - July 2022 – (Lead Software Engineer) Zircon Software
Ltd (Contract)
This contract for Zircon Software Comprised two short projects:
Cavendish Nuclear Waste Management Automation Project
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.
Key achievements include the design and
implementation 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.
My other technical contributions to the project included software
architecture, tooling and library choices, project base structure, core
application logic, unit testing and code review.
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.
GPS Rail Asset Location Project
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 – (Software Engineer) - Home Buying and Conveyancing Platform - Veyco Ltd (Contract)
C#, .NET Core, ASP.NET MVC, XUnit, Swagger, Microservices, JavaScript,
Okta, Docker, Amazon AWS (ECS (Fargate), ECR / SQS /
SNS), JSON REST APIs, SOAP XML Services, Mass Transit, Dapper ORM, MariaDB,
MongoDB, Azure DevOps
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 led the design and implemention of the 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 was 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 was progressed to a stage with demonstrable multi-portal
user interfaces over multiple environments and advanced workflow management,
which supported further advancement of business goals.
October 2018 - March 2021 – Senior
Software Engineer - Grants Finance System - UKSBS (Contract)
C#, .NET Core, ASP.NET MVC, Swagger, Microservices, Okta, RabbitMQ,
Okta, Dapper ORM, PostgreSQL, JavaScript, Docker, XUnit, JMeter, Amazon AWS,
Jira
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 – (Senior Software
Engineer) - IMI Social / O2 Netflix API Integration / PayForIt
- IMImobile (Contract)
C#, ASP.NET MVC, Dapper ORM, SQL Server, SignalR,
JavaScript, JQuery, Amazon AWS, NUnit
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 – (Software
Engineer) - Plumbing and Heating Retail Web Application - House of Radiators (Contract)
C#, ASP.NET MVC, Entity Framework, Dapper ORM, SQL Server, SignalR, JavaScript, JQuery, Amazon AWS
This project was for the re-design 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 – (Senior Software
Engineer) - O2 Tariff Management - IMImobile
(Contract)
C#, ASP.NET MVC, Dapper ORM, SQL Server, JavaScript, JQuery,
Knockout.js, mustache.js, Amazon AWS
Along with assisting on other web-based projects for major UK
telecommunications providers, my primary task at IMImobile
was the development of a management portal for O2 tariff management. O2
required the development of a management tool for creating and maintaining
tariffs and special offers. The solution comprised an internal facing web-based
GUI and development of an accompanying database. A UI capable of managing
complex state, business logic and extensive validation of input was key to the
success of the system, which was achieved by a largely JavaScript driven
ASP.NET MVC web portal. Enterprise grade security and user management was also
a key component of this project.
Jan 2016 - July
2016 – (Senior Software Engineer)
- International CRM System - Dyson (Contract)
C#, ASP.NET MVC, Entity Framework, MSMQ, JavaScript, JQuery, SQL
Server, Amazon AWS
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 APIs to
support device diagnostics applications and IoT devices.
New APIs built as part of Dyson’s upgraded digital presence were built
for high availability running in the AWS cloud. Verification of fitness for
purpose included the development of the API (C# / Web API 2), a JavaScript test
client application, stress testing and documentation.
Oct 2015 - Dec 2015
– I/O Content (App Software Ltd
Internal Project)
C#, ASP.NET MVC, JavaScript, AngularJS, JQuery, Massive, MySQL,
MongoDB, Amazon EC2, S3
Project detail available on request.
Jan 2015 - Oct 2015
– (Senior Software Engineer) - Armed
Forces Social Network Website Redevelopment - Clever Digit Media (Contract)
C#, ASP.NET MVC, JavaScript, AngularJS, JQuery, Massive, MySQL, Amazon
EC2, S3
Project detail available on request.
Nov 2014 - Dec 2014
– (Senior Software Engineer) - Secure
Media Data Browsing Application - Clever Digit Media (Contract)
C++, C#, SQLite
Project detail available on request.
Sep 2013 - Oct 2014
– (Senior Software Engineer) -
Back End Processing Systems - Clever Digit Media (Contract)
C#, ASP.NET MVC, Windows Services, Entity Framework, SQL Server
Project detail available on request.
May 2013 - August
2013 – (Senior Software Engineer)
- Email Marketing System - Clever Digit Media (Contract)
C#, ASP.NET MVC, Windows Services, Entity Framework, SQL Server
Project detail available on request.
Feb 2012 - Apr 2013 – (Senior Software Engineer) - Genealogy
Website Re-development - Clever Digit Media (Contract)
C#, ASP.NET MVC, JavaScript, JQuery, Entity
Framework, MySQL, SignalR, Amazon EC2, S3
Project detail available on request.
Both strong back and front-end development skills were required
throughout this project.
Nov 2011 - Jan 2012 – (Software Engineer) – Enterprise
Data Processing Framework - DBG Bristol (Contract)
C#, ASP.NET MVC, JavaScript, JQuery,
Windows Forms, Entity Framework, SQL Server, NServiceBus,
Managed Extensibility Framework (MEF)
Project detail available on request.
Sep 2010 - Sep 2011 – (Software Engineer) - SaaS Price
Monitoring Service - Clever Digit Media (Contract)
C#, ASP.NET, JavaScript, JQuery, Windows
Forms, SQL Server, Web Services
Project detail available on request.
May 2011 - Jun 2011 – (Software Engineer) - Point of Sale
System and Retail Website Design and Build - House of Radiators Ltd
C#, ASP.NET MVC 3, Entity Framework, SQL
Server, JavaScript, JQuery
Project detail available on request.
Jan 2010 - Aug 2010 – (Software
Engineer) - Financial Services System Design, Build, Maintenance and
Consultation - - Richmond Group Bournemouth (Financial Services) (Contract)
C#, ASP.NET, Windows Forms, SQL Server, Web
Services, SQL Server Reporting Services
Project detail available on request.
Jan 2009 - Jul 2009 – Software Engineer
Rail Victoria Line Comms Network Test Lead - WRSL (on subcontract from Zircon
Software)
XML, Network hardware testing, Network
monitoring software
Project detail available on request.
Previous project experience to 2007
available on request