Engineering Fitness

Keep it Simple and SMART (KiSS)

Authors: Jared Fuchs, Melody Spencer, Sukhendu Chakraborty Introduction:  As part of the e-commerce and tools team at Fitbit one of our missions is to enable other teams by providing an extensible framework for surfacing device/application data to whoever needs it. Towards that goal, we have provided a common set of APIs that any team...

Introducing Project Golden Gate

An open-source framework to connect wearables and other IoT devices to mobile phones, tablets and PCs with an IP-based protocol stack over Bluetooth Low Energy TL;DR If you wished your wearable or IoT devices and mobile applications could communicate over Bluetooth Low Energy as seamlessly, securely, and reliably as if they were on an IP...

A machine learning solution for detecting and mitigating flaky tests

If you are a developer you’ve probably experienced flaky tests or flakes and the first thing that comes to your mind is either frustration or annoyance. In this post we are going to discuss how we are dealing with flaky tests here at Fitbit and what our plans are for solving this problem. Before we go into any details, let’s level set...

The Tower of Terror: A Bug Mystery

Here at Fitbit, we are no strangers to shipping hardware products. Making a new product is not an easy task, especially as we approach its ship date. During this time, our employees (both inside and outside of engineering) are a key part of testing the product and getting as many testing hours as possible. We encourage our employees to wear the...

Load testing microservices and identifying scalability issues

Engineering at Fitbit prioritizes quality around the products that we build. We do a number of things to support this–one of them is pre-release load testing. This ensures not only that the services can handle traffic generated by millions of users, but also handle it with acceptable latencies. Fitbit commonly uses two strategies to load test...

Fitbit SDK Tools Open Source

The Fitbit Developer Tools team are committed to open-sourcing the tools we’ve created for the Fitbit SDK. This enables developers to build upon our efforts with their own tooling built specifically to suit their needs, or to collaborate with other developers in the community making development for Fitbit devices even more awesome. The Fitbit...

What is Bitgatt and why do we need it?

At Fitbit we utilize Bluetooth Low Energy, commonly known as BLE, for particularly heavy data transfers which are more complex than the common handful of use-cases for this extremely efficient radio technology.  One of the perks of the job, in my opinion, is to try to deliver amazing experiences between wearables and cloud-connected mobile...

Evaluating Google Cloud Spanner and BigTable

Motivation As one can imagine, the millions of active Fitbit users generate a lot of data. All that data has to be processed and stored so that users can look back on historical step counts, sleep, etc. One such storage service that I focused on as an intern on the Data Storage team, is the Device Communication Log (DCL) service. The messages sent...

Building a Manufacturing Pipeline with Apache Kafka

How does a company go about keeping track of millions of customer devices?          To combat this issue Fitbit’s core back end team – called Device Cornerstone – launched the Factory Upload project. It’s goal? To create a continuous streaming pipeline of manufactured Fitbit data, all the way from the factory to our main...