Latest Posts
Calm’s Search feature is an integral part of our app experience. In 2021, we refreshed our app to accommodate the scale of our ever-expanding content library. With a larger content library, it became more important than ever to provide a world-class Search.
Read More >
As a software engineer, I spend my days dreaming up steps for iOS apps. But writing code that Just Works™ is too low a bar to clear; it is imperative that my colleagues can work with my instructions. Recipes have steps, too, and if a recipe step can be defined as an isolated subset of instructions (e.g., “1. Bring a large pot of water to a boil.”), every cookbook author seems to approach it differently. Some stick to skimmable one-liners. Other authors overload, stuffing each step so full that the home cook must stop, drop their spatula, and read before proceeding. Here be dragons, not necessarily standards.
Read More >
My first project at Calm was migrating Helm2 to Helm3. In this post, I’m going to share a few resources I used as guidance and more detailed steps and minor problems I ran into during the migration process.
Read More >
Calm we have developed pipelines as shared libraries for our CI/CD which has increased developer velocity and reduced DevOps shoulder taps. Jenkins pipelines are not new and they have become a staple for many teams that use Jenkins for their CI/CD needs. Today we are going to discuss how we @calm use predefined pipelines that complete the expected tasks based on input from local config for our continuous integration and deployment needs across different repositories.
Read More >
Many of Calm’s most compelling products and ideas come from organic collaboration. We see success when we collaborate across orgs, across experience levels, and across backgrounds. This commitment to openness is where we started talking about working groups.
Read More >
How exactly do you scale to launch tens of millions of users with a timeline of just a few days? Here is the approach we took to make our systems able to support a massive launch on a short timeline at Calm. We hope you will find it valuable to learn about how we introduced performance testing and used latency data to guide how we chose to optimize our codebase and scale up resources for the launch.
Read More >
Have you ever wondered what it would feel like to change planes while it is in flight? I for sure do not want to be on that flight, but that is exactly what we had to do at Calm!
Read More >
When I joined Calm in early 2017, we were drastically behind our main competitor in terms of key metrics like revenue, brand awareness and money raised. In the next two years, with a team that was a tenth of the size of them, we managed to overtake them in most metrics and also to become the first mental-wellness unicorn. We were amazingly still only a team of about 25 people a couple months before we signed term sheets on the valuation.
Read More >
If you’ve ran helm in a development cluster for over a year and wasn’t aware of TILLER_HISTORY_MAX, you’re not alone 🤣🤣
Read More >
Moving a large backend application from a monolith into microservices is a hugely complex undertaking. It’s been done many times by many teams, but it’s never done quite the same way twice, and the details are always super interesting. I’m excited to tell you about this journey we’re on at Calm. We hope you find some of our decisions and learnings valuable in building your own distributed software applications, and that you’re able to see a bit more “behind the curtain” of the magic that makes Calm’s products tick.
Read More >
As we enter 2019, I’m grateful to reflect on an incredibly rewarding and productive year at Calm. Join me in exploring our iOS app’s evolution since our v3.12 release on January 2nd, 2018. Sometimes it’s hard to imagine Calm existing any differently than it does today, but know that we are always growing, always changing, and always testing new ideas. Our roadmap is infinite and our dreams flow with the breeze. Awesome ideas come from everywhere and everyone, and our goal is to streamline these inspirations into a beautiful experience that is continuously improving. Let’s get into it:
Read More >
There’s a lot to keep in mind when it comes to internationalization of a project, but most companies don’t want to think about supporting multiple languages right from the start. In fact, most companies shouldn’t localize right from the start. It’s faster to develop when not thinking about translations.
Read More >
When we were facing this challenge last summer, we had an API that was “dumb” in the sense that it just sent down a list of sorted `Program` models to the mobile client. The client was responsible for all decisions about layout — visual cell style, grouping of cells into sections, section titles, section scroll behavior, and the action to take once the cell is tapped.
Read More >