Home / Case Studies / Re-engineering of the Large Management Platform
case study

Re-engineering of the Large Management Platform

Re-engineering of the Large Management Platform
Question

How can you put a management system on the working rails within a month? That’s a great question!

Even though it sounds like a sci-fi story, our team is eager to solve such challenges. We have a long journey ahead of us.

About the Client

Rater8 is a rating management system that helps physicians and entities build their reputation, grow their reviews, enhance patient satisfaction, and improve their medical practices. The system gathers third-party reviews from across the web and brings them in one centralized location.

Before Rater8 became a trusted review platform, it was a startup with basic functionality. As soon as the product received positive market feedback, the founder decided to implement new features.

However, during the development process, the end-users encountered issues with the system’s performance - and that’s where our story truly began.

Why Did Rater8 Decide to Re-Engineer Their Startup Product?

At first sight, it seems like startup projects should be nicely thought-out. But sometimes the owners focus on the idea itself and neglect the technical part. The devil is in details — and that was exactly the case with Rater8. 

bug fixing

By delving into the project, our team unveiled a lot of bugs inherited from the legacy code that affected overall system performance.

data processing algorithm

Besides, the algorithm used for data processing generated sub-problems.

Reasons for Software
Re-engineering

So, in order to prepare the ground for future features and avoid technical debt, we advised the client to re-engineer some parts of the system.

Did You Know?

Technical debt is an index revealing the state of the codebase, particularly poor code practices. Legacy systems are especially subject to technical debts for two main reasons.

They consist of outdated code

Code fixes are often made on the go, regardless of its initial structure

Challenges We Faced in This Project

The client wanted to launch Rater8 as soon as possible with the intention to take its place in the online healthcare ratings ecosystem. Considering that competition on the market is huge, every day of downtime was way too expensive.

our team concentrated all our energy on resolving the following issues:

Fixing legacy code in the web scraper

Year by year, the codebase was growing, whereas a thousand lines of code continued to weigh ever more heavily upon the performance. So, the first thing we needed to work on was the refactoring of separate software parts.

Speeding up the dashboard

The dashboard is a key element in terms of the project concept, as it displays the most crucial data. Users faced frequent downtimes in the use of it that, consequently, undermined the business value.

Planning Stage

From the very beginning, we started the cooperation under the dedicated model. This approach allows the client to control the execution and own the development process.

As the amount of data was growing exponentially, after a while, Rater8 found itself getting stuck in the spaghetti code.

In such cases, refactoring is an effective weapon to get on with things. So, the developers identified infected spots in the web scraper, broke down data silos, and refactored it. Here you can find our other case study explaining MS SQL database migration.

Optimizing a Web Scraper to Retrieve Data

The scraper is a specialized application that collects data from several platforms on the web and saves it to the database. We dealt with the MS SQL database.

As the amount of data was growing exponentially, after a while, Rater8 found itself getting stuck in the spaghetti code.

In such cases, refactoring is an effective weapon to get on with things. So, the developers identified infected spots in the web scraper, broke down data silos, and refactored it.

Here you can find our other case study explaining MS SQL database migration.

Step back in history – spaghetti code

This term appeared in the late 1970s, and refers to code written without a coherent structure. Accumulating over the years, it becomes unmaintainable in the long run.

The code was moved to separate independent modules, while the application settings were moved to a separate file in order to configure settings without rebuilding the whole app. Code optimization was an integral part of our day-to-day programming.

Enhancing the system’s algorithm

After testing legacy code, we noticed that the system performance wasn’t satisfactory — it took a lot of time to output the average rating of each medical service provider. The problem was in the Rater8 algorithm to calculate data.

We suggested optimizing the existing one. To this end, developers made the algorithm constant, logarithmic, and linear, following The Big O Notation. Simply put, we reduced time complexity (number of steps) to process requests. It greatly optimized the memory usage and overall performance of Rater8. Besides, it helped avoid data leakage.

Everything should be made as simple as possible, but no simpler.

— Albert Einstein.

Speeding
Up the Dashboard

As we’ve mentioned before, the Rater8 dashboard allows tracking, monitoring, and responding to third-party reviews in one centralized location.

Due to the numerous results flowing from Google, Healthgrades, Vitals, Facebook, etc. into the dashboard, it started to run slowly. Users would open the dashboard and then go do something else while they waited for it to load.

This issue was critical; that’s why we started the optimization right away. In line with ongoing refactoring (including database queries), developers decongested the dashboard, which was overwhelmed with unnecessary items.

By these measures, we managed to deliver a dashboard that now loads in seven seconds and allows the processing of the needed amount of data.

Blog Posts

Re-engineering is a go-to approach to modernize outdated code. How does if differ from other modernization approaches? Read this post!

Learn more

Technologies
and Tools We Use

000
001
010
011
100
101
110
1000
SCOPE OF WORK :
1 Full-stack Developer
1 Back-end Developer
1 Front-end Developer
1 month

Results

The binary file size reduced from 18 MB to 5 MB

We’ve done plenty of work in just one month. The binary file size of all systems was reduced from 18 MB with a zillion files to 5 MB with two files. It means that the end-users finally could seamlessly run the system and broaden their experience.

Memory usage was reduced by 25%

As a result of the tests, we found out that, on average, memory usage was reduced by 25 percent.

request time reduced by about 30%

Now with this solid ground, we can flexibly expand the Rater8 functionality. Our team is well on its way to implementing new features, and we are sure the system will handle the capacity.

Results

Key Takeaways

Modernization is not always a lengthy process that takes ages. It’s a common misconception that prevents companies from taking the first step. In this particular case, it took one month to improve the outdated software system.

When you launch a startup, pay close attention to the tech stack you choose and make it your ally. In the future, it’ll play a key role in powering your business.

High code quality is a cornerstone of any development project. Clear and consistent code allows you to maintain the system more easily and to implement new features.

Client Review

quotes
michail
prev
orange

Our Team
on This Project

Vadym
Vadym
Team Lead .NET Developer

Working side by side

Even though the project wasn't epic from the technical point of view, it made a lot of sense to me.

We became a great team moving towards one aim. You know, when you see the desired outcome of the work you’ve done.

quotes

Case Studies

Actions speak louder than words! Take a look at our legacy app modernization
services in essence.

All Cases

Let’s Start a
Conversation

Share your challenge with us – we want to hear from you!

* Please enter your name
* Please leave a message






    elipse

    We use cookies to ensure that we give you the best experience on our website. By continuing to browse this site you accept the use of cookies.

    Whitepaper.doc
    close
    Get Your FREE Template!

    Please, provide the email address so that we can send the whitepaper to you.

    * Please enter your name





      CHECKLIST.DOC
      close
      Get Your FREE Template!

      Please, provide the email address so that we can send the checklist to you.

      * Please enter your name