One of our ClearScore Engineering Principles is that we constantly aim to review our technology stack to continuously remove legacy. This process involves our teams collaborating on identifying techniques, tools, languages & frameworks and platforms that enable the best business outcomes for our current stage of growth.
To provide some clarity on the choices we make, we publish a Technology Radar each quarter.
It showcases the things we’re:
- Adopting (using when appropriate)
- Trialling (pursuing on some projects)
- Assessing (exploring to find out more), and
- Holding (phasing out and no longer using on new projects)
Our focus for 2020 is all about driving efficiency. To achieve this, we’ve selected technologies that make us more productive with development, testing, monitoring and security.
Development & testing techniques
At ClearScore, we prioritise ownership and speed of delivery over central control. Our entire organisational model is structured around this concept. We’ve implemented this by creating a number of Global and Local ‘startups’, which we call ‘Delivery Teams’. Global Delivery Teams create reusable, country-agnostic products and services. Local Teams then take these and customise them to optimise in their respective markets.
Using the ClearScore Planning Process, these teams periodically reflect on the strategy to create their own roadmaps to hit their respective targets. To keep them fully empowered, they have independent line management structures, their own objectives and key results (OKRs), and are free to organise themselves into Agile squads.
Our architecture is decentralised using microservices and serverless architecture for our API layer, microfrontends in our web tier, MVVM and VIPER architecture in our Android and iOS Native apps respectively. This allows each team to have end-to-end product ownership and the ability to autonomously release changes. By using best practices around continuous delivery and a combination of BDD, automated smoke tests, peer reviews and pipelines as code, we’re now able to comfortably release multiple times per hour.
More recently we’ve adopted some of the QA Assistance approaches that have been successful at Atlassian. The whole team is responsible for quality instead of relying on QA to be gatekeepers which often prevents bugs before they are ever written. Developers now own stories end-to-end, from inception to production whilst our QA now have the bandwidth to focus on root causes and identification of symptoms. Mitigation techniques such as bugs blitzes and QA kickoffs/demos are now commonplace. This has resulted in the bugs backlog being reduced by 20% each quarter with a Dev:QA of 5:1.
Development & testing tools
Steve Jobs once said that “it’s not the tools that you have faith in — tools are just tools. They work, or they don’t work. It’s people you have faith in or not”. We have faith in our people and trust them to choose their right tools. If the tools don’t work, we stop using them.
The ecosystem we operate in is complex and so our toolset is rich. We use a range of systems to automate our build, development and testing processes. Code is committed into GitHub and is built using a pipeline based on Spinnaker, Jenkins, CircleCI, Fastlane and Bitrise. Automated unit and functional testing are done via Cypress for the web tier, Earl Grey for iOS and Espresso for Android.
ClearScore operates in a mode of high transparency. The rule of thumb is that if it’s appropriate for information to be shared, then we share it. We use a number of systems to keep each other in the loop, such as Slack for messaging and alerting, Atlassian Jira and Confluence for workflow and technical documentation respectively, Dropbox for all our files and Oak for our company intranet. Production monitoring with SignalFX, Prometheus and Pingdom all hooked up to Slack to give everyone a view of the health of our systems day or night.
Languages & frameworks
ClearScore embraces the open-source community. This allows us to punch above our weight by leveraging the experience of a global community of technology collaborators. The range of frameworks in the open-source world is staggering, so we carefully handpick the best for what we require.
Scala is favoured over Java for writing our services. Similar to eBay, Amazon, Blizzard, Netflix and LinkedIn, we love its clean, concise nature and our performance-obsessed developers are addicted to its advanced optimisation features.
For Native Apps, we use the latest versions of Swift for iOS and Kotlin for Android. Our mobile team has used them to create beautifully crafted Global Apps with app ratings that consistently outperform our competition.
Protocols & platforms
We’ve invested heavily in our global platform and since April 2017, our infrastructure has been 100% on AWS with 99.9%+ uptime. This has allowed us to successfully launch into South Africa, India with Australia coming soon. Kubernetes is used for scheduling and running containers with the ability to auto-scale when necessary. Developers deploy their own resources without SRE support allowing us to have a Dev:Ops ratio of over 10:1 and is the foundation for our NoOps culture.
Our Data and Analytics systems are critical to every business decision since our launch. Our Global Analytics Platform uses Segment as an ingestion point to push data into Amplitude for real-time monitoring and Blueshift for our CRM platform. It also populates our data lake in Amazon S3 and data warehouse in Amazon Redshift which powers Domo for our daily dashboards. Using a consistent method of collecting data across back-end systems, websites, and mobile apps simplify extracting data to make key decisions.
Like what you’ve just read? If you want to be a part of our journey, check out our Technology Careers site. Get in touch to find out more about life at ClearScore; what it’s like to work with awesome people and awesome technology, and ultimately help people around the world make a better financial life for themselves.