platform for individual and institutional investors to trade ETFs within tax wrapper accounts
for UK-based corporation


We managed to setup entire innovation department as an extension of the client’s company.

CLIENT:

Undisclosed

PROJECT DURATION:

February 2016 – ongoing

CLIENT’S WEBSITE:

Undisclosed

PROJECT SCOPE:

Platform for individual and institutional investors

BUSINESS CHALLENGES

Business oriented, innovation department of our client’s company was put under extreme pressure to deliver platform for individual investors to trade ETFs.

Originally, most of the business and non-functional requirements remained undiscovered. It was a joint journey to learn the business domain and figure out the way to put financial data into the clouds.

business challenges

BUSINESS SOLUTION

We started with 4-5 people team to transition PoC development from the US to Poland. In the early days, our goal was to delivery MVP quickly to gain initial traction.

As a group, we had to discover not only requirements that flew from various directions but also a safe way for financial corporate to operate in the new environment driven by rapid development, short feedback cycles and Agile way of thinking. Over time, cooperation grew into a real partnership where both parties jointly form backlog based on experience, business needs, and mutual trust.

business solution

PROJECT CHALLENGES AND SOLUTIONS


MICROSERVICES IMPLEMENTATION

Our goal was to implement microservices in a way that guarantees data consistency in the complex financial domain. We wanted all of them to work independently with a good amount of data redundancy so that failure in one place was not visible to the end-user.

We knew that it’s absolutely crucial to establish guidelines for cross-cutting concerns such as – monitoring, configuration, contract validation etc. We run multiple sessions across developers to make sure everyone is on the same page. Technologically, we chose Spring Boot + Spring Cloud powered by HashiCorp and AWS tools.

CONTINOUS DELIVERY

Apart from a business change that needed to happen, we knew that continuous delivery to be effective in the microservices world has to be scalable and reliable.

We knew that our Jenkins instance will be modified by different teams. That’s why we selected Groovy DSL powered by our own Groovy component library to deliver code as a solution to that problem. Thanks to that we are able to setup Jenkins instances together with all jobs and pipelines under 5 minutes.


INFRASTRUCTURE

We wanted to have infrastructure that will be used over decades as a means to transition legacy, corporate business into the cloud. We leveraged the scalability of Kubernetes and created a separate small team of DevOps and Developers. Their sole goal was to deliver infrastructure as a code.

We knew that we will host multiple different projects so ease of change, transparency and auditability are key drivers. We used AWS, Terraform, Chief and multiple open-source tools
to deliver on that promise.


STANDALONER&D TEAM

Pragmatic Coder’s team was acting as an almost standalone R&D branch, holding great control over most of the technical and architectural aspects of these systems.

Products we were working on were the first cloud-based, fully distributed (microservices) products ever made by the customer, so somewhere along the road the Pragmatic Coder’s dedicated software development team adjusted from simply developing standalone product to setting up a set of tools and practices that were later scaled up and reused by other parts of the customer’s company.

business challenges