2020: Our Year in Review
2020 was a unique, challenging, and memorable year. As individuals and as a company, KeepTruckin adapted and evolved in new ways. As we look forward to our exciting 2021 Engineering Roadmap, we also want to take a moment to review the last year and celebrate our achievements. In this blog, we present a collection of 2020 highlights from the KeepTruckin Engineering Team.
Platform
Although the transition to remote work was challenging, we onboarded 30% of our engineering workforce remotely, and created processes and development tools to make collaboration more efficient. As a result, we added more than 200 features this year. Scaling to thousands of new drivers and new fleets while modernizing our technology was a difficult but highly satisfying process.
Some highlights: KeepTruckin leveraged the Nix/NixOS system to create an environment that was reproducible across developers, CI, and production. We also invested in Bazel as our main build manager to build and test our services, as well as to deploy them to Kubernetes through ArgoCD. We effectively eliminated problems related to differences of system packages that are common in development environments which were not built with reproducibility in mind.
In our quest to make our developers and ML engineers more productive, we invested in KubeFlow to streamline our model training workflow and speed up experimentation. We deployed Atlantis to empower our developers to manage their own infrastructure. We also rolled out Kafka as a scalable data substrate for all of our services.
Kubernetes
To unify and modernize our infrastructure stack, we successfully transitioned to containers using Kubernetes. Although the learning curve can be steep initially, the development speed benefits easily overcome these costs.
Two key elements of the success of this project were training and documentation. Paying particular attention to these elements accelerated adoption across the engineering team.
Now that the whole pipeline is in place, our engineering teams have complete independence from the Infrastructure team, improving the innovation-to-execution pipeline. This project provided the tools that allow our engineering teams to experiment, innovate, and deploy new services with very little help from the Infrastructure team.
Containerized Machine Learning
One project that helped us keep our costs down while increasing our velocity was the Containerized Machine Learning project. This project aimed to move us away from AWS ML services such as SageMaker and Rekognition to our own hosted Kubernetes-based ML infrastructure, because the previous solution was very expensive and not as performant.
One of the project’s challenges was the lack of documentation, particularly around containers on GPU-enabled instances. It’s a somewhat new approach to machine learning that requires quite a bit of research and testing to fit our needs.
In the end, we deployed a platform that now powers most of KeepTruckin’s machine learning efforts, such as support for our Smart Dashcam product, with better performance and costs cut to 1/10 of the previous solution.
Fleet View
We started working on the Fleet View project at the beginning of 2020. Fleet View provides customers with real-time information from vehicles, assets, and drivers, all on one map — enabling quick decision making for a rapidly-changing business. Fleet View is the central dashboard for Fleet Operators, Compliance Managers, Safety Managers, and Dispatchers and gives our customers command-center visibility into their fleet operations.
Project and Product Goals
In Fleet View, we set out to provide a consolidated, comprehensive view of an entire fleet on a single map. We knew that surfacing valuable information in a single view would expedite the day-to-day responsibilities of running a fleet. We also wanted to give our customers a modern user experience.
Fleet View was a big project with many moving parts. We completely redesigned the user interface and experience. We built a new real-time data pipeline to process the incoming breadcrumb data from the edge devices, and to syndicate the updates to web browsers and mobile app UIs. Software development involved full stack development and testing across firmware, platform, streaming, datastore, caching, backend, websocket, web UI, and mobile client tiers.
Results and Learnings
Fleet View was rolled out to the entire customer base over three months and has been very well received. The metrics of the past 30 days reflect the impressive scale at KeepTruckin: 1.9B miles tracked, 4.9B breadcrumbs processed, 3.6B location geocoded, and 450M updates sent. Fleet View is the new homepage for all back-office users, where they start each day or the task at hand. Fleet View is the foundation on which we are building many new products and new functionality at KeepTruckin. Fleet View has been designed to be the central part of KeepTruckin’ss product offerings at least for the next 2–3 years.
Fleet View was successful because of the thoughtful upfront planning, early gathering of feedback, and quick adaptation. Despite a few surprises, the team was able to deliver this incredibly impactful project.
Asset Gateway (AG) Breadcrumb Pipeline
Keeptruckin’s Asset Gateway provides fleet managers full visibility into the location of assets, enabling quick decision making based on the real-time location and status of trailers and equipment.
In 2020 we completely re-architected the Asset Gateway data processing pipeline. We wanted to build a new cloud-native infrastructure to process breadcrumb data coming from Asset Gateway in real time, and trigger relevant business logic and notifications. We also designed pluggable architecture to accommodate additional business logic in the future. We built the new system for reliability, availability, maintainability, and serviceability, with message-oriented middleware and retries with backoff capabilities.
The Asset Gateway team’s execution on the project was exemplary: it worked across multiple tiers, and required learning new technologies and frameworks during the implementation phase. The project successfully rolled out on time without incident. The team followed the successful rollout with infrastructure and code cleanup.
Our metrics for the past 30 days have been: 28M miles tracked, 21M breadcrumbs processed and location geocoded, and 54K updates sent. The new pipeline is designed to scale to at least 10X the current traffic, which will enable us to onboard new Asset Gateway units and additional functionality. Since the rollout, the project has enabled real-time notifications and historic reports for Asset Gateway events, and we plan to build new Asset Gateway functionality on top of the new data pipeline.
Asset Gateway Utilization Feature
In 2020, a major customer request was for the ability to track location and utilization of remote assets. Whether in the oil fields of Texas or in the remote tundra of Northern Canada, our customers want to understand where their assets are and how they are being used. With this goal in mind, the embedded team set out to provide this critical insight through the AG-55 asset tracking platform.
This project involved combining the suite of onboard sensors of our AG-55 platform with backend intelligence. In addition to asset location, the AG-55 team leveraged the onboard voltage and cable detection technologies to develop a robust ignition detection algorithm. This event was the cornerstone for new intelligence to detect engine start and stop conditions, as well as to increase sampling rate during times of asset usage.
The end result for the customer was clear. Fleet managers had the ability to track position and utilization of remote assets with new precision. Using new utilization reports in the KT backend, fleet managers had the ability to track the utilization of all assets across a fleet or group. Finally, this feature provided the long-term insight to fleets to better understand which assets were reaching their upcoming maintenance cycles.
Freight Visibility Platform
Our Freight Visibility Platform gives brokers, shippers, and other customers real-time visibility into the status of their loads. Keeping our customers’ privacy in mind, one of the core goals of the project was to empower carriers to have full control of their data, and who they share it with. Carriers have full visibility and control of who has permission to access their data, and how often.
From the broker’s perspective, the challenge was to create an easy-to-consume API that could scale well. Another requirement was to instrument the API to collect precise usage information that serves business use cases such as billing — without incurring any performance penalty.
The project involved extensive collaboration, not only across multiple teams at KT, but also with external stakeholders, such as our visibility partners and customers. In the process, we learned about a pressing problem the brokers faced: they needed a mechanism to verify the accuracy of the tracking identifier they received against a load over error-prone communication channels. We built an API specifically to address this problem.
The project was especially rewarding for the engineering team, because some of its underlying problems couldn’t be solved using our existing building blocks, and we were tasked with finding novel solutions that could be reused across other projects. For example, to safeguard against potential abuse of the system, we developed a generic rate-limiting service to appropriately throttle APIs. The project was a big success, with multiple brokers coming on board the new platform, and multiple carriers consenting to participate in the visibility program.
Hackathons
Our remote hackathons — including one that specifically addressed technical debt — were a great success. The first, with over 140 participants, helped us fix long-standing customer issues. After receiving good feedback, and observing an overall boost in our team’s morale and psychological safety, we hosted a second hackathon, this one fully focused on innovation. With almost 200 participants, we gave teams a space to reconnect and embrace new ideas, which led us to key features within our Tracking 2.0 and Safety 2.0 launches.
In Conclusion…
Thanks for joining us for these highlights of our 2020 journey! It was a busy, eventful, and successful year; we are excited for what’s in store next. A huge thank you to all our contributors and team members for their support and insights.
Enjoying our blog? Follow us to keep up with our latest stories. Check out our Before You Apply page to learn more about our rad engineering team!
You can find the latest KeepTruckin opportunities here.