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 the CV, so this page gives more detail on the projects Adam has worked on over the years.
The projects range from small, one man chunks of work 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 requirements discussions, through to in-life support and occasionally even decommissioning.
Adam most recently worked for a year in Aviva Digital Foundry as a senior tech lead in their Integration and APIs (I&A) group. Adam worked in an internationally distributed software team, helping to design and build services used throughout the business.
I&A teams work more on infrastructural systems and services, rather than on projects and products, so this section is more about "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: As part of the improvement work on Aviva's architecture, 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 side of Adam's work included learning and sharing best practice for the Spring framework and its 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 the 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 software development practices, processes and knowledge 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 projects included:
Online card payment system: Adam was lead application developer on this project to provide facilities to make online card payments and track the history of those payments. Adam was involved in the full lifecycle of the project, from early requirements meetings to supporting and improving the live system.
This system replaced manual handling of a range of payments that clients and brokers made via post, fax and phone. Within a year of the system going live it was being used for over 80% of these transactions. The system also provided new and enhanced reports on the payment processes allowing authorized users to see transactions in progress as well as transaction histories.
The success of this project led to a number of follow-up phases to increase the number of transaction types that could be handled online, improve the financial information provided to various user groups and increase the security and regulatory compliance thresholds across the company.
Fund information and reporting: Adam was the 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 the data as online charts and views, 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 and advisors to build personalised client portfolios and reports.
The app was praised by brokers and clients from its initial release. Early users reported they could generate a suite of custom reports for their clients in a few hours, rather than the week or more taken before. Users also gave glowing feedback on the user interface, comparing it favorably to other available apps.
Due to this positive reception, the app was included in bid work as the company expanded into new markets, showcasing the quality of Hansard's online facilities. Within Hansard, the app replaced older fund reporting tools and a number of its components, features and design patterns were also adopted by other Hansard online 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 as new requirements, products and calculation logic were introduced. Adam worked with actuaries and other financial teams to understand the products and requirements as they evolved, updating the business logic and user interfaces to match.
Online survey and feedback: As part of a move to renew and improve the company's online presence, the board wanted feedback from current users of their systems. The requirement was for a survey, presented in multiple views, with a smooth user experience, with the results shown as both online views and data download.
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, providing a feature about which users spoke highly. Due to this feedback, some of the design techniques were 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.
This API was trialled with a few apps prior to an intended wide rollout. The web app was considered much easier than the existing manual config update approach.
Document search engine: Adam was the sole developer on this project, working with marketing and financial services teams to provide an online search tool for financial, sales and general information documents. It handled document upload, indexing, thumbnailing and pruning of old documents.
This used Apache Solr/Lucene, with some extensions and customisations to handle custom requirements for various document types. Adam provided this as a tactical solution which met a pressing business need, quickly and with minimal maintenance overhead.
Document Library mini-site: This template-driven website enabled staff, brokers and others to access a range of documents and forms, in over 15 languages, covering details of all the company's processes and products.
This was another tactical project with Adam as the sole developer, working with multiple business teams to provide a system they could easily use to maintain their documents and forms. Although a simple project, it was widely appreciated by those teams.
Geographic activity mapping: This online app used Google Maps to provide a map view of how clients and others used the company's services. The app gave an easy way to build an overall picture of user activity, using location data with additional activity data to give a wider view of how users used Hansard's online services.
Again this was a small project, with Adam as the lead developer, including some quite technically complex work, to build a 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. The requirements for the app were tightly constrained, so Adam worked closely with the business to ensure requirements were met, 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 formal correspondence from Hansard to its external contacts.
This EJB and XSLT based system daily handled thousands of customised legal and regulatory documents in up to 12 languages; printing, emailing, archiving and publishing them online.
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