As we reviewed dashboard V2 while working on V3, state management showed up as the biggest issue. For example on our live page we show the last know location of all the drivers. This UI state would need to refresh based on multiple actions – selecting a fleet, selecting status tabs, selecting a driver or explicitly hitting the refresh button at the bottom of the map. Because the state could be altered by so many events, it became difficult to handle race conditions and edge cases to provide a consistent view. (more…)
This is one of the first websites I ever designed — http://www.cookfresh.in. It’s now defunct but in its glory days it was a food delivery business. Back then I wasn’t even a good enough designer to mock up pretty web pages, let alone build great products.
I taught myself design after someone showed me how to use Photoshop in Industrial Design school. Photoshop served as a gateway drug to learn graphic design and then UI and eventually UX. Getting over the discomfort of using Photoshop’s complex interface proved to be extremely lucrative.
Software has the ability to make you fall in love with it. It can make your life so easy that you swear by it and try to get all your friends to use it. That’s powerful. The greatest growth hack ever is to build something so good that it grows by word of mouth.
We announced the first Beta version of our dashboard in April 2016 when we had a few developers in private Beta who were generous enough to bet on us when we had no product to offer. We announced the second Beta version in September 2016 when we had a few more developers through our public Beta who were generous in sharing their feedback about their usage. It is now time to announce our third Beta version as more developers across industries and countries start using HyperTrack as part of their daily usage. Here are the salient features. (more…)
One question we frequently get asked is “How real time is your tracking experience?” When we respond saying it’s near real time (~4 second latency) the follow up is “You must be collecting GPS locations very frequently, what’s the impact on battery life?” The fact is we only consume ~5% of battery per hour of tracking. So your fully charged phone can last full day of tracking without breaking a sweat. This blog is a deep dive on how we achieved close to real time tracking with minimal battery usage – two things that are perpetually in tension with each other in the smartphone tracking world. (more…)
In the field of location tracking there needs to be lot of back-and-forth communication between devices and the backend. Device transmits location stream and health information (battery level, network strength, etc.). Backend processes this information, applies business logic on top and sends configuration commands back to devices in order to orchestrate tracking. These configuration commands determine when to start/stop tracking, frequency at which to collect GPS data (time and distance), frequency at which to transmit GPS data and so on.
In a world with patchy mobile networks making all this communication robust is quite a task. It is important to choose the right network protocol and design the communication semantics to get maximum benefit of the protocol’s capabilities. We recently switched a large part of our device-backend communication from HTTP to MQTT. This blog is about how we achieved it and our learning from it so far.
In a previous post, we talked about our end customer tracking experience. HyperTrack’s Android and iOS Consumer SDKs enable developers to implement a smooth real-time location tracking experience in their consumer apps. Until now the SDKs were designed to view only one task at a time on the map. And then developers at echo plans requested a feature to view multiple tasks simultaneously on the same map view. echo plans is an app for groups of friends to plan meetups. Check out their blog post to learn more about echo plans and how they implemented location tracking with HyperTrack.
We redesigned the Consumer SDK to enable the feature for echo plans. In this post, we elaborate on the design pattern we followed. UI elements on the Consumer SDK – map markers, info layouts – can be customized to fit into the theme of the host app. Our goal was to make the new code design extensible and comprehensible, and thus make the Consumer SDK integration easy for the developers.