I have 16 years commercial experience as a Software Engineer,
Team Lead and Architect. During that time I have received
consistently excellent
feedback about my technical expertise, my pro-active approach and my
clear and honest communication. I am especially passionate about clean code
and applying tried and proven architectural patterns to solve
real world problems.
Work Experiences
McLaren Applied
Snr SW Engineer (contract)
London/Woking
Co-architected and co-developed multiple Angular+NodeJS+.NET Core applications.
I created a Template Web Application to Kick-Start customer projects. This
consisted of a NodeJS backend handling security and administration and a
frontend in Angular. This included CLI tooling to tailor the application to
the project’s needs. The CLI was written in NodeJS using Angular Schematics.
Implemented 3D telemetry visualisation using ThreeJS and D3. The telemetry data
was received from a .NET Core backend using SignalR. I’ve also worked on an
Authentication layer in NodeJS against Auth0 using OpenID Connect.
Co-architected a new authentication layer for the Telemetry Analytics
Platform (.NET Core)
Worked on the CICD build pipelines (Azure DevOps)
Magnitude Internet GmbH
Chief Architect, Co-Founder
Remote
Designed and co-developed an E-Commerce Solution.
Frameworks/Languages: Ms Azure Cloud, C#, ASP.NET MVC 5,
ASP Web API 2, AngularJS
I came in as the Chief Architect for this German Start-up company.
Designed the cloud based architecture (MS Azure) for their
multi-tiered product and mentored the team on the concepts used.
Worked together with the CTO on implementing the CICD
pipeline in Atlassian Bamboo. (It was a pain, I’d use Azure DevOps going forward)
Invenias
Snr SW Engineer (contract)
Reading
Re-implementation of Web-Based CMS in Angular 7.
Frameworks/Languages: Angular (v7), RxJS (Reactive extensions for JS),
NgRx (State manager), C#, Visual Studio 2017,
Visual Studio Code.
This client was struggling with performance issues, maintainability and
stability. I’ve taken the following steps to move them forward:
Start to re-implement the application using several new concepts in
a side-by-side way, so the improvements can be seen immediately.
Many new features were implemented along the way.
Introduce NgRx for client-side state management and caching.
Migrate from Angular 4 to Angular 7 to take advantage of
out-of-the-box performance improvements.
Move them to the new Angular CLI build system. This took dev builds
from 8 minutes down to 2.
Set up code linting to highlight anti-patterns and use of deprecated features.
Mentor the team on all the new concepts so that they can to move forward.
Fiserv
Snr SW Engineer (contract)
Slough
Re-implementation of Risk Assessment Software in Angular 5.
Tools/Languages: C#, WebAPI, Angular (v5), RxJS (Reactive extensions for JS), ngrx/store (State manager), Visual Studio 2015, Visual Studio Code, MS SQL Server.
The old version of the FCRM risk assessment software was implemented in Silverlight and had to be re-implemented in Angular. This included writing a REST API wrapper for the legacy server-side logic using WebAPI. The client-side application was then created from scratch using Angular.
I did some work on the server-side back-end, but I mainly focused on the client-side Angular application and ended up writing about 80% of the app on my own. There was a heavy focus on observability (data changes in one part of the UI affecting other parts), so we heavily used the ngrx/store, ngrx/entities and ngrx/effects packages to manage and observe client-side state changes.
Knight Frank
Software Engineer (contract)
London
Extending and updating Knight Frank's web presence.
Tools/Languages: C#, ASP MVC, AngularJS, ASP WebApi, WebForms, Visual Studio 2015, MS SQL Server
I have written multiple extensions and fixes to the current website. Noteworthy:
A new property search for the Knight Frank site, written in Angular:
www.knightfrank.com
I have trained some of Couchbase's customers in the use of the Couchbase C SDK (libcouchbase).
Tools/Languages: C++, Qt 5, libcouchbase, Qt Designer
These are one-day trainings which I have prepared together with an employee of Couchbase and held on-site in various locations. So far I've given this training six times to consistently positive feedback.
Momentum Coach Hire
Senior Software Engineer
White Waltham
I have been working for Momentum Coach Hire, an ambitious little company in the Coach Hire and Event Organisation business. There, I have created a variety of new web sites and improved existing ones. I have also been promoted to IT Director and am responsible for the migration of the entire company (50 employees) onto Microsoft Office 365.
Symantec
Senior Software Engineer
Reading
I have been working as a Senior Software Engineer for Symantec UK Ltd. I was in the Research and Development team for Symantec Enterprise Vault, an email archiving solution written in C# and C++. In my time there I have performed the following tasks:
Completed or am working on a number of small to medium projects including new features and architectural enhancements to improve resilience.
For these projects, I have created the functional specification and software design documents and have implemented them on my own or as part of a team.
Main tools/skills used: OOA OOD Database Design UML MS Visual Studio 2008 C# C++ XSLT SQL
Fixed many defects in different code streams as part of learning the project architecture
Received outstanding performance reviews for pro-actively driving architectural improvements and my excellent communication and team work
Ingres Europe Ltd (now Actian)
Consultant
Slough
With Ingres I worked as a permanently employed Consultant. I was involved in the following customer projects:
Head Developer and Technical Team Lead for an open source project adding playback and recording capabilities to the Ingres database.
Using the following skills/tools:
Heavy NPTL multi-threading on UNIX using C (tested with 1000s of threads)
GCC, GNU Automake, Netbeans IDE
Lexical processing in C# running on .NET and Mono
Ported from Linux to Solaris, HPUX, AIX, Windows
Held a presentation about it at the 2009 UK Ingres User Association
Head Developer for porting the MS Excel based reporting for Newline Underwriting Ltd to Jasper Reports:
Working on site with the customer in an agile environment.
Talend Open Studio ETL, Jasper iReport
SQL Database Design and Implementation (Ingres Database)
SQL overnight number crunching scripts using BASH
Created a Data entry Website using Grails including user management and authentication
Developer in a C# project for the MET Police.
On site consulting at BNP Paribas
HM Informatik AG
Technical Team Lead
Ilmenau, Germany
HM Informatik is a very agile company focused on small to medium size customer projects. There were many projects being worked on simultaneously and I have fulfilled varying roles within them, like:
Head Developer / Architect
Technical Team Lead
Project Manager
Trainer
Within those roles, the following tasks are noteworthy:
I was responsible for the full project Life Cycle. Statement of Work, Analysis, Design, Implementation, Integration, Support for multiple projects.
Managed teams up to 5 people.
Was responsible for the in-house migration from MS Visual SourceSafe to Subversion
Managing according to the V-Model (German equivalent of PRINCE 2)
Have given a lot of successful technical trainings with up to 20 trainees
Given technical presentations at the CA Infoexchange 2004 and 2005 with audiences of 100+ people.
Technical Achievements:
Lightweight open source ORM in C# using the .NET Reflection API
Head Developer, Team Leader and SQL Database Architect for a Logistics Module for a large European CD/DVD manufacturer written in OpenROAD interfacing SAP/R3 using C++, C# and SOAP web services with an Ingres Database back end.
I have been in the development team of the application for measuring and approval of ship licenses (MOT for ships if you like) for the German Central Ship Inspection Commission (ZSUK). This Application was originally written in C++ and later ported to Java.
As Head Developer and Team Leader for a Reporting tool for the German Armed Forces I created an interface to a live 3D simulation engine to gather statistics. C#, SQL Database Design.
I have written a reporting server daemon which enables applications to use Crystal Reports through a very easy database API. Thinking Instruments was licensing this tool to several customers. The server was written in C#.
Certifications
Microsoft Certified Azure Solutions Architect Expert
Earning the Azure Solutions Architect Expert certification demonstrates skills and knowledge to advise stakeholders and translate business requirements into secure, scalable, and reliable solutions. Candidates have advanced experience and knowledge across various aspects of IT operations, including networking, virtualization, identity, security, business continuity, disaster recovery, data management, budgeting, and governance - managing how decisions in each area affects an overall solution.