Profile
I am a Full Stack Software Engineer who has worked across all phases of the Software Development lifecycle. I have over 20 years experience in corporate environments. My main passion is in providing thoughtful solutions to complex problems. I have a keen eye for detail and pride myself on my ability to communicate effectively at all levels of the workplace structure.
I have worked in Development, Team Leading and Management roles, but my heart lies in pure development. The majority of my career experience has been within the Microsoft .NET ecosystem using C#, with a focus on Business Intelligence and Machine Learning, but more recently I have specialised in Open Source technology stacks utilising Vue3, JavaScript, TypeScript and Tailwind CSS.
I am a constant learner, having been fascinated with all things to do with science and technology from an early age.
Experience
Live 5
Puzzlebouts
During the later projects at Capita, I developed a deeper appreciation of Open Source software and tools, and began to move away from what had been my primary Microsoft tech stack. Using these Open Source technologies I put more focus on developing my Front End skills.
Puzzlebouts is the culmination of my learning these new technologies, with Vue 3, Typescript, Tailwind CSS and Firebase being my go to stack for the last 2 years.
The MVP of Puzzlebouts was released at the end of April 2022. It is a competitive puzzle gaming site which focuses on traditional single person puzzle games, such as Sudoku and its variants, and it allows a user to create 'bouts' (sets of puzzles) that they then play back to back. User actions are recorded, the bout published, and then played back, to simulate a real time experience.
Technically, Puzzlebouts is a Single Page Application (SPA) using the Vue 3 composition API and router. State management is handled using Vue's reactivity system as well as VUEX and Pinia. The game management system is built with a layer of patterns based Typescript classes. Back end data is held in a Google Firebase No SQL document store, with a middle layer implemented using Firebase Cloud Functions.
Some of the biggest skills I learned during this endeavor have been non technical, as this has been a truly a one person show. Marketing, it turns out, is difficult. :-)
Capita Software Services
Midway through 2011 my title was amended to reflect the authority of my position across the Capita Software Services division. By this time the core 'Insight' platform had matured to the point that the Housing Division had built their own teams to manage content creation within the platform, which freed me to focus on other projects. My wider role became more consultative, building prototypes for teams and having a general overview of Reporting and ML projects that took place in the division.
I was now able to expand the 'Insight' offering from pure BI reporting into the realms of Machine Learning and Data Analysis. Microsoft Azure ML tools were used in areas such as Housing Rental arrears prediction, but my main focus became the design and development of a dynamic web based Analysis Services driven data exploration tool called 'Insight Discovery'. The front end was initially built in HTML and JavaScript and as its scale grew I implemented a more maintainable structure using the AngularJS Framework. This product enabled a user to drag and drop Facts and Dimensions onto a canvas and have those elements rendered as different graphical and info-graphic artifacts. Technically this was done with a API layer of C# Web Services that dynamically built MDX queries based on a users actions.
During this time many of the Microsoft BI and ML offerings matured, therefore our teams came to use the PowerBI ecosystem more often.
Capita Housing
Employed after gaining MCSD qualification to Design and Develop an in house Reporting and Analytics platform for Capita Local Housing customers, which replaced a 3rd party product. The platform, which was given the name 'Insight', was built on top of the Microsoft Business Intelligence stack. It used SQL Server and SQL Server Integration Services to implement a robust ETL process. SQL Server Reporting Services and Analysis Services assets were surfaced through C# Windows Forms and C# ASP .NET Web Forms front ends. Management tools were written to give user access rights and enhance the interconnections between content. For example by allowing independently written reports to pass parameters between themselves.
During this time I built a bespoke licencing environment, which allowed the sales teams to offer tiered product offerings and protect the company's intellectual property.
As well as building the core system I supported teams in creating Reporting Services reports and extracts as well as Analysis Services Cubes for data exploration, using TSQL and MDX queries.
Professional Development
MCSD Qualifation Boot Camp
I decided to invest in further study to focus my career as a Developer and Software Engineer, rather than progress in Management roles. I valued the certifications achieved since leaving University and joined a .NET boot camp in India to gain the premier MCSD qualification. This was an intensive 6 day a week boot camp for 7 weeks which covered the full stack of Microsoft .NET offerings using C#.
This was a fantastically enriching time both educationally and culturally.
Capita Education Services
Started out as Senior Developer for the in house Management Information System (MIS) team, and later promoted to be the Development Team Manager, worked on updating and maintaining the MIS system used by Capita Education Software customer help desk. During this time used SQL Server Reporting Services to fulfill reporting needs, and developed a generic database installation system, which allowed databases to be upgraded. This system used a Windows Forms front end to manage a hierarchy of SQL Server Management objects and Stored Procedures.
Unisys
Overview
Worked with and Team Led a development group of 5 Junior Consultants in the Unisys Banking Division, using Microsoft .NET technologies, SQL Server and Unisys' own Payments Information Engine (PIE), worked across numerous projects for Banking clients to realise their change programs from legacy mainframe based systems to a Windows .NET environment.
Cross Project Development Team Functions
During my time as the team leader, implemented and enforced a more structured and process driven working framework for the team. This included tighter liaison with the Business Analyst teams, using Use Case driven requirements gathering and introduced Unified Modelling Language (UML) within the technical designs. Introduced coding standards, automated builds using NANT, and automated Unit Test scripting using NUnit. These initiatives led to a dramatic reduction in faults found by the System Test teams.
Remote Clearings Information Access
Designed and developed a C# ASP .NET client front end for Halifax Bank of Scotland (HBoS). The system provided client banks with access to data and image audit information captured and archived within the PIE Unisys Banking Solution.
PIE Messaging Sub System
Designed and developed C# .NET Web Service giving client banks direct access to PIE archived data. Developed system so specific banks could write their own front ends.
Report & Extracts
Undertook an analysis task to consolidate banking legacy reports, and built a generic reporting system using a C# Windows Forms front end and Crystal Reports to offer a package of streamlined reports and extracts.
Bromcom
Worked in the Research and Development department, ported parts of a proprietary radio network based Educational Support Suite into a desktop based solution using the Java programming language. This included the production of a cut down browser capable of reading the company's in-house mark-up language, and produced a tracking system for student discipline.
Learning
I love to learn new things. Some of my current passions.
- Haskell Functional Programming
- D3 and Scalable Vector Graphics
- Creative Coding - Art and Simulations
- Advanced Typescript
- Golang
- Flutter
- Web 3 ecosystem