Over the years Adam has worked on a large number of projects in various areas of the software industry. Only a few of these are included in his CV; so this page briefly describes each project Adam has worked on over the years.
The projects range from small, single developer projects to large enterprise redevelopment programmes, involving many developers and user groups. In most cases the work has included more than just raw code development, usually the work has covered the full software lifecycle, from initial project discussions, through to in-life support and occasionally even decommissioning.
Adam started as a senior software engineer with BJSS in March 2020, just as the COVID-19 hit. As such he has been working remotely, using his long experience with remote working teams. It would be nice to see the office.
Most of Adam's work with BJSS is on projects for external clients and so can't be mentioned in detail. Hence these project descriptions are brief.
Account management system modernisation: Adam is currently working in a small team modernising a heavily used legacy system which maintains and synchronises user details across many disparate systems.
The main focus of the modernisation has been to introduce more structured software engineering practices around source control, CI/CD, issue tracking, release management and team collaboration.
Following the project modernisation, the team has also started to modernise the codebase itself, working closely with the client team to ensure a smooth handover after the engagement.
Retail ecommerce platform development: Adam's first BJSS project was for a large online retail client. He worked in two teams on maintaining and improving the client's core ecommerce and fulfillment systems.
Adam joined Aviva's Digital Foundry in 2018, in the Integration and APIs (I&A) group, as a senior tech lead for their internationally distributed software team, helping design and build internal business services.
I&A work mainly on back-end systems and services, rather than projects and products, so this section is more "areas of experience" than "project history".
RedHat Fuse / Apache Camel platform: Adam worked with Scrum teams providing REST and SOAP APIs to integrate various internal systems - building new, robust REST interfaces on top of older systems.
Aviva's chosen integration framework was RedHat Fuse, based on Apache Camel, using Enterprise Integration Patterns as the design approach for the new APIs.
Spring Boot REST microservices: Adam helped introduce, design & build Spring Boot Microservices; with the goal of providing a simpler, modern way to build resilient APIs for underlying systems.
This work included learning and sharing best practice for the Spring framework and various extensions, as well as supporting & mentoring junior team members in Java and Microservice practices.
Java upgrade/migration planning: Due to his experience with the Java ecosystem, Adam helped I&A and IT teams manage migration to newer versions of Java and plan how to handle the changing nature of Java.
As part of this work Adam also helped introduce developers to new/improved features of the language, tooling and support options; becoming a point of contact for many Java related questions.
Technical lead: A large part of Adam's role was to mentor and support team members, sharing experience and useful practices. This included code review and pairing sessions, introducing and explaining techniques and investigating learning options.
More widely, Adam worked with developers, IT, DevOps, security and infrastructure teams to improve dev practices, security training, better knowledge sharing and team collaboration processes across the group.
Adam worked for Hansard as a senior software engineer for nearly ten years (2007 to 2017). This role covered all aspects of software development on various core projects and applications, used by both internal teams and client/customer groups.
Adam's projects at Hansard were mainly online applications based on Java, Spring, Hibernate and various Apache libraries, on Tomcat and Glassfish, using Oracle databases. These included:
Online card payment system: Adam was lead application developer on this project enabling online card payments and payments audit tracing. Adam was involved in the full lifecycle of the project, from initial requirements to supporting and improving the live system.
This system replaced manual handling of a range of payments made via post, fax and phone. Within a year of going live it was being used for over 80% of these transactions. The system provided enhanced reports on the payment processes, allowing tracing of transactions in progress as well as transaction histories.
The success of this project led to follow-up phases increasing the range of transactions that could be handled, improve the financial information provided to various user groups and increase regulatory compliance thresholds across the company.
Fund information and reporting: Adam was lead developer on this project, providing interactive reporting and charting of fund information. This core part of Hansard's online presence helped users explore available investment funds, generate fund brochures, speculative portfolios and reports for existing portfolios.
The app integrated multiple data sources, presenting online charts and reports, downloadable as PDF or raw data, in 12 languages, for multiple device types and branding. A key feature was the ability to generate custom reports and views, enabling brokers to build personalised client portfolios and reports.
Due to the remarkable glowing feedback for both the user interface and featureset, the app was included in bid work for new markets, showcasing the quality of Hansard's facilities. Within Hansard, the app replaced older reporting tools and some of its components and design patterns were adopted by other Hansard apps.
Adam was instrumental in introducing agile practices for this project, demonstrating to business teams how these practices could improve their existing project processes. The success of this project helped agile practices become more widely used and accepted in other projects.
Investment illustrations application: This online charting and report generation app showed the behaviour of different custom investment scenarios. The app used actuarial data, complex financial calculations and user configurable scenarios to produce verifiable charts and reports of potential investment decisions.
Adam was one of a two-man team working to improve and extend the application with new requirements, products and calculation logic. Adam worked with actuaries and other financial teams to understand the products and requirements as they evolved, updating business logic and user interfaces to match.
Online survey and feedback: As part of a move to renew the company's online presence, the board wanted feedback from current users. The requirement was for a survey, presented in multiple views, with a smooth user experience, with both online downloadable reports.
Adam was the sole developer on this small but commercially important project; working with senior management to ensure the user interface was pleasing and well integrated with the suite of online apps.
Careful UI/UX design avoided the annoyances of most online surveys, with surprisingly positive feedback for a survey. This led to some of the design techniques being included in the wider renewal project.
Application configuration manager: The many apps managed by the development team each had a set of configuration options. Synchronizing config changes across apps and environments was awkward and risky.
Adam built a simple Spring compatible API to use cached, database backed config data. A separate web app allowed config data to be quickly and reliably updated and validated.
Document search engine: Adam was the sole developer on this project, working with marketing and financial services teams to provide a document search tool for financial, sales and general information. It handled document upload, indexing, thumbnailing and pruning of old documents.
This used Apache Solr/Lucene with some extension for custom document types and requirements. This was a tactical solution for a pressing business need, but the low maintenance overhead means it is still in use.
Document Library mini-site: This template-driven website enabled staff, brokers and others to access documents and forms, in over 15 languages, giving details of all the company's processes and products.
This was another tactical project, working with multiple business teams to provide an easily usable system for their documents and forms. Although a simple project, it was widely appreciated by those teams.
Geographic activity mapping: This online tool used Google Maps to display a set of views, using location and activity data, of how Hansard's online services were used in various markets.
Again this was a small project, with Adam as the lead developer, including some technically complex work, to build a data-rich geographic and graphical user interface for multiple devices.
PDF form manipulation and management: Adam was the lead developer on this web app managing PDF forms with data fields to be automatically filled and the resulting documents archived for regulatory reasons.
Multiple PDF libraries were used to validate and parse the forms to identify fields to be filled with located or calculated data. The forms were then filled, watermarked, locked, archived and printed (singly or in batches).
This app was part of the internal regulatory processes and hence a key part of every new policy issued and every policy statement. This involved close collaboration to ensure tight business requirements were met precisely, while also adding features to help their form handling processes.
Automated document generation and management system. Adam's first work at Hansard was on a business critical system that generated and managed Hansard's formal external correspondence.
This EJB and XSLT based system handled thousands of customised legal and regulatory documents daily, in 12 languages; printing, emailing, archiving and publishing them to various locations.
Adam's work covered both the document generation & management and the core business logic engine; and included streamlining document handling, improving printing and simplifying release and support processes.
Adam started doing freelance work in late 2006, when he was recommended to a biotech startup company to help validate and improve their diagnosis process. Since then he has worked on various projects for small organisations.
This has included:
Analysis and testing of a medical diagnosis application. This included testing the software, validating the algorithms against the core genetics white paper, documenting the application in detail.
Following this test and validation work, Adam also worked on improving the diagnosis process and application.
Adam joined Energis late in 2002 as a senior developer, working in Leeds as part of the Design & Development team. In addition to his project work Adam also helped to introduce and increase knowledge of Java and Java related technologies within Energis.
Adam's work at Energis included:
Adam joined Roundpeg early in 2000 as a media application developer, working in Cambridge and San Francisco. He became the UK Technical Team Leader when the UK branch began expanding and taking on larger projects.
As a result of the reduced market for custom enterprise software projects in early 2002, Adam moved into the Roundpoint arm of the company to work on integrating Roundpoint software with various content management systems to produce subscription based mobile services for PDAs, phones and other internet devices.
While working in the UK and USA, Adams project work included:
Adam joined CCL as a Software Engineer in the Software Technology Group in October 1997, to work on various new software ideas which took advantage of current technology trends. He also worked in the Distributed Systems Group doing OO consultancy and design. Projects Adam has been involved with include:
In addition to his full-time work, Adam has also worked on a number of small projects and technical consulting roles for other companies and individuals, including:
Adam Completed his MSc (distinction) in Data Engineering in 1997, after 6 months research into multi-agent co-operative manufacturing systems using lightweight Java Agents and message based communication protocols. His work was used as part of a distributed manufacturing consortium project into massively distributed agent systems.
During his MSc various client/server database projects were completed based on RDBMS, NoSQL and GIS database technologies, along side a number of knowledge based systems, based on advanced database query techniques and OO methodologies.
Before this Adam was a software engineer on realtime embedded software projects for Racal Radar Defence Systems. This involved C/C++, Ada and a variety of assembly languages to develop user interfaces to distributed radar systems.
In the early 90's Adam did a BSc in Maths and Computer Science, including learning (and forgetting) too much maths and computation theory, with a final year project to prove and demonstrate some matrix optimsation algorithms.
last edited: May 2019