Management Software Development
Project Info
- Created By M. R. Tanvir H.
- Client BitTech
- Date 01/6/2014
- Category Software Product
Project Description
I developed a highly configurable, pay-per-use SaaS solution for a UK startup that allows insurance companies to manage claims and policies lifecycles.
Context
BitTech Limited is a quickly growing UK startup that had an idea for a solution that streamlines policy and claim management processes for insurance companies. The company wanted it to be a highly configurable, micro-service-based and pay-per-use SaaS solution with an open API.
BitTech was looking for a software development partner with a good understanding of the insurance industry and proven expertise in custom software development to bring their vision to life. Having met our team, BitTech stakeholders chose us for this project.
Solution
I developed BitTech, a cloud-native SaaS platform that streamlines the management of insurance claims and policies based on the rules defined by business users. The solution consists of several core capabilities for configuration management, customer relationship management, and claim, policy and case management.
The solution also has additional features for file management, SMS and email communication, claims export, reports billing, task and workload management, and more that can be utilized optionally by platform users.
Claim and policy management
As a new insurance claim is filled in, the platform launches a pre-configured claim management process that encompasses notification, fact-finding, communication, supply chain, reinstatement, settlement, and more. Insurance companies can configure each step according to their established processes and even modify the user interface of some features.
Insurance companies can also easily configure their policy products, quote form templates, and user journeys to fit their business model and needs.
Workflow management
We designed the BitTech platform’s workflow engine to be a highly available, fail-tolerant distributed orchestration system that can work under high load and process 400+ new quotes and 20+ purchases per minute. It also allows users to implement custom workflows as sequences of actions triggered by predefined system events and automate business processes of any complexity.
Multitenancy
The platform can support an unlimited number of insurance companies or other companies providing insurance services. Tenants can work with the application without setting up a new infrastructure and get their own database servers, which means tenant data is isolated as per data security requirements.
Technologies
We used Kotlin running on the Java Virtual Machine to build the claim management platform since it enables fast development, ensures good code maintainability and readability, and helps prevent common development errors by design.
We utilized PostgreSQL as a main relational data storage and opted for PostgreSQL JSONB to store dynamic data that cannot be implemented in a relational structure. We also used Amazon DynamoDB for raw structured data storage.
To make the platform fail-safe, we built it using event-driven architecture and implemented REST APIs to provide communication between the solution parts.
We used Consul to enable external configuration, service discovery, and application settings storage.
Third-party integrations
We integrated the claim management platform with the following third-party tools:
- Gmail and Office 365 for email messaging
- Twilio for SMS messaging
- Google Maps for navigation
- Loqate for address verification
- EngageOne for creating personalized communications
- Semafone for phone call data security
- ThoughtSpot for business intelligence and big data analytics
- Okta for single sign-on
We implemented all integrations as separate services to ensure their maintainability and let users choose services they want to use.
AWS-based infrastructure
My team’s chose AWS to host the BitTech platform’s infrastructure since their ready-to-use services fit the project requirements. As a result, the use of AWS allowed the client to reduce development costs and ensure the solution’s scalability and security.
We built the claim management platform’s infrastructure using multiple subsystems hosted on a separate Amazon Virtual Private Cloud. This ensured services’ isolation and security and eliminated the possibility of one subsystem impacting the functioning of others.
The BitTech platform uses the following AWS services:
- Amazon EC2 for provisioning of main servers for launching and deploying apps via ECS
- Amazon ECS for application cluster functioning orchestration
- Amazon RDS for relational database setup, operation, and scaling
- Amazon Route53 as a DNS service for routing end users to the application
- Amazon S3 for file storage
- Amazon ElastiCache for caching long-running search queries
- Amazon Elasticsearch for full-text search enablement
- AWS Lambda for scheduled tasks execution
- AWS Step Functions for the unification of disparate Lambda functions into one pipeline
- Amazon VPC Peering for AWS resource routing between different VPCs
- AWS CloudFormation for tracking and delivering changes related to the project infrastructure
- Amazon Cognito for user authorization
- AWS DynamoDB for NoSQL data storage
- AWS MSK as a main event streaming platform
All sensitive data and configurations in the platform are encrypted. Additionally, each tenant is assigned their own Amazon RDS and S3 bucket so that data, configurations, and files are stored separately to ensure high performance and security.
For server monitoring, we implemented the following tools:
- The ELK stack
- Spring Boot Admin
- Amazon CloudWatch
- Prometheus
- Grafana
- AWS CloudTrail
- Amazon GuardDuty
- Pingdom
- Datadog
Process CI/CD pipeline
To ensure flexible releases, we set up CI/CD pipeline for the project using the TeamCity CI server, two on-demand Amazon EC2 agents, and 14 spot EC2 agents that are launched depending on the CI load and environments delivery schedule. We also used TeamCity for build and test automation.
What is more, we applied AWS CloudFormation and Terraform scripts to streamline infrastructure deployment and updates.
We also employed the following tools to set up a comprehensive CI/CD pipeline:
- SonarQube for source code continuous inspection
- Checkstyle for static code analysis
- Detekt and Ktlint for code smell analysis
- TSLint for checking TypeScript code for readability, maintainability, and functionality errors
- Code analysis tools like detekt extensions, SonarQube extended reporting, and custom application parsing and graph building tools.
Team
My Team was involved in all the stages of the project, including requirements formulation, platform development and testing, and post-development customer support.
The work on the project started with only four specialists on the team, and after four years, more than 40 were specialists involved. At one point, we scaled up the team from 7 to 70 specialists in six months to provide the required delivery speed and quality.
All specialists involved in the project were divided into two large teams — the execution team and the value team. The execution team was responsible for developing, testing, and releasing the platform’s functionality. The value team, in its turn, was responsible for communicating with the client, long-term planning, prioritization, and architecture design. They created requirements that were passed on to the execution team to bring to life.
Release process
Since BitTech adheres to the lean startup methodology, we needed to cut down development cycles and deliver a viable product as soon as possible. We set up a Scrum framework with defined delivery schedules, which allowed us to ensure continuous deployment, iterative product releases, and the ability to timely assess BitTech’s feedback.
For each new release, we took the features developed during several sprints, tested them in several environments, and deployed them to production.
Customer support
After the platform was released, BitTech hired My Team to provide 24/7 L1 and L2 support services. The L1 support team consists of seven specialists who handle issues reported by the customer or platform users. The L2 team has three members including the manager and they handle more serious problems demanding in-depth investigation and troubleshooting.
Our L1 and L2 teams’ reaction time is 15 minutes for urgent issues and 30 minutes for high priority.
Results
I developed a scalable and highly configurable web application for managing the full lifecycle of insurance claims and policies. BitTech got positive feedback after the solution’s release and shortly got many large companies as the platform’s users.
The users give credit to BitTech for offering comprehensive functionality on a pay-per-use basis, which allows them to accommodate the platform to their business growth and development. Many also praise the solution’s performance and flexibility that enables customers to quickly introduce new insurance offerings and enhance customer experience.
In addition, BitTech raised a series A funding for £1 million for further platform development. The team continues working on the solution’s functionality and new features as new requirements arise.