How Asana ships stable web application releases Jan 08, 2021 The majority of our product code—our large client bundle, our back-end mutation server, our distributed job system—are shipped together as a…
Part 2 - WorldStore: Distributed caching with Reac… Sep 04, 2020 This post is the second in a two-part series on how we implemented distributed caching in a fully reactive framework. Read Part 1 before reading…
Part 1 - WorldStore: Distributed caching with Reac… This post is the first in a two-part series on how we implemented distributed caching in a fully reactive framework. As part of our application…
TypeScript’s quirks: How inconsistencies make th… Jan 31, 2020 The engineers at Asana have been TypeScript fans from very early on. We started using TypeScript version 0.9.1 in 2013, blogged about it in 2014,…
Asana ❤ open source Jan 06, 2020 Engineers at Asana have been contributing to open-source software since the company was founded. To learn more about this work, I spoke with five…
What does a day of collaborating with Asana look l… Oct 30, 2019 Collaboration may be universal, but we know that work practices differ across teams based on a variety of factors. Teams don’t work with an…
Analysis of recent downtime & what we’re doi… Sep 29, 2019 Asana recently had downtime due to a single shared database, lasting at least 92 minutes on…
The Timeline of a Feature Launch May 09, 2019 Timeline is Asana's most complex visualization to date. Inspired by the classic Gantt chart and motivated by the same challenge of allocating work…
Architecting product tours in React: How we moved … Oct 31, 2018 One of the most critical areas of Product Engineering that we have at Asana is First Experience (FX). The FX team's mission to make users’…