- Microsoft Dynamics 365 Customer Engagement including Online edition and Microsoft Unified Service Desk
- Microsoft Dynamics CRM 4, 2011, 2016
- Microsoft Sharepoint Server 2010, 2013
- Microsoft Biztalk Server
- Microsoft SQL Server
- Microsoft Azure
- PowerBI and SQL Server Reporting Services
- .NET Framework 2.0-4.7 & .NET Core 1.0-2.0 with C#
- ASP.NET MVC, 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 (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.
- 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)
A skilled architect and developer possessing a full spectrum of analytical, technical and team management skills. My recent commercial experience is centred around MS Dynamics CRM/365, .NET and Azure. I have a proven track record of both working individually and leading teams to deliver projects succesfully on time and budget, with a good balance of business value vs technical excellence.
C#.NET (Since 2004)
Sept 2000 – Jun 2004: BSc/Hons Computer Science (2:1), University of Salford
Apr 2003: Sun Certified Systems Administrator (Solaris 8 OE)
Feb 2013 – Current: Independent Contractor, RNW Solutions Ltd
Project: Customer Portal - Norfolk Council Council
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 fulfillment 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.
Project: 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.
Re-architected integration platform from Biztalk on-prem to a system based on Azure Service Bus, drastically simplyfying 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.
Project: 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.
Project: Customer Portal removal from Sharepoint Platform and rebase as standalone ASP.NET application - 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.
Project: 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.
Project: 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.
Project: 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.
Project: 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.
Project: Technical Documentation - London Borough of Waltham Forest
Reverse engineering a highly-customised Dynamics CRM implementation to produce re-deployment documentation allowing system to be moved onto replacement infrastructure.
Project: 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.
Project: 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)
Project: Solution Architect, London Borough of Newham Customer Access Programme
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.
Project: Solution Architect, Working Links CRM Project
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.
Project: Lead Developer, Skills Development Scotland
Project: 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.