Benjamin SprouleHomeAbout


If you wish to enquire about some of my work or simply get in touch, please feel free to contact me.

Trade Capture & Lifecycle Management - Software Developer

Having been made redundant at Veritas due to them closing the office in Reading, I then went to join Morgan Stanley. At Morgan Stanley, I was brought in to work as part of a new agile squad tasked to re-write the trade capture and lifecycle management system. A vast, monolithic application that had been mainly developed between 2007 and 2009, it is very complex with a mixture of Scala and Java with a lot of proprietary, unsupported transport libraries (for example, requiring to use an Eclipse based tool just to create the POJOs from which the source code no longer exists). With a set of UIs written in a mixture of C# and AngularJS, persistence in DB2 and Sybase and internal technologies such as CPS, which is an internal queue. As part of this gradual re-write, I have brought in more modern technologies such as Apache Kafka, green/blue deployments and continuous integration and deployment.

InfoMap - Senior Software Developer

My role at Veritas consisted of designing and developing a highly available distributed system to process the metadata of billions of files, so they can be viewed in a graphical web UI, filtered, exported into different formats for further processing elsewhere and extensible to be consumed by new services to use the data in new products. The technology stack was Java 8, Apache Spark, Cassandra, Elasticsearch, JanusGraph, PostgreSQL and Kubernetes, deployed across AWS and Azure platforms. I have also brought in a new process to improve the automated workflow to production, by introducing better testing techniques, better CI/CD processes and making it possible to deploy to pre-production as soon as a feature has been completed (i.e. after a pull request has been approved and merged, built, tested and deployed to the different environments).

On the non-technical side, my role involved a lot of mentoring of other more junior level developers and running lunch time brown bag sessions to improve the knowledge share of the different technologies and techniques I had been bringing into the team and department.

Search & Discovery - Software Developer

My first project in my new role was working on a CMS for the set top box, allowing for the details (such as the image and title) on the home page to be scheduled and changed. This was our first project that was highly available and worked seamlessly across our data centres. Whilst I had some help by a couple of the other developers, this was mainly developed by myself, which was an interesting change after working for so long really closely with other members of the team. This project was written in Java, using Grizzly and Jersey for the back end and APIs, whilst the user interface was developed using GWT.

Due to all of the changes that I had made as an associate software developer and becoming an integral leader of the team, I was given a promotion. The promotion meant that I would have the same responsibilities from before, but also to help on the team management side, such as recruitment and meetings with managers at a higher level when my manager was away.

Search & Discovery - Associate Software Developer

After completing the academy, I chose to join the search team. In comparison to a lot of other teams in BSkyB, it was a small development team, but with a lot of different projects to maintain. This allowed me to use quite a few different technologies and use them in different circumstances with a lot of challenges.

Within the search team, I managed to make an instant impact, but slowly bringing in all of the new skills that I had learnt from the academy. This ranged from non-technical processes, such as making sure we had regular retrospectives, had pre-planning sessions as well as planning sessions and started having workshops, to technical changes, such as better test coverage and improving the current tests.

Software Engineer Academy - Associate Software Developer

As an associate software developer at BSkyB, I worked as part of an agile team of 4 developing an in-house system using Ruby (Sinatra), Cassandra, an in-house variant of Cloud Foundry and Jenkins for continuous deployment (which were all setup by me within the team). It was also agreed to complete the project using Test Driven Development with tools such as Watir/Selenium/WebDriver, Cucumber and Test::Unit. The reason for using these technologies were because none of us had used any of these and we felt that as we had the opportunity to use any technology we wanted, we would try and learn as much as we could.

A key part to the development process is that we all develop as part of a pair so that the code we produce is not only of a better quality, but the solution to the problems that arise are better and are future proof. As part of the personal development of the team, we rotated the role of Scrum Master every sprint, so that everyone could gain continual experience in that role.

After a month of working, an apprentice (18 year old who had just finished A-levels) was put into the team for us to pass on our skills and to help them with their personal development.

As an extra learning scheme, I have been attending brown bag sessions on Node.js and how it works within the company. This has been very useful as it has allowed me to learn another language that is becoming very popular, especially for saving resources on web servers.

Half way through the 6 month academy process, I switched to one of the other graduate teams. In this new team, they had already decided to use Grails with MySQL. When I joined, I also introduced the use of Jenkins for building and deploying the project, Cloud Foundry as a way of deploying the project and Cucumber with Geb, which were all technologies that I had learnt in my previous team.

Ecommerce - Intern Software Developer

As part of my Computer Science degree, I had to get a relevant job placement for a year. For this year, I worked at OpenGI. This was the first time that I had to take an interview with more than just meeting people and being asked questions.

At OpenGI, my main job was as a web developer, working on the current insurance broker web sites and creating new ones. I also had to create a few tools and web services to integrate with the other web sites and other systems around the company. For three weeks, whilst one of the team leaders were on holiday, I was given the opportunity to be the temporary team leader. This involved scheduling the work load for the three weeks and corresponding with the other departments.

Online Marketing - Web Developer

After completing my A-levels, I decided that I would need a break from academia, so I applied for university with a deferred placement, allowing me to have a gap year. For my first job, I was a temporary employee at OPP for a week, to help with their project of migrating their old site to their new one, as they had fallen behind. Like with Electrocomponents PLC, I was asked to carry on for another week.

My task at OPP mainly consisted of creating new views to work with the new site and then copying the relevant content from the old pages to the new view that I had created. While this wasn’t as exciting as the job at Electrocomponents PLC, I did learn a lot about how site migration works and how other companies work.

Intranet - Intern Intranet Developer

I worked at Electrocomponents PLC on and off for two years, between 2004 and 2006. It started as a week for my GCSE work placement. As I had done so well, I was asked to come back for a week during the Christmas period, when they would be short of staff. I was then asked to come back again for the summer of 2005, for the same reason as before, but this time it was for a month. In 2006 I started my A-levels and as part of that, had to spend half-a-day a week, for a year at Electrocomponents PLC.

During my time at Electrocomponents PLC, my task was to create different sections of their globalintranet site. This involved not only creating web pages, but also communicating with memebers of staff in other countries as well, such as in Germany or Japan. I also had to teach the managers in other departments how to add new articles and information to the site.