Skills and Proficiencies
I currently work for Lancashire Teaching Hospitals as a senior software developer. I’ve worked for the NHS since June 2000. Below is a list of my current responsibilities and the technologies that I’m proficient at developing software in.
- Duties & responsibilities
- Supporting information
- Technical Proficiencies
I’m currently seconded to a small team who are implementing the Lancashire Person Record Exchange Service (LPRES) which is a standards based HIE built on top of the Tiani Spirit platform. I’m currently developing a web service to give hospitals a shared clinical record viewer, which can be embedded into their main EPR systems.
Duties & responsibilities
As the senior software developer my responsibilities include designing and developing our internal enterprise software solutions. The bespoke software I have developed is used by thousands of staff across several geographical locations. The software is used by medical and surgical staff as well as administrative departments such as waiting list, clinical coding and 18 week teams.
The software I have developed is classed as critical to the organisations business. It is my responsibility to ensure that the architecture is designed to handle the twenty four seven nature of our business. I work closely with clinical and administrative leads to specify new requirements and formalise work-flow changes.
While I predominantly use Microsoft .NET and SQL server for software development, I do pick the right tool for a given job. One of my responsibilities is to evaluate open source development tools to ascertain if we can benefit from these technologies to either improve our efficiency or reduce our vendor lock in. I also report to the senior management team about new best practices that the department should be adopting.
I’m responsible for coding all the new features to our enterprise software and performing rigorous testing and peer reviews before merging the feature into production. I plan and communicate the upgrades to the senior management team and ensure no disruption to the core service. After an upgrade has been applied I then communicate the changes to all affected staff by issuing a video demonstrating the changes.
As a trusted advisor I often get involved with business process re-engineering work to streamline the patient pathway.
I work closely with the senior management team and our chief clinical information officer. I advise and help plan our future road map for several large integration projects. After planning the resources required to deliver a given work stream, I then produce a written report each week to the senior management team outlining work completed, work planned and any issues or risks that have arisen.
As a senior member of the development team I regularly mentor junior developers on database schema design, coding standards and testing methodologies.
I work closely with external health professionals and third party system suppliers to ensure the delivery of quality software solutions.
I have twenty five years experience of developing custom software solutions. During the last fifteen years I have specialised in health informatics working within the NHS. I have managed, coded and delivered many large scale software projects on time and within budget.
While currently developing software using Microsoft's .NET framework, I’ve used enough languages over the years to realise you should pick the correct language for the project. I’m regularly evaluating new languages for their suitability for health applications and keeping the team aware of emerging new programming languages.
I’m a strong advocate for using open source solutions if they are a good fit for a given project. During the last couple of years I’ve been instrumental in introducing lots of open source software into the hospital to either improve the software development life cycle or to help deliver projects quicker and within budget. Some of the open source projects I have introduce include Git, Rabbit MQ, Postgres and LaTeX. I’m also investigating Docker to see if we can implement application containers to make our applications portable across different deployment platforms.
Knowledge of NHS practices
The largest software development project I have worked on is an enterprise clinical letters system called ALMA. This revolutionised how the medical secretaries worked. Moving from an adhoc system of filing Word documents on a NAS, were every department used a different filing/naming convention, to a central document store using SQL server.
While designing this new system, which would also enforce strict best practices and a central corporate look for letters, I had to win the hearts and minds of 300 medical secretaries to ensure that the project would succeed. I achieved this by running special interest groups were the secretaries contributed and expressed their concerns. A smaller joint application development group was formed were key secretaries from each clinical speciality were involved in the design of the screens and workflow.
Now the system is used within every department of the hospital, and as such I have gained a high level of understanding of how the different areas work. While the system was initially set-up as a secretarial system it’s now very much a clinical system with lots of nursing documentation being generated within the system. The system streamlines the production of clinic outcome letters by pulling patient demographics and registered GP information from the main hospital system using HL7 messages. Clinic scheduling information is also imported using XML, so that the secretaries can type against a given clinic.
I enjoy finding solutions to complex issues or problems. I relish the intellectual challenge and pride myself on being able to find the route cause of any technical issue and being able to deliver a working solution. For example, recently we were working with an external supplier of a patient system used in Gynaecology. The PDF outputs from this system were causing errors in the hospitals main electronic casenote system. Neither supplier would accept responsibility.
After analysing the problem, it turned out that the source patient system was producing PDF files with corrupted internal XREF tables. While Adobe reader would load the PDF’s fine, any tool trying to interact with the files would fail due to the file corruption.
Unfortunately, the supplier of the patient system couldn’t fix the issue as they were in turn using a third party tool to create their PDF files. In the end I wrote a tool to intercept the PDF files exported by the patent system and fixed the internal XREF table references before forwarding the files. Resulting in a happy Gynaecology manger and saving the trust money which either supplier would have tried to charge us.
Being one of the first remote workers for the trust, I demonstrated how remote working could in fact improve the output of the software development team. During the initial trial I showed that the overall output increased while reducing the number of bugs and errors. Now, most team members work part of their week from home. By allowing staff to work when they are at their most creative in a quiet home office, has increased the overall quality of the software produced.
Being a remote worker means I’ve perfected my communication with team members, senior management and project stake holders. I use the most appropriate communication channel for each scenario. This can be formal written reports and project updates, forum discussions, or the use of video updates and screencasts. I also perform presentations to senior management, clinical leads and project working groups.
Although I have not directly managed a budget within my current NHS position, I’m a school governor for the local primary school were I’m the chair of the finance committee. So I do have experience of planning a three year budget and then monitoring the spending throughout the school year.
For the last two years I’ve also volunteered at two local primary schools running an after school coding club. Besides being very rewarding, teaching children between the ages of nine and eleven the concepts of loops and event driven programming has meant that I have become very adapt at communicating complex technical themes to people with different levels of technical literacy.
With almost thirty years of commercial software development experience, these are the technologies that I am currently working with.
- VB6, VB.NET, .NET Core, Visual Studio 2005-2015
- PHP5, PHP7, PHP Unit, PHP Xdebug
- HTML5 & CSS3
- XML, SOAP, HL7, FHIR
- Microsoft SQL Server 2008-2012
- Terminal (Bash)
- Chrome DevTools
Linux / Cloud
- Ubuntu Server 14.04 LTS
- Apache Web Server
- nginx Web Server
- Caddy Web Server
- Amazon Web Services: S3, EC2, Cloud Front, Route 53