Project name
Migrating SMS Gateway service to the AWS Cloud
Client had
A messaging gateway service that was running on a local data center and was no longer efficient.
Client needed
The client needed to adopt the existing on-premise infrastructure to the cloud environment in order to provide a highly available, scalable and resilient system.
We did
Using Kubernetes, Helm, and Terraform on AWS, SoftwareMill developers were able to quickly test and validate different migration strategies with the aim of minimizing service disruptions down to minutes, not hours or days. The development team has successfully migrated the on-premise system to the AWS cloud and also improved availability, resilience, and scalability of the system. The complexity of the deployment process and the level of software maintenance effort were also reduced.
Outcome
The Intelli Messaging system has increased overall traffic handling capacity and made improvements to critical components and processes along the way. The complete migration from the on-premises data center to AWS cloud solutions took about a year to finish. Read more about the project in this case study: “Migrating SMS Gateway service to the AWS Cloud”.
See liveClient
Intelli Messaging
industry
- Telco
category
- Backend solution
- Cloud
technologies
- AWS Cloud
- Kubernetes
- Helm
- Terraform
- MongoDB
- MySQL
- Prometheus
- Scala
- Java
- Akka
- Grafana
- Graylog
- Docker
- Jenkins
Project name
A reactive platform for real-time asset trading
Client had
An established, well-known trading system based on Scala and Akka. The system was close to its limits of traffic handling.
Client needed
A new reactive platform, written from scratch with scalability and resilience as primary goals. The new platform needed to be able to take over traffic from the current one with minimum downtime.
We did
Our team designed and implemented a set of services that communicate asynchronously thanks to extended use of Event Sourcing approach. This allows flexible recovery, auditing, and service integration. With Akka Cluster, Akka Persistence, Cassandra and Kafka we provide scalability on many levels. We also prepared advanced performance tests to ensure that the solution can handle large growth of transaction volume with time. Additionally, we built a rich monitoring setup around the new system, using Prometheus, Grafana, and Graylog.
Outcome
A performant reactive system allowing fast trading, and processing growing traffic with very high resilience in case of failures. Read more about the project in this case study.
industry
- FinTech
category
- Blockchain
technologies
- Scala
- Akka Cluster
- Akka Persistence
- Cassandra
- Apache Kafka
Project name
Flexys
Client had
Flexys is an enterprise collections software that helps companies with debt resolution. It consists of a range of modules that enable creditors to engage with their customers on their preferred channel at the right time, using targeted language. On the technical side, Flexys had an MVP of the product that proved the business model is successful. Client needed an experienced team extension that would help not only with the product kick-off but also the team setup.
Client needed
Our main task was to help Flexys with the technical side of the project while they built the team from the ground-up. We functioned as part of Flexys team and provided them with deep expertise in some of the technologies they use, primarily Scala programming. At the beginning, our main task was reviewing the code base and identifying opportunities for improvements. We started implementing quick fixes and came up with a plan for making major architecture improvements. Our next goal was transferring good practices to the team. We introduced in-house team to the remote work best practices, shared the code review culture and encouraged the start of a technical reading club.
We did
We work in a TEM (Team Extension Model) in which we augment the in-house IT team with developers that support the team with the expertise in a variety of areas including designing project architecture, developing high-quality code and mentoring. This is an ongoing development effort to build new features and functionalities for the market. We helped to develop project architecture including Akka (http, persistence), Cassandra, PostgreSQL and Angular. We also shared our best practices within backend (Scala) and front-end (Angular) technologies.
Outcome
We contributed both to the product’s code and team setup by sharing our best practices. The joint effort of the whole team resulted in the successful migration setup. We managed to launch the back-office part of the app, as well as brought the customer-facing part of the app to the next level. Thanks to our support Flexys has been able to deliver to their first client.
Read the case study Debt Resolution System - from an MVP to a first client delivery
See liveClient
Flexys
industry
- Fintech
category
- backend solution
- frontend solution
technologies
- Scala
- Akka
- Cassandra
- Postres
- Slick
- Kafka
- Docker
- Kubernetes
- Angular 6
Project name
Kafka Consulting
What was done
Our consultants, certified with Confluent Certified Developer for Apache Kafka, helped clients with:
- integrating Kafka in an enterprise environment, communicating with PostgreSQL, Oracle, ActiveMQ, RabbitMQ and other technologies, through Kafka Connect and custom Kafka applications.
- setup and maintenance of Kafka clusters using Kubernetes, choosing an appropriate partitioning strategy and sizing.
- leveraging Kafka in a reactive message processing pipeline, gracefully handling traffic bursts and distributing load through websockets to connected clients.
We are a consulting partner of Confluent. Our skills have been proven by numerous commercial projects, see Clutch for testimonials.
industry
- Enterprise
category
- Consulting
technologies
- Kafka
Project name
High-performance SMS broker
Client had
Previous-generation system which couldn't cope with increasing message loads.
Client needed
There were three main focus areas. First, reliable delivery of hundreds of messages per second. Second, an integrated billing module with a web front-end. Finally, covering new use-cases of the system, for example new interfaces, integrating with other providers.
We did
Implemented a high-performance, reliable SMS message queue, with nightly stress/performance tests. We also developed a web application that allowed for checking of billing status. Also, on top of the system, we created an SMS-iMessage-like solution.
Outcome
Fail-safe and efficient system with high bandwidth.
Read the case study Building Heavy Load Messaging System
See liveClient
IntelliSMS
industry
- Business
- Telco
category
- Backend solution
- Web app
technologies
- Scala
- Akka
- Groovy
- AngularJS
- Java
- Drools
- MongdoDB
Project name
Online wallet for cryptocurrencies
Client had
A custom new cryptocurrency.
Client needed
Online wallet for the custom currency and for Bitcoin, with transactions history and recovery tool in case the online wallet was broken.
We did
We built backend system for wallet for both currencies, and analyser of blockchain, for discovery of transactions transferring money to users addresses from outside. Wallet addresses are multisig, where 2 keys out of 3 are enough to sign transaction. User has 2 private keys, our customer keeps 1, so user alone can transfer money from their addresses, but our customer needs user’s cooperation to do so.
Outcome
Finished and tested product was delivered to customer. The customer has individual users accounts on it, as well as cryptocurrency exchange. Users are able to transfer their money, generate addresses, and see all their transactions history.
category
- backend solution
- blockchain
- Fintech
technologies
- Scala
- Java
Project name
Tipser
Client had
Legacy system with zero test coverage, tightly coupled with Microsoft infrastructure and difficult to scale/maintain. Web interface was full of bugs and not mobile friendly.
Client needed
High quality, scalable code and architecture that will be easy to extend and maintain. Also test coverage and infrastructure automation were two of the most important goals.
We did
New responsive web front-end, developed in a "mobile-first" spirit. Highly scalable API bridge that provides consistent and uniform REST API and makes further migration to Scala micro services fully transparent. We built a mobile-aware, WYSIWYG CMS and made static content management straightforward. We made deployment & infrastructure management declarative and fully automated.
Outcome
No vendor lock-in and help with spinning up client's own dev team. Due to high automated tests coverage (> 80%) and zero-downtime Continuous Delivery clutched with advantages of applying git-flow patterns, deployments are just a matter of formality. Project gained more confidence
See liveClient
Tipser
industry
- Ecommerce
category
- Backend solution
- Mobile app
technologies
- Scala
- Akka
- Docker
- Ansible
- AWS
- Elasticsearch
- Klarna
Project name
Energy meets Big Data
Client had
Old, ineffective system which took hours to process daily data batches.
Client needed
Our customer builds systems used by energy providers to build long-term client relationships, increase efficiency in energy use and manage energy demand.
We did
We helped to build a big data system, capable of processing huge amounts of data daily and later analysing them using both statistical and machine learning methods.
For more details read project's case study
Outcome
A platform capable of processing and analysing billions of data records in a timely manner.
industry
- Energy
category
- bcakend solution
- Machine Learning
technologies
- Scala
- Akka
- Cassandra
- Spark
- Asible
Client had
LPP S.A. collects online customers’ data (mainly: orders stored in databases and customers’ online behaviour) from various sources. The company approached SoftwareMill to help them streamline data pipelines to be able to capture crucial metrics and derive business value in real-time.
Client needed
Processing data, arriving at high velocity, required battle-proven tools for stream processing and the preparation of data for a recommendation engine. Due to the nature of the online retail business client needed a system featuring self-healing, as well as load balancing. Plus monitoring of the infrastructure health and performance.
We did
Seven streaming applications have been delivered as well as devops scripts setting up Kubernetes and all necessary tools. As a result, our customer was able to attach custom dashboards to display the sales volume as well as feed their recommendation engine in a cost effective way without latency.
Outcome
A transformation of the existing batch-based process into a data streaming platform built up on mature and popular open source tools. The reports are fed in real-time via stream processing applications build up on Kafka Streams and Apache Beam allowing LPP S.A. to interact with online customers in real-time.
Read the case study Real-Time Insights into customers online behaviour.
See liveClient
LPP S.A.
industry
- Retail
- eCommerce
category
- Backend solution
technologies
- Apache Kafka
- Kafka Connect
- Kafka Streams
- Apache Beam
- Google Cloud Platform
- DataFlow
- BigQuery
- CloudSQL
- Snowplow
- Kubernetes
- Strimzi
Project name
Cassandra Consulting
What was done
Our certified Cassandra Architects helped clients with:
- event-sourced trading engine (as an Event Store),
- user and content rights management system for set-top boxes,
- storage and processing billions of energy-related readings.
We are a consulting partner of Datastax. We've gained hands-on experience architecting systems with Cassandra, one of the most widely used scalable, fault-tolerant database, by deploying it in clusters and writing applications querying Cassandra in a number of projects.
category
- Consulting
technologies
- Cassandra
Project name
Real Estate Investment System
Client had
Highly coupled, microservice-based MVP with technical debt (classic 3 layer architecture) that was hard to maintain and problematic when adding new features required by customers or business department.
Client needed
To get rid of the technical debt, prepare the system for easy and rapid implementation of new functionalities.
We did
Refactored large parts of the system to DDD-like architecture which decoupled the components and made implementing new features easy.
Outcome
Easily extendable, well tested and lowly coupled components.
industry
- Real Estate
category
- refactoring
- testing
- backend solution
- frontend solution
- microservices
technologies
- Java 8
- Spring Boot
- JPA
- PostgreSQL
- LiquiBase
- Vavr
- Docker
- AWS
- Angular
- AngularJS
- Protractor
Project name
SwissBorg Community App
Client had
SwissBorg is a team of fintech experts and engineers that are creating a holistic crypto wealth management ecosystem accessible to everyone. As a pre-launch of their show-case feature, the Wealth App, SwissBorg has built the Community App, a mobile app game that allows you to predict, learn and earn Bitcoin.
Client needed
We joined our client’s team and together developed the mobile game. On the technical side, we were responsible for building the back-end of the app, mainly in Scala and Akka.
We did
The part of the app that we developed consists of the following elements:
- Forecast module which evaluates bids versus the exchange rates every 24 hours;
- Calculation module that counts each player’s score.
Additionally, we created an advanced notifications module that sends emails, SMS and push- notifications to users notifying them about the result of their latest bids. Apart from programming, we also engaged in Kubernetes implementation in the project. We joined the client’s team on-site to share our knowledge, experience and make the implementation smooth. Finally, we were responsible for creating platform tests based on behave tool.
Outcome
The project was delivered on time and without any major outage on production. Our contribution to the project resulted in high customer satisfaction.
The app has reached more than 14 000 (as of May 2019). It’s a fun, easy to use app that lets you predict the price of Bitcoin and earn at zero cost. It’s available on iOS & Android.
Read the case study Mobile App that Lets you Predict, Learn and Earn Bitcoin.
See liveClient
SwissBorg
industry
- Finance
category
- Blockchain
- Crypto
technologies
- Scala
- Akka Streams
- PostgreSQL
- Docker
- Kubernetes
Project name
Reco.se review platform
Client had
Reco.se is a Swedish tech company behind the largest independent review site in Sweden where customers describe their previous experiences with a variety of companies. The platform comprises two websites listing different kinds of businesses - reco.se is for local businesses and recotrust.com is for e-commerce vendors and sites.
Client needed
We’ve joined our clients team to quickly scale their efforts and together we have been developing the platform on an ongoing basis. The scope of our work includes new features development, but also DevOps tasks and bug fixing. On the technical side, we are responsible for building multiple microservices to add new functionalities along the way, mainly for integrations with external systems as well as for internal data analysis to support business decisions.
We did
We contributed to a number of infrastructure projects; one of which was moving from self-hosting to GCP cloud. We were also responsible for a major refactoring that included, for example, mailparsing project and search API project with Elastic Search integration.
Outcome
The platform is currently the largest independent review site in Sweden. Since March 2019, users who want to leave a review need to get verified with their bank ID, which contributes to the website transparency and credibility. Launching recotrust.com enabled the company to dive into e-commerce.
Read the case study Review Platform - Project Acceleration and New Features Development
See liveClient
Reco.se
industry
- Review platform
category
- Backend
- Frontend
- DevOps
technologies
- Scala
- Akka
- Play
- Postgres
- Elasticsearch
- RabbitMQ
- Kubernetes
- Sangria
- React
- Redux
Project name
Insurance recommendation service
Client had
Knip provides a mobile application for hassle-free insurance overview and management.
Client needed
Analytical application for data warehouse.
We did
Developed the integration module between the data warehouse and the mobile app. Created an algorithm to match customer preferences with the best offers available on the market at a given time. Created a recommendation service (REST API and a web frontend).
Outcome
A big data system, capable of processing huge amounts of data daily and later analyzing them using both statistical and machine learning methods. Ready to use mobile application. No upgrades/new features required.
Client
Knip
industry
- Insurance
category
- backend solution
- mobile app
technologies
- Scala
- Play
- Slick
- AngularJS
- H2
Project name
Reporting and analytics platform
Client had
IP Integrated works with banks, airlines, and messaging companies providing accurate SMS reporting tools. There was existing legacy system, which didn't scale with increased demand.
Client needed
Our main task was to implement efficient daily imports of SMS delivery reports. Secondly, our client neded an analytical platform, used later in the billing module. Finally, a modern web front-end was needed.
We did
We developed an effective application that allowed for checking of billing status. We've also built a reporting platform for bulk SMS delivery, live status tracking for customers with analytics, data export and billing. The above was accompanied with a fast and responsive UI.
Outcome
An efficient billing platform delivered to our Client.
See liveClient
IP Integrated
industry
- Telco
category
- backend solution
- mobile app
technologies
- Scala
- Akka
- MongoDB
- AngularJS
- Rickshaw
- Spark
- Ansible
Project name
Customer service cost reduction
Client had
Ineffective and unreliable system without automation and integration with various providers.
Client needed
Increase the automation of the loan repayment process.
We did
Implemented automatic and maintenance-free loan repayment system for customers and company employees.
Created independent module, easy to modify and develop without affecting core business activity.Outcome
Option to pay loan installments automatically by credit card.
Automatic reminders, hints for account numbers and confirmations for customers.
5x reduction in service time.
industry
- Fintech
- Banking
category
- Backend solution
technologies
- Java
- Spring
- Hibernate
Project name
Internal collateral management system
Client had
A Collateral Management System not fulfilling upcoming legislation changes.
Client needed
A system in line with new legal regulations.
We did
Redeveloped and adapted system functions to current needs and requirements of the bank.
Delivered complex workflow-based system.Outcome
Complex collateral management project that helps our client to consolidate their systems in one place.
industry
- Banking
category
- backend solution
technologies
- Scala
- Java
- JBoss
Project name
End-to-End workflow management
Client had
Started the project with some dev teams.
Client needed
New dev team to work on the core back-end features.
We did
We helped to build a workflow engine that ensures flexibility and compliance. We implemented new features, code and testing patterns using best practices.
Outcome
Pilot release in progress, updating system as needed. Vocado reduced costs (no paperwork, no manual calculations) for schools in the US.
See liveClient
Vocado
industry
- Business
- Education
category
- backend solution
technologies
- Java 8
- Spring
- MySQL
- Cucumber
- LiquiBase
- MongoDB
Project name
Rule-based monitoring and alarm system
Client had
A security startup idea, for a self-managed home security system.
Client needed
Implementation of the Attikis' new business and technology model to the growing home monitoring market.
We did
We've built a VoIP module that connects to the alarm devices and sends alerts (phone, SMS, email) depending on the user-defined rules.
Outcome
MVP (Project is temporarily closed).
Client
Attikis
industry
- Security
category
- backend solution
- web app
technologies
- Mobicents
- Drools
- AWS
Project name
Big Data Back-end for Mobile App
Client had
An existing application in Ruby, which had severe performance and scalability problems.
Client needed
A scalable API service with rapid development of new features.
We did
Migrated the backend to Scala, provide continuous development of new API endpoints used by iOS and Facebook applications.
Implemented a recommender system which blends a number of preference inputs.
Check out case study on our blogOutcome
Yap.tv went global (lots of data) with their social TV mobile application (Facebook and Twitter integration).
See liveClient
Yap.tv
industry
- Media
category
- backend solution
technologies
- Scala
- Mahout
- AWS
- JavaScript
Project name
Large Scale Social App
Client had
Emotiful aggregates data from Facebook, Twitter and Instagram, providing an app for browsing and tagging images.
Client needed
To scale his contemporary system, migrate the infrastructure to AWS and deliver new features without downtime.
We did
We implemented social network integration, mobile Push notifications and scaled the system to handle growing user base.
Outcome
A feature-complete system with automated infrastructure and modular codebase, exposed as elegant and secure API for mobile applications.
Client
Emotiful
industry
- Entertainment
- Media
category
- backend solution
- mobile app
technologies
- Scala
- Akka
- Android
- iOS
- MongoDB
- AWS
- Chef
Project name
REST API for Cloud Management
Client had
Zerigo provides feature-rich VMware View Hosted VDI and VMware-based Cloud Servers.
Client needed
To improve reliability and quality of the existing software.
We did
We've improved and extended a broker which unifies multiple VMware products' APIs into a single REST API with complex asynchronous execution support and informative error handling.
Outcome
A well-tested backend component with a clean API, built with extensibility and easy troubleshooting in mind.
Client
Zerigo
industry
- Business
category
- backend solution
technologies
- Java 8
- Groovy
- Spring Boot
- Redis
- WebSockets
Project name
DNS Panel and internals
Client had
Zerigo provides a cloud panel for DNS, an essential part of the Internet.
Client needed
Improvements in the existing DNS system.
We did
We've maintained Zerigo DNS as a whole - from the web application to server internals.
Outcome
Improved the overall reliability of the application and turned legacy code into a clean code.
Client
Zerigo
industry
- Communication
category
- backend solution
- mobile app
technologies
- Ruby
- Ruby on Rails
- Sinatra
- PowerDNS
- PostgreSQL
- Redis
- Chef
Project name
ML and AI algorithms for e-commerce platform
What was done
SoftwareMill helped develop a web app that detects a person's skin type and color for an e-commerce solutions company. The team worked on AI and ML algorithms, as well as Shopify and Google Cloud integrations. Find out more on Clutch.
See liveindustry
- e-commerce
technologies
- Machine Learning
- AI