- Working with stakeholders from shop-floor to board level to define requirements and communicating/documenting in terms that they understand
- Helping stakeholders make technology and architecture choices by presenting pros and cons emphasising effect on the requirements/cost/effort rather than architectural principles
- Design from high-level architecture to detailed specification
- Managing design and implementation teams to balance and prioritise competing requirements and keep people on-task delivering value
- Microsoft Dynamics 365 Online Customer Engagement. Microsoft Dynamics CRM 4, 2011, 2013 2016. Microsoft Unified Service Desk
- Microsoft Power Platform: Power Apps, Dataverse, Power Automate, PowerBI, Power Apps Portal
- ClickDimensions for D365
- Microsoft Sharepoint Server 2010, 2013 and Sharepoint Online
- Microsoft Biztalk Server
- Microsoft SQL Server and SQL Server Reporting Services, Azure SQL Server
- Microsoft Azure including App Service, LogicApps, Functions, Service Bus, Bot Service
- .NET Framework 2.0-4.8 & .NET Core 1.0-3.0, .NET 5.0 with C#
- ASP.NET Core MVC, ASP.NET WebForms, WPF w/ MVVM, WinForms
- SOAP/REST web services, ODATA, OAUTH2, WCF, .NET Remoting, Azure Service Bus
- Entity Framework, LINQ-to-SQL, nHibernate, ADO.NET
- Unit testing (xUnit, MSTest, MBUnit, moq)
- Debugging and performance/memory profiling
- Source control (Git, SVN, TFS-VC)
- Build and process automation (MSBuild and VSTS Team Build, Windows PowerShell)
- Reflection, P/Invoke, COM Interop, multi-threading and Win32 API.
- JSON including JSON Schema, JSONPath
- XML including use of DTD, schema, XSLT and XPATH
- Windows COM, WMI and ADSI
- T-SQL and T-SQL query optimisation
- Regular expressions
- Setup and deployment (Windows Installer MSI, WiX, ClickOnce)
- Networking (TCP/UDP, IP, routing, DNS, DHCP etc) and Server OSs (Windows Server, Linux)
- Cloud and Container orchestration technology (Microsoft Azure, Amazon AWS, Docker Compose, Kubernetes)
- Authentication, authorisation and directory services (Active Directory, LDAP, Azure AD, Azure AD B2C, IdentityServer, OAUTH2, OpenID-Connect)
A skilled architect and lead developer possessing a full spectrum of analytical, technical and team management skills. My recent commercial experience is centred around MS Power Platform, Dynamics 365, Azure and .NET and I have a wide range of skills and experience outside of this.
I have a proven track record of both working individually and leading teams to architect, design and deliver projects successfully on time and budget, with a good balance of business value vs technical excellence.
Solution Architect and Team Lead
April 2021 - Current: Senior Solutions Architect, HCL-PowerObjects
Feb 2013 – Mar 2021: Independent Contractor, RNW Solutions Ltd
2021 - New CRM for Sales - Private Parking Company
Delivered a sales CRM facility for a new division of the company based on customer’s existing investment in technology and processes.
2021 - Customer Services Platform As-Is Architecture Reviews - Westminster City Council and Royal Borough of Kensington and Chelsea (SOCITM Associate Consultant)
2021 - Integrate Housing Self-Service Portal - London Borough of Havering
Worked with the council’s Housing software provider to design and implement integration of existing customer self-service portal with the specialised housing portal provided by their product. Including customer single-sign on and multi-factor authentication implementation.
2020 - Customer Services Platform As-Is Architecture Review and Recommendations - Norfolk County Council (SOCITM Associate Consultant)
Conducted a review of the as-is architecture, platforms and functionality available on the council’s customer service platform and presented to stakeholders. Identified prioritised list of recommendations for future improvements with high level effort estimates based on the customers goals.
2020 - Emergency Needs Management System (COVID-19) - Royal Borough of Kensington and Chelsea & City of Westminster
Rapidly architected, designed and lead the implementation of a Power Platform solution to record and manage the needs of vulnerable individuals during the COVID-19 lockdown including an extranet facility for volunteer groups to receive and track requests.
2019-2020 - Housing CRM Blueprints and Phase 1 Delivery - City of Westminster
Worked with stakeholders to define requirements and then delivered a high-level architecture and phased plans to meet their needs quickly whilst fitting in with business deadlines and medium and long term ICT strategy, policies and goals.
Navigated complex approvals and review process to help business get technical and design approval to proceed to implementation. Implemented phase 1 PowerApps solution and conducted handover to internal team.
2019 - Customer Portal Replatform - London Borough of Newham
After the success of a similar project at LBH in 2015, lead the re-development of a complex CRM-integrated customer portal platform hosting many online processes to remove from Sharepoint application platform and turn it into a stand-alone application. This enabled the council to make use of their existing investment in this portal and continue its use with only minimal migration costs and time.
2019 - Email Marketing - City of London
Designed and implemented an email marketing system using ClickDimensions as part of a highly customised existing CRM implementation on D365 Online.
2019 - Vuelio Integration - City of London
Designed and implemented integration with Vuelio PR/contacts service with existing CRM implementation.
2019 - Project: Improvements to CRM/Marketing System - Private Parking Company
Worked with client to define and implement several major improvements to their existing D365 Online system, including D365 for Marketing.
2019 - Single Sign on Platform - London Borough of Havering
Added OpenID-Connect/OAUTH SSO facility to existing Customer Portal, allowing third-party apps to re-use customers’ existing identity.
2018 - Events Management - City of London
Designed and built an events management system to help manage attendee information for large events and allow attendees to RSVP online. Included a powerful data import system to help pull in data from many different sources without errors and re-keying.
Helped inform the decision of which platform to choose to build this on, selecting D365O and ClickDimensions over other similar products.
2018 - Customer Portal - Norfolk Council Council (SOCITM Associate Consultant)
Architected and lead the development of a customer facing portal allowing customer to log their service requests with the council and receive updates to those cases automatically from the existing CRM system. Assist with design and implementation of OpenID Connect SSO facility to allow customers to use their existing website sign in details.
Designed and created a facility to allow web content authors to define the forms, using an existing forms building package (FirmStep Forms) and have the resulting submissions integrated automatically into the CRM system through bespoke processing application hosted on Azure using Azure Service Bus for messaging. Created a generic facility to allow fulfilment workflow to be defined and managed by CRM system administrator without development. Integration with online payments provider (Global IRIS) to allow payment to be taken.
2016-2017 - Dynamics 365 Online Upgrade - Norfolk County Council
Lead the development of an upgrade project transitioning an on-prem Dynamics CRM 2011 system comprising several end-to-end integrated processes, to Dynamics 365 Online and MS Azure.
Conducted an options appraisal to select the most appropriate integration platform and then re-architected integration platform from Biztalk on-prem to a system based on Azure Service Bus and NServiceBus, drastically simplifying the maintenance/administrative burden of the system.
Implemented MS Unified Service desk as a front end for contact centre users to allow call scripting and drive efficiency.
Implemented scripted deployment and configuration management systems.
2016 - Highways Defect Reporting- Norfolk County Council
Lead the development to add an end-to-end integrated process comprising customer self-service portal, CRM and backoffice system to an existing CRM system. Complex bespoke ArcGIS and Mayrise integrations.
2015 - Customer Portal Replatform - London Borough of Havering
Envisaged, architected and lead the re-development of a complex CRM-integrated customer portal platform hosting 100s of online processes to remove from Sharepoint application platform and turn it into a standalone application. This enabled the council to make use of their existing investment in this portal and continue its use with only minimal migration costs and time.
2015 - Customer Care System Dynamics CRM 2011 implementation - Norfolk County Council
Lead the specification, implementation and handover of a highly customised CRM system. Included integration with existing property data and data warehouse systems as well as a custom front end (HTML5/AngularJS) for contact centre users to optimise process flow.
2014 - Registrar Appointment Scheduling and Backoffice System - London Borough of Havering
Lead a team delivering implementation of a scheduling system to allow both CRM users and self-service customers to book and pay for registrar service appointments. Translated complex scheduling rules into configuration and added some intricate custom code/plugins to extend the engine where required.
2014 - Integration of Council Tax Self Service Portal - London Borough of Havering
Integrated a third party Council Tax online portal system (Capita Connect) with existing CRM system and customer portal allowing customers to transparently use their existing login details via single-sign-on.
2014 - Appointment Booking and Queue Management System - London Borough of Newham
Extended and enhanced a Dynamics CRM based appointment booking system allowing customers to book appointments with council customer service teams and deal with walk-ins as part of a single integrated solution. Included custom software running on self-service kioks and overhead display screens to allow customers to check in and call customers to desks.
2014 - Technical Documentation - London Borough of Waltham Forest
Reverse engineering a highly-customised Dynamics CRM implementation and integration platform to produce re-deployment documentation allowing system to be moved onto replacement infrastructure.
2013 - Parking Permits Application and Management System - London Borough of Newham
Implemented a high volume online parking permit application system for residents with an integrated backoffice process hosted in Dynamics CRM. Included complex business rules, integrations with data warehouse system and permit document generation to allow the system to be operated largely without manual processing.
2013 - Rented Property Licensing Online Application System - London Borough of Newham
Rescued a failing project by taking over development of a complex online and CRM based application system fully integrated with a backoffice system (Idox Uniform) and payment gateway (Northgate PARIS). Dealt with some complex design and quality issues, and ensured the system was tested comprehensively to successfully deal with the high volume of transactions expected.
May 2011 – Feb 2013: Senior Technical Consultant, 2e2 UK Ltd (Microsoft ISV)
2012-2013 - Solution Architect - London Borough of Newham
Architected a complex Dynamics CRM 2011 solution, tracking enquiries and interactions with thousands of customers. The solution included integration with many pre-existing back office systems using WCF, Biztalk and MSMQ.
Delivered initial workshops to agree on scope of business process specific projects and provided high level designs and budgetary estimates. Supported the sales process to secure the work with presentations to business users and technical stakeholders. Delivered designs for the key elements of the solution such as ERDs and data dictionaries for the entity model and solution component layering diagrams. Documented use cases as SysML activity diagrams and user stories.
Managed a geographically distributed team of permanent staff, UK and offshore contractors delivering the solution. Projects were delivered using an agile methodology working directly with the customer’s business people and delivering working releases on a frequent basis whilst being able to react efficiently to changes in requirements and problems during development. Monitored development activity performing code reviews, mentoring junior members of the team and ensured the quality of the delivered artefacts exceeded internal and contractual standards.
2012 - Solution Architect - Working Links
Architected a CRM solution to support introduction of the UK government individualised learner record (ILR) system into the customers’ business processes.
Designed a business rules engine to perform real time validation of learner data allowing rules to be designed by super users using a Excel formula-like syntax. This was designed to reduce the cost and effort required to implement and test quarterly rule updates issued by the involved government agencies. A formal LALR grammar was specified for the rules and a parser implemented using the Irony.NET Language Implementation Kit (a modern alternative to YACC). An expression execution engine was designed to execute the resulting expression trees and produce the desired output. Development of the parser and expression execution engine was driven using TDD and a comprehensive unit tests. After initial implementation, performance of the engine was tuned using performance profiling to identify and refine the bottlenecks discovered in the design.
2011-2012 - Lead Developer, Skills Development Scotland
2011 - Senior Developer, Skills Funding Agency
Feb 2009 – May 2011: Senior Developer, Figure Out, 2plan Group (Financial Services)
Delivery and maintenance of line-of-business WinForms/WPF applications being sold to IFAs as part of a compliance and software package sold to independent IFA to run their businesses.
Gained team management experience by leading projects through all stages of development with a team of junior developers. Prioritised and assigned tasks, monitored work and provided progress reports to stakeholders. Created test and staging environments and introduced database version control to increase quality of deployments and to enable improved testing. Successfully increased number of bugs being detected before release.
Architected a smart client framework supporting several applications. This allowed data to be replicated locally to a SQL Express database allowing the user to go offline.
Jan 2008 – Feb 2009: Application Developer, Manheim Europe (Automotive)
Worked in a challenging large team responsible for delivery of a business critical application used to run live/online car auctions throughout Europe using C#.NET, WinForms, MS-SQL, .netTiers and Crystal Reports.
Led re-architecting of existing code base to allow localisation and internationalization, and to improve maintainability. Delivered documentation and training for other developers and ensured ongoing compliance with new strategy.
Jul 2006 – Jan 2008: Application Developer, J N Bentley (Construction)
Delivery and maintenance of internal software using C#.NET, WinForms, MS-SQL and Lotus Notes/Domino. Responsible for the full development lifecycle of analysis/specification, design, testing, rollout and support.
Designed and implemented an electronic accounts payable workflow system to replace a paper based process. Included integration with existing finance system and innovative automatic processing system using OCR and structured data extraction. Successfully increased efficiency and reduced operating costs by automatically processing around 40% of invoices.
Jun 2004 – Jul 2006: Infrastructure Analyst, J N Bentley (Construction)
Administration and support of a Windows network infrastructure for a challenging distributed workforce. Support, troubleshooting and bug fixing of custom business applications hosted on Lotus Notes/Domino and Access/MS-SQL.
Developed software (C#.NET, VBScript, PowerShell) for departmental and integration use including a remote screen-sharing support system, file synchronization system and an XML based system used to automatically exchange data with large utility company client systems.
Jul 2002 – Sept 2003 (Industrial placement): Systems Engineer, Sun Microsystems (Computer Systems)
Responsible for recreating complex customer hardware/software environments including large clusters and SAN setups in a large data centre. Developed software to help manage the laboratory including a PHP/Java based web front end providing a simple interface to reserve, provision and access test laboratory equipment.