Today, many people with diabetes are choosing to manage their condition using devices called continuous glucose monitors (CGMs). Not only do they replace the need for most finger prick testing, but they also provide a stream of data round the clock. However, like all data, it’s only as useful as the tools that analyze it.
That’s where Sugarmate comes in. Created by serial entrepreneur Josh Juster to help manage his own condition, Sugarmate combines a Heroku back-end with web, mobile, and smartspeaker apps to provide life-changing alerts and analysis for people living with diabetes.
Alexa, what’s my blood sugar level?
For 26 years, Josh has himself been living with type 1 diabetes, and managing the condition has become an essential part of his daily routine. For much of that time, that meant checking his glucose level several times a day using blood from a finger prick. But then, a few years ago, Josh switched to using a device called a continuous glucose monitor. Attached to his body, the monitor automatically took a reading every five minutes and sent it to his smartphone. This was a big improvement, but another device led Josh to see even greater potential.
Around the same time that he started using the glucose monitor, Josh had also bought an Apple Watch and he realized that the watch’s face would be the most convenient way to check his blood sugar. However, there was a problem. Apple enforces a hard limit on how often each app can update the watch’s face. Josh wanted to glance at his watch and see the most recent reading, but Apple’s APIs would only let him update the watch face about two to three times an hour. That would have made the Apple Watch useless, as a reading that is 20 minutes old is already out of date and information is needed immediately.
Rather than give up, Josh found a clever solution. He realized that Apple put no limits on how often its own Calendar app could update the watch face. So, he built an app that pushed his glucose monitor’s readings into a calendar that was then viewable on his Apple Watch.
What started out as a convenient app for his own use soon won users over within the broader diabetes community and Sugarmate was born.
Below Normal Call
However, with all that data available, there’s more to Sugarmate than conveniently displaying the user’s blood sugar level. In particular, Sugarmate brings a whole new level of patient safety to blood glucose management with two alerting features. One, known as “Below Normal Call,” triggers a phone call to the user’s chosen number whenever their blood sugar reading drops below its normal level. This is revolutionary. With Sugarmate, the user can go to sleep knowing that if their blood sugar level becomes dangerous, then they’ll be woken by a phone call.
Another alerting feature is a favorite of parents who use Sugarmate to monitor their children’s blood glucose levels. When the user’s blood sugar level becomes dangerous, Sugarmate sends a text message to an emergency contact, along with GPS coordinates of where the person is at that moment. That means that a trusted person can come and help the Sugarmate user when they need it. What started out as a way for Josh to monitor his own condition has now seen uptake around the world.
Billions of readings
To date, Sugarmate has recorded billions of readings from users. For the lean team that handles the back-end ops, it has been an interesting challenge to not only manage that volume of data, but also to build a back-end to analyze it and send potentially life-saving alerts on time.
So, what does the Sugarmate back-end look like?
Small team, big operation
The journey begins when Sugarmate’s Ruby on Rails back-end polls for new glucose readings. Today, those readings go straight into a Heroku Postgres database. Like many people dealing with high volumes of inbound data, Josh considered other options, such as third-party NoSQL services. However, he found that keeping everything on Heroku made it easier to scale and saved him money.
Scaling to meet demand
As a lean team, the Sugarmate crew relies on Heroku and third-party add-ons to automate their operations. The power needed to process readings is relatively predictable, meaning that the team can manage their dynos manually as new users join. However, some scenarios require dedicated processing resources. For example, when a user requests a report in the app, Sugarmate’s back-end uses a third-party tool called HireFire to automatically deploy a new dyno specifically to process that report. Once the report is delivered, the dyno shuts back down.
Scaling from one user to thousands
Building Sugarmate on Heroku has allowed Josh to turn a personal project into something that improves the lives of thousands of people living with diabetes. According to Josh, he couldn’t have done it without Heroku. “Starting out as the only person managing the entire back-end was challenging, but fun. The great thing, though, is that running on Heroku has made it totally doable for a small team. Right now, we have more than 30 Heroku Dynos running — all without needing a dedicated ops team.”
In particular, Heroku has given Josh the space to grow Sugarmate and discover what works, without the financial pressure of needing to invest in an ops team. Next, Josh will explore ways to monetize Sugarmate, while continuing to provide a service to the broader diabetes community.
For me as a member of the Heroku team, Sugarmate is an important reminder of how our work impacts others. Sometimes it can be easy to get caught up in the excitement or frustration of working with this new framework or that new technology. But software is about making a difference in people’s lives. I love that Heroku helps software developers, like Josh, by solving a whole bunch of problems that enable him to get on with building something valuable to individuals. And, while Josh deserves the credit, I take some small amount of pride in knowing that Heroku helped him get there.
Read the Sugarmate case study to learn more about how Josh built Sugarmate on Heroku.