Career History

Senior Developer and Team Leader

Person Centred Software

September 2020 - Present
ERP and Technology Refresh to Blazor
Details
Updating Xero interface in ERP

Joined as a contractor to help with the internal ERP system. My first task was to update the Xero interface to use a their new OAuth2.0 API (which went live in the December). This is a MVC5 application with some JavaScript/AJAX code.

Working on the main product

After 6 months I joined as permanent staff member, which allowed me to work on the main Clinical Care System. The desktop is a mainly MVC5 front end with a distributed webservice backend running in Azure. The software hosts multiple customers who handle medical data so there is a focus on security.

Development was CI/CD with code reviews of all pull requests. Working on bugs and running stand ups for sprints was handled via a rota which helped junior members of the team gain experience

Technology Refresh to Blazor

Headed up the team working on the rewrite to a Single Page Application. Using Blazor as that allows C# to be used at both ends which reduces duplication of code and errors.

Worked on developing component libraries, standard CSS styles, documentation and best practices for the team. Helped refine techniques for unit testing the frontend.

Bringing in more software

Asked to help onboard eMAR software from a company acquisition. This is a mixture of WinForms, Windows Services, WebForms and MVC5 projects which all need bringing up to date. In the short term setting .Net version and adding monitoring (Application Insights). In the longer term converting to web applications and microservices

Technologies

C#, VB.Net, .Net, .Net Core 6.0, Blazor, xUnit, bUnit, Kubernetes, Agile, MessagePack, JavaScript, SPA, HTML, HTML5, CSS, CSS3.0, SASS, SOAP, RESTful, Webservice, Microservice, JSON, XML, MVC5, ASPX, Azure, Microsoft SQL Server, Transact SQL, Telerik, Crystal Reporting, Windows, Windows Server, Linux

Technical Director and Systems Architect

PCS Technology Ltd

April 2011 - September 2020
Design and development of EPOS and eCommerce systems for use in large and small venues for both hospitality and retail
Details

I finally joined PCS Technology Ltd full time, to push the new development forward.

I had already produced the core .Net Order Entry code, and this was being used in an eCommerce API as well as a basic Water Pad (based on Windows Mobile). To improve performance much of the data is cached locally in memory and some processes (printing, line display and transfer of data to the server) were handled by separate processes).

I produced a full till from this core code, and now we finally had a unified codebase across Web, PDA and Windows. Ultimately Windows Mobile based PDAs didn’t have the required performance and we’re now using the latest version of Windows 8 tablets for Waiter Pads and Stock Take devices.

I evaluated several products to replace our aging reporting system. We needed something which would work for both web and windows. Telerik reporting was the chosen candidate. The 300 reports have now been ported across.

We have several eCommerce sites with football clients which were written in .Net ASPX. However, I’ve elected to use MVC 5 for the Backoffice rewrite.

We’ve also been using NFC technologies with the tills (interfacing with several access control and ticketing systems). We have developed an effective eMoney system (including a web portal for topping up) which has multiple applications.

Technologies

C#, VB.Net, .Net, .Net Core, JavaScript, Angular, C, HTML, HTML5, CSS, CSS3.0, SASS, SOAP, RESTful, Webservice, JSON, XML, WinForms, WPF, MVC5, ASPX, Azure, Microsoft SQL Server, Transact SQL, Telerik, Crystal Reporting, Windows, WEPOS, Windows Server, Linux, NANT, Subversion, CruiseControl

Build Manager

BUPA with Hitachi Consulting

February 2007 - March 2011
Build management of customer relationship management and billing system
Details
Developer to Assistant Build Manager

Joined BUPA to help with the final development of their CRM & Billing system. Based on a Windows .Net front end which used a web services on a server farm with an Oracle database on HP UX servers.

Early on the management felt I would be of more use in assisting the Build Manager with his tasks. There was still occasional development as I was expected to be able to comment on the architecture of the system

Build Manager

Took over the role of the build manager. This involved taking the output from 120 developers, building it, testing it, packaging it and delivering it to the internal deployment team for Systems Testing and User Acceptance Testing.

This was a regular schedule which would take several hours and need to be done in such a way that the builds (and the source for them) could be recreated at any time.

Close liaison with both the developers and the deployment team was required to make sure the delivery was on time and of the required standard/consistency.

Technologies

C#, VB.Net, .Net, MVC, SOAP, WinForms, Oracle, Unix, HP-UX, Webservices, NAnt, CruiseControl, NCover, NUnit, Agile

Senior Developer

Telstra

April 2005 - January 2007
Development and updates to Billing and CRM systems
Details
Billing System Updates

Contract with Telstra to amend and enhance their internal billing system. This consisted of an Access Database linked to a SQL 2000 Server. Initial worked consisted of upgrading their Tariff import system and then moving on to replacing the interface with their Sage Accountancy System to a new Agresso Accountancy System.

Moved on to working on various fixes and patches to Access VBA code. In addition I’ve been helping with interfacing the system to a new CRM system (SalesLogix) and a new Work Flow system (Remedy). The object of the exercise has been to automate the entry and modification of data and remove the replication. Gradually functionality is moving out of the legacy billing system and into off the shelf packages.

Technologies

Software Architect

PCS Technology Ltd

January 2005 - April 2005
Object Orientation Development and Port of VB6 to .Net
Details
Extending the system

Developing with Object Oriented technologies I’ve extended the mainly COM based EPOS system in the following ways. Interfaced to PostgreSQL (Due to the original design the work took just 2 weeks) I created the installation and set up processes. Visited various resellers and end clients for both pre and post sales support.

Initial .Net code

Designed and implemented a HTTP based registration system using a .Net service. Created a real time stock take application for Handheld devices – This was written in VB.Net/Winforms for the PDA and VB.Net/VB6 for the server. The final package includes the facility to use a barcode scanner embedded into the PDA. Worked on various enhancements to the software including ‘Chip & Pin’ and Handheld waiter pad.

Technologies

Senior Developer

Convergys Ltd (EMEA)

March 2004 - January 2005
Reporting and Billing System Ports
Details
Reporting Customisation

Contracted to Convergys to create a customised Crystal Report for BT Wholesale. This simple customisation involved taking a standard report and it's associated stored procedures and changing the summarisation level. I used previous experience to show their core development team how the regression testing could be enhanced to produce the actual reports in addition to testing the data.

Fixing an interface

Convergys have more than one billing system having picked up other companies in the past. One of these 'legacy' systems is Jupiter. There was a basic Jupiter/Geneva interface (JAG) which had been enhanced for the Slovakian branch of Orange. My contract was extended to help fix bugs with the modified JAG interface. The project was based in Paris and I spent a month working there before moving being based back to Cambourne. The work was in PL/SQL and PRO*C and involved replicating and fixing bugs and missing functionality that had been located by the test team.

Porting an existing system

My final set of tasks was to port an existing system for a new client. This has involved renaming various internal files, changing country specific details and updating all of the manuals.

Technologies

Software Architect

PCS Technology Ltd

December 2003 - March 2004
Back Office rewrite to VB6 with SQL and Crystal Reports
Details
Back Office rewrite

Rewrite of the Head Office and Maintenance programs for the PCS Retail EPOS system from MS Access to VB 6.0 and SQL Server 2000. This has involved a redesign of the look & feel of all screens to suit both touch screen and standard windows environments. Additional interfaces to new/updated devices (MSR, Cash drawer, Line Displays) have been written to further extend the range of hardware available for to the application. Additional reporting (using Crystal) has been added and the parameterised report runner updated to make it easier for an operator to use. Whilst working on the code I’ve also been out meeting new resellers and performing presales support. Worked on an initial design for an EPOS system using VB.Net/Winforms.

Technologies

Senior Developer

Hurricaneseye / Telstra

January 2002 to December 2003
Billing Interface Development and Data Migration
Details
Billing Interface

Contracted to Hurricaneseye to redesign and rewrite their provisioning system for the Geneva Convergent Billing system (using Oracle). This was implemented as four separate object oriented VB 6.0 program with specific emphasis on flexibility. Input processing was designed in a way that allowed a wide variety of formats without a need to update the business logic.

Upgrades and Changes

The second half of the 2002 brought lots of major (CPS Provisioning) and minor (extended reporting, hardware provisioning) changes. As the system is modular most of the required updates were new modules.

Troubled Times

At the beginning of 2003 I became a permanent employee. The Telecoms and ISP marketplace has been turbulent recently and Affinity was another to succumb to the burst of the Dot Com bubble. Hurricaneseye was forced into administration to be bought by PowerGen.

During this time most of my work was in securing the systems we had, ensuring that there were no holes to give us problems. I performed reconciliation of existing data, matching details of CLIs on the switches against information held in Geneva. I used a variety of tools and languages for this including SQL Server 2000, Oracle, Java, Visual Basic and UNIX Shell scripting.

Telstra

Telstra acquired Hurricaneseye at the end of September 2003 bringing with them the business of the world's third largest telecoms company.

I spent that last few months helping with the migration of information to and from our systems as Telstra have 'rung the changes'. At the same time I have worked on detailed testing plans for existing systems.

After reviewing their current business requirements the business has decided to outsource various functions (including billing).

Technologies

Senior Developer

RSL Communications

May 1998 - December 2001
Portation of Green Screen system to Windows as part of a Y2K overhaul
Details
Motorola - From Green Screen to Windows

In May 1998 I contracted to Motorola as a COBOL analyst/programmer for a Y2K overhaul of their Air-Time billing system. Motorola took the decision to move away from Green Screen to a Client/Server system by re-architecting their COBOL using Netron Fusion. The client was developed in Java and the server was COBOL interfacing to an Informix Relational DB.

RSL - Combined Telephony

In September Motorola sold its mobile airtime interest to RSL. This helped RSL to complete its 'Combine Telephony' offering in the UK.

In addition to the general programming and testing I was one of the two responsible for the development and maintenance of the source code control (PVCS based), development and build scripts on UNIX and NT using shell and NT scripting as well as VB Script and JavaScript (using the Windows Scripting Hosts).

The development and build work for COBOL was performed on Windows, precompiled and then transferred over to the HP-UX servers for compilation.

Writing Middleware

Towards the end of the development I was asked to look at and update the middleware that had been written by Netron. The middleware consisted of a Java client module talking to the COBOL via TCP/IP. As the COBOL language does not natively contain commands for much beyond screen and file handling the interface had to be created using low level system calls to the underlying C libraries. In the end a mixture of shared memory and socket pairs was used to coordinate the smooth distribution and scaling of server distribution. When the new system was tested and went live it produced a 20% increase in performance and a 100% increase in peak transaction throughput. In addition the original server software used to crash daily whereas the new software remained stable until the machine crashed.

I moved on to interfacing their Billing systems to the internet using a range of object oriented products including Tib Rendevouz and SEEB. The frontend was originally servlets, but in the end was rewritten using JSP.

During the middle of 2001 RSL ran into financial difficulties and due to my knowledge of their systems I was retained as a contractor whilst Price Waterhouse and Coopers attempted to sell the UK part of the business as a going concern.

Technologies

Test and Build Manager

SSA Object Technology

May 1996 - May 1998
Design and development of automated build, testing and deployment systems
Details
Test and Build Manager

On joining SSA Object Technology, my first task was to enable COBOL ‘objects’ to work with their object request broker (ORB) in a traceable form allowing the Microfocus source code debuggers to be used.

Having successfully completed the implementation my main task became the support of the ORB and associated tools in C and C++. I devised and maintained the bug tracking and resolution system through Lotus Notes.

I streamlined and automated the build procedures on all of our release platforms, which included Windows 3.11/95/NT, UNIX and OS/400, and this often required alterations to the original source code. I managed the source code control system, written in UNIX shell script, allowing me to control and trace any developments to the product.

My other responsibilities covered: product packaging (from original source through building and testing to installable product), automated testing (achieved using the QA Partner Testing tool), formal documentation (hard copy manuals), software releases and Intranet facilities (web server and procedure documentation).

Streamlined Solution

When I first started working at SSAOT the build process took me 3 months to complete. And this was just on a single platform. There was no automation and no testing. My second build attempt (on two different platforms) took a mear 2 months.

When I left SSAOT the build and test process had been completely Automated on every platform excepting OS/400. A complete build with all of the regression testing and packaging tooks just 2 hours. Any errors were mailed to the relevent developer for fixing and testing.

Technologies

Senior Support Executive

Barron McCann

May 1989 - April 1996
Combined support and development of Personnel, Accounting, Sales/Purchase Order Processing and EPOS systems
Details
System 25 Specialist

I joined Barron McCann as their System 25 specialist, and my first task was to clear all outstanding software faults. As BeMac had been without someone with in depth S25 knowledge it was a high pressure position from the first day.

The worst problem involved a Personnel system in use by South Yorkshire Transport. In my first meeting representing BeMac I had to make a commitment to locate and fix a problem within a month. I succeeded in this task within a fortnight.

UNIX, SeaChange and COBOL

I then moved to support and develop their UNIX software involving ledger and sales/purchase order processing systems. The SOP & POP systems were written in COBOL using a CISAM database. The ledger system was written in a 4GL called seachange. COBOL was our primary development language under UNIX for bespoke systems although where possible we used Seachange and where we had to we resorted to C.

I was solely responsible for support and development of the ledger system. At one point a client required a multi-currency version of this which I designed, developed and installed. Seachange tools.

Bits and Bobs

I undertook installation and mapping for EDI (Odette, UNO, etc.) using Perwill’s EDI software.

I developed and supported PC Retail software written in C and running under DOS.

I wrote various adhoc/bespoke programs in Seachange, C and COBOL on UNIX and DOS as and when required.

I set up and maintained an NFS network linking the development PCs to the DRS300 UNIX machine.

I created a completed source control system that was capable of tracking current customer version’s for multiple programming languages, allowing me to access any historic version of the source to create a customer’s current conditions.

I worked on an emulator/protocol converter written in C for an old ICL terminal. This was developed using a cross compiler and ran on embedded unix.

Technologies

Programmer

Swift Computing

1987 - 1989
Development and support of Accountancy Systems
Details
System 25

I joined Swift Computing programming System 25s.

My first project involved a Production Control System for a Pasta Manufacturer. This allowed me to develop a screen templating and handling system along with a generic reporting system for Swift.

I then moved on to core development of their Ledger and Sales Order Processing Systems and then occasional bespoke program.

Informix 4GL

I then moved to programming on UNIX operating system porting Swift’s ledger system using Informix 4GL.

This involved a complete redesign from a flat file system using assembler to a far more sophisticated system which allowed far better screen, printer and database handling.

Technologies

Apprentice and Programmer

Westlands PLC

1982 - 1987
Technical Engineering apprenticeship followed by Time And Attendance development
Details
Apprentice

After leaving school I joined Westland Helicopters Ltd as a General Technical Apprentice.

The first year of such an apprenticeship involved a general background in Mechanical Engineering. Learning to use lathes, drilling machines, grinders and milling machines both correctly and safely in addition to using simple hand tools.

The final 3 years of the apprenticeship I was supposed to visit several department for a period of 4 months at a time. I spent time in Costing, Blade Planning, Equipment testing and Works Engineers before reaching the IT department where I found my true vocation.

Programmer

The IT department used IBM mainframes for general reporting and a Singer (ICL) System 10 for the capture of time keeping and works orders information.

I was trained in COBOL using the Deltacs course material and helped develop some of the applications which accessed a hierarchical database (DL1). This background defined my main development techniques.

I helped to port the software from the old System 10 machine to a new System 25. The code was all written in assembler, but the newer operating system allowed us to use indexed files rather than linked files.

Technologies

Seeker of Knowledge

School / Home / Wherever

- 1982
Learning to program at an early age
Details
Early Start

I got hold of my first computer system (a VIC 20) when I was 12. From then on I've never been far away from a computer or programming. These early computers (I bought a Commodore 64 few years later) where very limited.

Programming was a very time consuming effort. They did have higher level languages on them (BASIC) but they were slow. The only way to make things run faster was to program in assembler and an assembler program was hard to come by. In the end I had to write everything out on paper, work out all of the memory addresses correctly, turn the hole thing into machine code and poke it directly into the memory.

Having done all of this work the hard way it has taught me the limitations of what can be done. It also taught me ways of getting around these limitations. My attitude now is that anything is possible it just might be impractical

Technologies

An unhandled error has occurred. Reload 🗙