MyCarrier

Logo MyCarrier

Transportation management portal for truckload shipments

  • ASP.NET
  • .NET Framework
  • Angular
  • SQL Azure
  • Azure Cloud
  • MongoDB Atlas

Company – Integrated Transportation Management
Country – USA
Category – Logistics and transportation
Release year – 2017 – ongoing

Notebook and phone

Project background

From the outset, the client wanted to validate his idea by deploying an MVP of a transportation management portal for less-than-truck shipments.

Following a three-month-long search for off-site agencies, MyCarrier chose IT Craft as its provider from three Ukrainian finalists. IT Craft excelled on many levels, including technical management, trust, and transparency.

One of the challenges the IT Craft team faced was to ensure rapid deployment with an efficient and flexible team onboard. In addition, stringent standards were set to fully capture the look and feel of the future transportation management system.

It soon became clear the market needed our client’s product. Multiple partnering carriers registered in the system, widening the user base. The system load grew and requirements became stricter. Further expansion also included management of truckload shipments.

Laptop

The team kept pace providing high-quality service to the ever-creasing number of users. The team focused on scaling and architecture transformation.

Initially, the development effort focused on building a customer-side system for the shipper. After 6 months of work, the MVP went live. Three months later, they completed the carrier portal. It took IT Craft nine months from start to finish to deliver a fantastically successful project.

Key features include onboarding in +/- 10 seconds and options for customers to run rate quotes, book shipments, and track deliveries.

MyCarrier’s uniqueness lies in making customers’ lives easier: it offers direct integration and interaction with the carrier.

Laptop

Features

Desktop
  • Quote

    Find the best prices and service levels for shipment rates to match customer needs.

  • Coordinate

    Plan logistical activities, adjust deadlines, determine pick-up schedule, manage deliveries, and exceptions.

  • Track

    Review all shipment information in one place, share data with customers, and update information using MyCarrier’s API.

Project transformation to microservices and further improvements

During the post-production stage, the team adjusted the software to their client’s long-term growth plans.
The team focused on building an application that supported:

  • easy scaling

  • simplified updates and maintenance

  • no downtime

  • high performance

All while coping with a constantly growing user load.

At a certain point, the team concluded the project needed major changes to keep up with the challenges.

Although the team could have continued working with the existing monolithic codebase, it opted for project transformation.
The monolithic codebase had become expensive, heavy, and resource-consuming. Also, technical limitations surfaced.

The team decided on microservices architecture and a relevant infrastructure design to ensure correct system operation in the cloud.

The entire transition towards services-oriented architecture included three major stages divided into several sub steps.

The team designed a migration plan covering

  • Pre-migration

    The IT Craft team conducted a system audit and designed a migration plan with 20-28 items on the list. The team aimed at reusing source code from the monolithic codebase. The entire system was divided into eight subdomains that depended on different responsibility areas.

    Also, the team started to accumulate a library of system components, e.g., database connection providers, report generation components, jobs, etc.

    Laptop
  • Migration

    The team transferred the entire software—part by part—ensuring users accessed the same functionality without noticing any difference. It was not possible to immediately transfer critical resources (e.g., scheduled jobs) to the cloud. The team began by moving to a service-oriented architecture.

    • Jobs migration

      At the first step, the team began migrating non-critical stand-alone jobs by transferring them to the cloud. They could run independently from the entire application using Azure Functions for serverless solutions.

      Critical system parts were separated into microservices and transferred carefully during the next step.

    • Content migration

      Initially, all user content (files, documentation, tables, etc.) was available from virtual machines where it was stored, processed, and from where it was retrieved. The team integrated Azure Storage Account, a container for user data where user data was stored after migration. Users continued working using virtual machines but those were connected to the cloud.

    • Logging migration

      The logging system worked on a virtual machine with a Mongo server on it. The team moved to Mongo Atlas—a cloud server for relational databases that ensures high viability.

    • Data migration

      The team transferred all user data and related processes to the cloud. Because the bulk of the work had already been completed during the previous steps, this was a problem-free operation.

    Eventually, all software parts landed in Azure Cloud. The entire system was transferred to microservices architecture and became available from the cloud.

    Laptop
  • Post-migration

    Developers continue to release all new app functionality as microservices. They focus on efficiency by automating routine processes on the project.

    The team designed and fine-tuned a CI/CD pipeline. For it, the team established build-and-release pipelines and applied best practices to test automation.

    Infrastructure deployment is controlled and managed via scripts. As a result, the team can release any number of instances with identical configuration at once and deploy app code on them within seconds.

    Regression test automation decreased delivery time of app updates.

    Laptop

Transition to microservices provides the following:

benefits on the project
  • Fault tolerance

    the system is based on three shared clusters switching from one to another in case one becomes unavailable.

  • System stability

    software behavior has become more predictable for developers making it possible to simplify maintenance.

  • High availability

    the team has achieved 99.9% system availability through infrastructure reorganization and continuous monitoring of system health.

  • Scalability

    any number of required, identical software copies can be launched automatically when user activity grows.

  • Decreased release time

    with automated testing and pipeline, time needed for delivering updates has decreased from hours to minutes.

Engineering Challenges and Wins

The IT Craft team built MyCarrier app with an efficient app architecture and met the MVP development deadline.

Among the most significant challenges of that period was adding the project44 API that was simultaneously being developed. The moment project44 was ready to bring its remarkable competitive edge to MyCarrier, the team implemented its API. Because project44 had not yet been released, work continued in parallel on both. Every project44 API update was simultaneously implemented in MyCarrier codebase, ensuring both benefited from project44’s implementation and software development consistency. The IT Craft developers’ decision for tight collaboration with project44 resulted in all planned functionality and the promised deadline.

Project transformation brought more challenges and wins resulting in changes in source code and system infrastructure and also in team structure and processes.

Laptop
  • Automation at scale

    The team automated routine jobs, from update releases through regression testing to infrastructure deployment. This further freed up resources to focus on long-term improvement.

  • Simplified provider connection

    With efficient, tested processes, the team connects new providers to the system within a minimum timeframe. This helps the client maintain high-quality services.

  • Agile workflow

    The use of Scrum methodology made it possible to integrate business and software development teams and to maintain a flexible organization. The development team could react fast to requests from the client’s team which was occupied with studying customer needs and changed Sprint focus every two weeks based on desired priorities

  • Stable team squad

    After the MVP launch, the team grew from 5 to 25 people. The same team members continue working on this project to ensure stability and consistency.

Technologies

.NET 5 icon
.NET
Angular icon
Angular
TypeScript icon
TypeScript
Azure SQL icon
Azure SQL
MongoDB Atlas icon
MongoDB Atlas
Azure Cloud icon
Azure Cloud
Azure App Service icon
Azure App Service
Azure Functions icon
Azure Functions
Azure Storage Account icon
Azure Storage Account
MailGun API icon
MailGun API
Stripe icon
Stripe
Recurly API icon
Recurly API
Google Maps API icon
Google Maps API
project44 API icon
project44 API
Hiqpdf icon
Hiqpdf

Team and duration

  • Team included

    The project started with a 5-person team growing to 25 team members

  • Desktop
  • Average monthly workload

    3,500 – 4,000 hours

IT CRAFT delivers on time and on budget. We’re really happy with their whole team—they’re professional and transparent, giving us access to everyone on the team. They provide feedback and make suggestions, acting more like a colleague than a hired agency.

Chris Scheid, MyCarrier TMS co-founder