Superhuman
Superhuman reduces their build time from 22 minutes to 8 minutes with Semaphore
😔 Before Semaphore:
- ⛔️️ Different tools responsible for the CI process
- ⛔️ A slow and costly feedback loop
😄 After adopting Semaphore:
- ✅ One tool to rule them all
- ✅ A faster and cheaper feedback loop
Discover what Semaphore can do for your team 🧑💻
The Challenge
Superhuman prides itself on being the fastest email client in the world, and wants to live the value of speed for all of their internal tooling. Before Semaphore, running the tests and deploying was too slow. The team behind Superhuman used Wercker for the backend (which was acquired by Oracle a few years ago). Their frontend CI service used the “old-school model” of charging for peak parallelism, and they also had yet another CI service to run the builds for the desktop client.
“When investigating replacements, Semaphore was by far the best (if not the only!) CI server which fit those constraints.”
Conrad Irwin, CTO / Co-Founder at Superhuman
Superhuman needed a service that:
- Was built from the ground up to be fast.
- Could support macOS code-signing.
- Charged for actual time used, not peak parallelism.
- Has a high level of peak parallelism.
- Who’d reply to them when they emailed.
The Solution
The Superhuman backend is written in Go. When code is pushed to any branch, Semaphore builds and runs the tests. When the tests pass on 'master'
or on 'staging'
, Semaphore builds Docker images, uploads those to Google Container Registry, and then gradually rolls them out to our Google Container Engine cluster.
The frontend is written in JavaScript. When code is pushed to any branch, Semaphore runs Zen (a test runner built by one of their engineers) to run all the tests. Zen compiles the code, uploads it to S3 and boots up 600 AWS Lambda instances to run the tests in parallel (the Semaphore worker co-ordinates this). When the tests pass on the 'staging'
, or 'production'
branches, Semaphore automatically builds a bundle and uploads it to Google Cloud Storage.
“The time to deploy a new version to the backend was reduced from about 22 minutes to 8 minutes. The time to run the frontend tests on our previous solution was about 17 minutes (not even to deploy, just to test!).”
Conrad Irwin, CTO / Co-Founder at Superhuman
The Results
Semaphore has significantly better performance, the machines are not overloaded and you can run many builds in parallel. It is also way cheaper than the old model reserving capacity and resources for 10 parallel jobs (which is a waste 80% of the time, and not enough 10% of the time).
- ✔️ Better performance
- ✔️ The machines are not overloaded
- ✔️ Run many builds in parallel
- ✔️ Cheaper than the old model
“It’s way faster and we just pay Semaphore for the number of build seconds we actually use. As we’ve spent a bit of time optimizing our build speed, each build costs about 10 cents.”
Conrad Irwin, CTO / Co-Founder at Superhuman
Superhuman is not just another email client. They rebuilt the inbox from the ground up to make people brilliant at what they do. Superhuman is blazingly fast, and visually gorgeous. It comes with advanced features to make people feel Superhuman: A.I. triage, undo send, insights from social networks, follow-up reminders, scheduled messages, and read statuses.
superhuman.com
Industry
Job search & Recruitment
Stack
Go
Javascript
Docker
GKE
Aws Lambda
More customer stories
“Semaphore 2.0 allows us to build, tag, push, and run Docker images easily. This makes building a powerful pipeline where we can deploy to our Kubernetes cluster fairly easily and quickly.”
Nic Cavigliano
Senior Software Engineer
“Semaphore allows us to build anywhere from two to twenty branches in parallel, each one in a threaded environment. We had thousands of tests that were running for a really long time and with Semaphore we got the build to run in under 20 minutes.”
Artem Lypiy
QA Lead at 500px
“We were using Jenkins to build the old system, and it was hard to maintain and quite painful. We looked at other hosted CI services, but they were very unreliable. When we found Semaphore, we got our application up and running pretty quickly. We now use it for all projects.”
Lukas Oberhuber
CTO at Simply Business