~/devreads

Slack

https://slack.engineering/ · 88 posts · history since 2021 · active

28 May

Shaurya Kethireddy 14 min read

In early 2023, Slack faced a foundational challenge: serving Large Language Models (LLMs) at enterprise scale with the security, reliability, and performance our customers expect. Over three years, we evolved from basic infrastructure to orchestrating a sophisticated multi-cloud architecture. We didn’t just want shiny new models; we needed a system resilient to regional outages and…

uncategorizedawsbackendcloud-computingcollaboration

5 May

Mahendran Vasagam 13 min read

Excerpt By 2024, Slack’s data platform had accumulated 700+ SSH-based operators orchestrating critical data pipelines. We’re talking daily search indexing that processed terabytes of data, analytics jobs powering business intelligence, the whole shebang. Every single one of these jobs required direct SSH access to production AWS Elastic MapReduce (EMR) clusters. We had a massive security…

uncategorizedairflowawsbig-datadata-engineering

13 Apr

Dominic Marks 12 min read

Excerpt In complex, long-running agentic systems, maintaining alignment and coherent reasoning between agents requires careful design. In this second article of our series, we explore these challenges and the mechanisms we built to keep teams of agents working productively over long time spans. We present a range of complementary techniques that balance the conflicting requirements…

uncategorizeddevelopmentsecuritysoftware-engineering

31 Mar

Carlo Preciado 4 min read

The Problem: Legacy Tooling and Its Limitations Currently, Slack utilizes a hybrid approach to network measurement, incorporating both internal (such as traffic between AWS Availability Zones) and external (monitoring traffic from the public internet into Slack’s infrastructure) solutions. These tools comprise a combination of commercial SaaS offerings and custom-built network testing solutions developed by our…

uncategorizedgolanginfrastructurenetworkingobservability

19 Mar

Frances Coronel 7 min read

Introduction 🔔 At Slack, notifications are how teams stay in the loop, but they can also become overwhelming when not designed with intention. Our goal was to make staying informed feel effortless. We set out to rebuild one of Slack’s most complicated systems from the ground up by bringing calm, consistency, and clarity to the…

uncategorizedandroidbackendcross-platformdesign

1 Dec 2025

Dominic Marks 9 min read

Slack’s Security Engineering team is responsible for protecting Slack’s core infrastructure and services. Our security event ingestion pipeline handles billions of events per day from a diverse array of data sources. Reviewing alerts produced by our security detection system is our primary responsibility during on-call shifts. We’re going to show you how we’re using AI…

uncategorizeddevelopmentsecuritysoftware-engineering

19 Nov 2025

Hye Jung Choi 8 min read

Background A Voluntary Product Accessibility Template (VPAT) is a document that outlines how well a product aligns with accessibility (a11y) standards. Its primary purpose is to inform customers about a product’s a11y features, enabling them to make informed decisions before purchasing software. At Slack, we conducted a VPAT by a third party a11y vendor in…

uncategorizeda11yaccessibilityandroidempathy

6 Nov 2025

David Reed (he/his) 15 min read

We manage the build pipeline that delivers Quip and Slack Canvas’s backend. A year ago, we were chasing exciting ideas to help engineers ship better code, faster. But we had one huge problem: builds took 60 minutes. With a build that slow, the whole pipeline gets less agile, and feedback doesn’t come to engineers until…

uncategorizedbuild-performancecachingci-cddeveloper-experience

23 Oct 2025

Archie Gunasekara 13 min read

Last year, I wrote a blog post titled Advancing Our Chef Infrastructure, where we explored the evolution of our Chef infrastructure over the years. We talked about the shift from a single Chef stack to a multi-stack model, and the challenges that came with it – from updating how we handle cookbook uploads to navigating…

uncategorizedaws

7 Oct 2025

4 Sept 2025

Nathan Lehotsky 7 min read

As cyberattacks evolve to unprecedented levels of sophistication and speed, the time gap between breach detection and response has never been more critical. Traditional security approaches often operate reactively, identifying compromises only after damage has occurred. This delay grants attackers a tactical advantage, forcing security teams to focus on damage assessment and remediation rather than…

uncategorizedincident-responsesecurity

14 Apr 2025

Dan Carton 5 min read

In the world of DevOps and Developer Experience (DevXP), speed and efficiency can make a big difference on an engineer’s day-to-day tasks. Today, we’ll dive into how Slack’s DevXP team took some existing tools and used them to optimize an end-to-end (E2E) testing pipeline. This lowered build times and reduced redundant processes, saving both time…

uncategorizedci-cddeveloper-experiencedeveloper-productivitydevops

7 Mar 2025

Ian Hoffman 5 min read

Many don’t know that “Slack” is in fact a backronym—it stands for “Searchable Log of all Communication and Knowledge”. And these days, it’s not just a searchable log: with Slack AI, Slack is now an intelligent log, leveraging the latest in generative AI to securely surface powerful, time-saving insights. We built Slack AI from the…

uncategorized

7 Jan 2025

nstormann 12 min read

At Slack, customer love is our first priority and accessibility is a core tenet of customer trust. We have our own Slack Accessibility Standards that product teams follow to guarantee their features are compliant with Web Content Accessibility Guidelines (WCAG). Our dedicated accessibility team supports developers in following these guidelines throughout the development process. We…

uncategorizeda11yaccessibilityautomation-testingtesting

16 Dec 2024

Zhengyu Shen 12 min read

Overview The past few months have been exciting times for Slack’s CI infrastructure. After years of developer frustration with Jenkins (everything from security issues to downtime to generally poor UX) internal pressure led us to move a majority of Slack’s CI jobs from Jenkins to GitHub Actions. My intern project at Slack this summer involved…

uncategorizedci-cddevopsdevtoolsmachine-learning

10 Dec 2024

Sean Madden 5 min read

“A complex system can fail in an infinite number of ways.” -“Systemantics” by John Gall Incidents are stressful but inevitable. Even services designed for availability will eventually encounter a failure. Engineers naturally find it daunting to defend their systems against the “infinite number of ways” things can go wrong. Our team found ourselves in…

uncategorized

9 Dec 2024

Ryan Katkov 7 min read

What are Slack Audit Logs? Like many Software as a Service (SaaS) offerings, Slack provides audit logs to Enterprise Grid customers that record when entities take an action on the platform. For example, when a user logs in, when a user updates their profile, when an app downloads a file, etc. The actual list of…

uncategorized

18 Nov 2024

George Luong 5 min read

Introduction Slack handles a lot of log data. In fact, we consume over 6 million log messages per second. That equates to over 10 GB of data per second! And it’s all stored using Astra, our in-house, open-source log search engine. To make this data searchable, Astra groups it by time and splits the data…

uncategorized

14 Nov 2024

Scott Nelson Windels 11 min read

Incident Management takes time Incidents need responders that are trained and experienced. At Slack, training is a foundation of our incident management program. Self-service training and live courses based mainly on prepared content are one piece of the puzzle, but there can be a missing piece in many organizations. How can staff get practical experience…

uncategorizedincident-managementincident-response

8 Nov 2024

Srivani Bethi 7 min read

Background and motivation In the fast-paced world of software development, having the right tools can make all the difference. At Slack, we’ve been working on a set of AI-powered developer tools that are saving 10,000+ hours of developer time yearly, while meeting our strictest requirements for security, data protection, and compliance. In this post, we’ll…

uncategorizeddevtoolsmachine-learningsearch

10 Oct 2024

Brett Wines 7 min read

We’ve been working to bring components of Quip’s technology into Slack with the canvas feature, while also maintaining the stand-alone Quip product. Quip’s backend, which powers both Quip and canvas, is written in Python. This is the story of a tricky bug we encountered last July and the lessons we learned along the way about…

uncategorizeddatabaseinfrastructurenetworkingpython

23 Sept 2024

Dylan Steen 6 min read

After a lot of hard work, you’ve landed that coveted internship. Now comes the next big challenge: delivering a meaningful project over the summer. Leading a project independently is an opportunity to sharpen your skills, demonstrate your capabilities, and experience personal growth. As you drive the project on your own, the support from your mentor…

uncategorizedinternships

17 Sept 2024

Archie Gunasekara 12 min read

At Slack, we manage tens of thousands of EC2 instances that host a variety of services, including our Vitess databases, Kubernetes workers, and various components of the Slack application. The majority of these instances run on some version of Ubuntu, while a portion operates on Amazon Linux. With such a vast infrastructure, the critical question…

uncategorizedawsinfrastructure

30 Aug 2024

31 Jul 2024

Ian Hoffman 10 min read

All software is built atop a core set of assumptions. As new code is added and new use-cases emerge, software can become unmoored from those assumptions. When this happens, a fundamental tension arises between revisiting those foundational assumptions—which usually entails a lot of work—or trying to support new behavior atop the existing architecture. The latter…

uncategorizedcollaborationenterpriseleadershipproduct-engineering

2 Jul 2024

Nilanjana Mukherjee 9 min read

Slack Data Engineering recently underwent data workload migration from AWS EMR 5 (Spark 2/Hive 2 processing engine) to EMR 6 (Spark 3 processing engine). In this blog, we will share our migration journey, challenges, and the performance gains we observed in the process. This blog aims to assist Data Engineers, Data Infrastructure Engineers, and Product…

uncategorizedanalyticsawsbig-datadata-engineering

28 Jun 2024

Nathan Lehotsky 6 min read

At Slack, we’re committed to security that goes beyond the ordinary. We continuously strive to earn and maintain user trust by safeguarding critical components integral to every user’s experience. From passwords to session cookies, and tokens to webhooks, we prioritize protecting everything essential to how users log into the platform and remain authenticated. Through proactive…

uncategorizedsecurity

24 Jun 2024

Ryan Slama 9 min read

Slack uses cookies to track session states for users on slack.com and the Slack Desktop app. The ever-present cookie banners have made cookies mainstream, but as a quick refresher, cookies are a little piece of client-side state associated with a website that is sent up to the web server on every request. Websites use this…

uncategorizedsecurity

15 Jun 2024

Clément Labbe 10 min read

In a previous blog post—A Simple Kubernetes Admission Webhook—I discussed the process of creating a Kubernetes webhook without relying on Kubebuilder. At Slack, we use this webhook for various tasks, like helping us support long-lived Pods (see Supporting Long-Lived Pods), and today, I delve once more into the topic of long-lived Pods, focusing on our…

uncategorizedkubernetes

22 May 2024

Sergii Gorbachov 14 min read

Update (October 2024): In response to numerous requests from external developers, we have open-sourced a version of our Enzyme to React Testing Library (RTL) conversion tool. You can now find it on npm, along with detailed instructions on how to integrate and use it in your projects. In the world of frontend development, one thing remains…

uncategorizedautomationdeveloper-productivityfrontendreact

8 May 2024

Lakshmi Mohan 8 min read

The Data Engineering team is responsible for Slack’s data lake, analytics dashboards, and other data services. The team’s mission is to empower users to leverage data to make decisions quickly, accurately, and easily. Slack’s data lake grew in size from sub-petabyte to over 100 petabytes in recent years and it now spans millions of tables.…

data-engineering

18 Apr 2024

18 Jan 2024

Sean McIlroy 12 min read

Most of Slack runs on a monolithic service simply called “The Webapp”. It’s big – hundreds of developers create hundreds of changes every week. Deploying at this scale is a unique challenge. When people talk about continuous deployment, they’re often thinking about deploying to systems as soon as changes are ready. They talk about microservices…

uncategorizedautomationbackendci-cddeployment

12 Dec 2023

Archie Gunasekara 10 min read

We are heavy users of Amazon Compute Compute Cloud (EC2) at Slack — we run approximately 60,000 EC2 instances across 17 AWS regions while operating hundreds of AWS accounts. A multitude of teams own and manage our various instances. The Instance Metadata Service (IMDS) is an on-instance component that can be used to gain an…

uncategorizedawscloud-computinginfrastructuresecurity

5 Dec 2023

28 Nov 2023

Yuriy Loginov 9 min read

Slack Connect, AKA shared channels, allows communication between different Slack workspaces, via channels shared by participating organizations. Slack Connect has existed for a few years now, and the sheer volume of channels and external connections has increased significantly since the launch. The increased volume introduced scaling problems, but also highlighted that not all external connections…

uncategorizedbackendhacklanginfrastructurescalability

15 Nov 2023

Eduardo Ortega 13 min read

On Thursday, 12 Oct. 2022, the EMEA part of the Datastores team — the team responsible for Slack’s database clusters — was having an onsite day in Amsterdam, the Netherlands. We’re sitting together for the first time after new engineers had joined the team, when suddenly a few of us were paged: There was an…

9 Oct 2023

28 Sept 2023

Claire Adams 5 min read

Cron scripts are responsible for critical Slack functionality. They ensure reminders execute on time, email notifications are sent, and databases are cleaned up, among other things. Over the years, both the number of cron scripts and the amount of data these scripts process have increased. While generally these cron scripts executed as expected, over time…

databasegolanginfrastructurekubernetesscalability

6 Sept 2023

28 Aug 2023

Radha Kumari 8 min read

Slack handles billions of inbound network requests per day, all of which traverse through our edge network and ingress load balancing tiers. In this blog post, we’ll talk about how a request flows — from a Slack’s user perspective — across the vast ether of the network to reach AWS and then Slack’s internal…

uncategorizedinfrastructurenetworking

22 Aug 2023

Stephan Zuercher 8 min read

Summary In recent years, cellular architectures have become increasingly popular for large online services as a way to increase redundancy and limit the blast radius of site failures. In pursuit of these goals, we have migrated the most critical user-facing services at Slack from a monolithic to a cell-based architecture over the last 1.5 years.…

uncategorizedinfrastructurenetworking

26 Jul 2023

Ryan Katkov 8 min read

Customer-first: Moving from Hero Engineering to Reliability Engineering From the beginning, Slack has always had a strong focus on the customer experience, and customer love is one of our core values. Slack has grown from a small team to thousands of employees over the years and this customer love has always included a focus on…

uncategorizedleadershipobservability

11 Apr 2023

Sameera Thangudu 6 min read

Did you know that ground stations transmit signals to satellites 22,236 miles above the equator in geostationary orbits, and that those signals are then beamed down to the entire North American subcontinent? Satellite radios today serve hundreds of channels across 9,540,000 square miles. Unless you’re working at a secret military facility, deep underground, you can…

uncategorizedinfrastructurescalabilitysoftware-architecture

4 Apr 2023

George Luong 10 min read

Notifications are a key aspect of the Slack user experience. Users rely on timely notifications of mentions and DMs to keep on top of important information. Poor notification completeness erodes the trust of all Slack users. Notifications flow through almost all the systems in our infrastructure. As illustrated in Figure 1 below, a notification request…

uncategorized

21 Mar 2023

Tricia Bogen 9 min read

This blog post discusses the strategies that Slack uses to manage the lifecycle (development, support, and eventual retirement) of infrastructure projects, through the lens of the migration through three successive internal “platform” offerings. Our challenges Circa 2020, our Cloud Engineering team (now evolved into multiple teams responsible for narrower aspects) was responsible for managing our…

uncategorizedcloud-computingcollaborationdevopsinfrastructure

8 Feb 2023

Matt Brown 5 min read

TL; DR: We’re announcing a new open source type checker for Hack, called Hakana. Slack launched in 2014, built with a lot of love and also a lot of PHP code. We started migrating to a different language called Hack in 2016. Hack was created by Facebook after they had struggled to scale their operations…

hacklang

1 Feb 2023

Saif Chaouachi 4 min read

After Duplo modularization, we noticed that the task producing a transitive R class was taking a significant amount of time to execute. To eliminate this task altogether, and since the non-transitive R class is advertised to have up to 40% incremental build time improvement, we decided to migrate our codebase to use it. If you’re not…

uncategorizedandroidandroid-app-development

24 Jan 2023

Archie Gunasekara 9 min read

Slack launched GovSlack in July 2022. With GovSlack, government agencies, and those they work with, can enable their teams to seamlessly collaborate in their digital headquarters, while keeping security and compliance at the forefront. Using GovSlack includes the following benefits: Supports key government security standards, such as FedRAMP High, DoD IL4, and ITAR Runs in…

automationawsinfrastructure

25 Oct 2022

Archie Gunasekara 14 min read

At Slack, we use Terraform for managing our Infrastructure, which runs on AWS, DigitalOcean, NS1, and GCP. Even though most of our infrastructure is running on AWS, we have chosen to use Terraform as opposed to using an AWS-native service such as CloudFormation so that we can use a single tool across all of our…

uncategorizedautomationawsinfrastructure

12 Oct 2022

Ahmed Eid 14 min read

At Slack, the goal of the Mobile Developer Experience Team (DevXp) is to empower developers to ship code with confidence while enjoying a pleasant and productive engineering experience. We use metrics and surveys to measure productivity and developer experience, such as developer sentiment, CI stability, time to merge (TTM), and test failure rate. We have…

developer-productivity

3 Oct 2022

29 Sept 2022

Georgina Knox 7 min read

06:15 AM My two young kids come in waking me up, presenting me with iPads in the hopes of a quick game of Minecraft before school. I sometimes give in as it might mean a few more minutes sleep! 07:00 AM It’s time for the first of many oat flat whites — or oat flatties…

20 Sept 2022

13 Sept 2022

6 Sept 2022

Katrina Ni 10 min read

Slack, as a product, presents many opportunities for recommendation, where we can make suggestions to simplify the user experience and make it more delightful. Each one seems like a terrific use case for machine learning, but it isn’t realistic for us to create a bespoke solution for each. Instead, we developed a unified framework we…

uncategorizedinfrastructuremachine-learning

31 Aug 2022

19 Aug 2022

Frank Chen 15 min read

What happens when your distributed service has challenges with stampeding herds of internal requests? How do you prevent cascading failures between internal services? How might you re-architect your workflows when naive horizontal or vertical scaling reaches their respective limits? These were the challenges facing Slack engineers during their day-to-day development workflows in 2020. Multiple internal…

uncategorizedci-cddeveloper-productivityincident-managementinfrastructure

21 Jul 2022

28 Jun 2022

Sylvestor George 8 min read

In this article, “remote development environments” refer to AWS EC2 instances where engineers make code changes and can see a running Slack application with those changes. For years, engineers at Slack isolated and tested their changes by running microcosms of the Slack application on their local computers. This was difficult for many reasons: it involved…

uncategorizedcollaborationdeveloper-productivitydevelopmentdevtools

7 Jun 2022

Albert Xing 6 min read

Last September, Slack released Clips, allowing users to capture video, audio, and screen recordings in messages to help distributed teams connect and share their work. We’ve continued iterating on Clips since its release, adding thumbnail selection, background blur, and most recently, background image replacement. This blog post provides a deep dive into our implementation of…

uncategorizedperformancewebwebassemblywebgl

4 May 2022

29 Apr 2022

Shreya Ramesh 12 min read

Building load test infrastructure is tricky and poses many questions. How can we identify performance regressions in newly deployed builds, given the overhead of spinning up test clients? To gather the most representative results, should we load test at our peak hours or when there’s a lull? How do we incentivize engineers to invest time…

uncategorizeddevtoolsload-testingperformanceperformance-testing

26 Apr 2022

Laura Nolan 12 min read

By Laura Nolan, with contributions from Glen D. Sanford, Jamie Scheinblum, and Chris Sullivan. Assessing conditions Slack experienced a major incident on February 22 this year, during which time many users were unable to connect to Slack, including the author — which certainly made my role as Incident Commander more challenging! This incident was a…

uncategorizeddata-infrastructuredebuggingincident-response

5 Apr 2022

Arpita Patel 13 min read

At Slack, the goal of the Mobile Developer Experience Team (DevXp) is to empower developers to ship code with confidence while enjoying a pleasant and productive engineering experience. We use metrics and surveys to measure productivity and developer experience, such as developer sentiment, CI stability, time to merge (TTM), and test failure rate. The DevXp…

uncategorizedautomationautomation-testingdeveloper-productivitytesting

28 Mar 2022

Tracy Stampfli 11 min read

In the first post about the Duplo initiative, we discussed the reasons for launching a project to revamp Slack’s mobile codebases, and what we accomplished in Duplo’s initial Stabilization phase. This post will explore modularization, and then there will be a third post to describe how we modernized our codebase and the overall results of…

uncategorizedandroid-app-developmentios-app-developmentmobilemobile-app-development

9 Mar 2022

Javier Turegano 10 min read

According to a recent Thoughtworks radar, “the industry is increasingly gaining experience with platform engineering product teams that create and support internal platforms.” They caveated this with a piece of advice: “When creating a platform, it’s critical to have clearly defined customers and products that will benefit from it rather than building in a vacuum.”…

uncategorizedcloud-computinginfrastructureproduct-management

18 Feb 2022

Carlos Valdez 12 min read

In 2021, we changed developer testing workflows for Webapp, Slack’s main monorepo, from predominantly testing before merging to a multi-tiered testing workflow after merging. This changed our previous definition of safety and developer workflows between testing and deploys. In this project, we aimed to ensure frequent, reliable, and high-quality releases to our customers for a…

uncategorizedautomation-testingci-cddeploymentincident-management

11 Feb 2022

Suman Karumuri 11 min read

In this article, I will talk about how Slack uses Kafka, and how a small-but-mighty team built and operationalized a self-driving Kafka cluster over the last four years to run at scale. Kafka is used at Slack as a pub-sub system, playing an essential role in the all-important Job Queue, our asynchronous job execution framework…

uncategorized

12 Jan 2022

Tracy Stampfli 14 min read

When do you need to overhaul a large code base to address tech debt? What is the best way to address widespread inconsistencies and outdated patterns? How can you make significant architectural improvements to a complex application while still continuing to ship features? These were questions we grappled with at the beginning of 2020, when…

uncategorizedandroidandroid-app-developmentiosios-app-development

14 Dec 2021

Clément Labbe 10 min read

While adding a recent feature to our Kubernetes compute platform, we had the need to mutate newly-created pods based on annotations set by users. The mutation needed to follow simple business rules, and didn’t need to keep track of any state. Surely there must be a canonical solution to this simple problem? Well, sort of.…

uncategorizedgolangkubernetes

2 Dec 2021

Chaitanya Ravula 4 min read

Over 70% of the files uploaded on Slack are images, and over 75% of those images are screenshots. What this tells us is that though images are ephemeral, screenshots are often used as a quick way to provide extra detail and context, and typically gain a high level of engagement over a short time period.…

uncategorized

29 Nov 2021

Rafael Elvira 15 min read

On September 30th 2021, Slack had an outage that impacted less than 1% of our online user base, and lasted for 24 hours. This outage was the result of our attempt to enable DNSSEC — an extension intended to secure the DNS protocol, required for FedRAMP Moderate — but which ultimately led to a series of…

uncategorized

10 Nov 2021

Zac Sweers 2 min read

We use plenty of open source tools at Slack and we’ve benefited immensely from the wider Android, Kotlin, and Gradle communities. We also try to be good citizens by giving back. This includes things like sponsoring the Kotlin Lang Slack, contributions to projects we use like Anvil and Insetter, sharing projects of our own like…

uncategorizedandroidkotlinmobileopen-source

4 Nov 2021

Gregg Horton 6 min read

At Slack, proactively securing our systems is a top priority. One way we achieve this is by automating the detection of security issues with static code analysis, which are tools that inspect programs without executing them. They’re often used with security-based rules to automate identification of vulnerabilities and insecure programming practices, which frees up more…

20 Oct 2021

7 Oct 2021

Frank Chen 10 min read

Slack is an integral part of where work happens for teams across the world, and our work in the Core Development Engineering department supports engineers throughout Slack that develop, build, test, and release high-quality services to Slack’s customers. In this article, we share how teams at Slack evolved our internal tooling and made infrastructure bets.…

uncategorizeddeveloper-productivityinfrastructureobservability

7 Sept 2021

1 Sept 2021

Brian Riggsbee 5 min read

Agile development methods can bolster company culture and empower teams to move quickly, with a focus on frequently adding value for customers. Whether you are a program manager, game developer, event planner, or architect, within businesses where change is constant, it’s key to have flexibility, and that’s where agile shines. While there are a variety…

uncategorizeddevelopmentengineeringproduct-engineering

25 Aug 2021

Mathias Roth 10 min read

We recently rolled out support for Conversation Bubbles for DMs and Group DMs on Android 11. In case you’re not familiar with Conversation Bubbles, take a look at the video below. Basically, they are a way to pop out a conversation from a notification into a Bubble that will draw over other apps, making multitasking…

uncategorized

17 Aug 2021

Samuel Bock 8 min read

Reinventing how the world does work inevitably creates a lot of data. Each year, Slack’s scale has increased and the volume of data ingested and stored has kept pace. To make it possible to understand relationships within our data, we’ve invested heavily in an automated data lineage framework. This facilitates producer/consumer coordination, improves risk mitigation,…

uncategorizedbig-datadata-engineering

11 Aug 2021

Saurabh Sahni 11 min read

More than five years ago, we launched the Slack Platform, giving developers an easy way to build apps in Slack and publish them in our App Directory. Today, millions of users bring their work into Slack, and those apps built by over 885,000 active developers on the platform are key to further improving collaboration in…

28 Jul 2021

Sarah Henkens 10 min read

With the release of Slack Connect, people can now collaborate both with internal employees and external organizations in the same channel. To make this as smooth as possible, Slack does predictive email analysis to classify and recommend the best way for a user to work with people they want to collaborate with. To accomplish this,…

uncategorizedalgorithmsdata-engineeringinfrastructure

20 Jul 2021

Zac Sweers 6 min read

Note: This article assumes some familiarity with Dagger, Anvil, and Kotlin. We use Dagger heavily in the Slack Android app for compile-time dependency injection. It’s powerful, flexible, supports basic Kotlin idioms, and allows for advanced dependency injection patterns with less boilerplate. It’s not without its sharp edges though. It slows down our builds with kapt,…

uncategorizedandroidkotlin

13 Jul 2021

Divya Kamath 7 min read

At Slack, we believe that designing an optimal keyboard experience is key to delivering a best-in-class product for all our customers. However, despite our design system components being individually accessible, we heard from keyboard users that we were still missing focus transitions in their end-to-end user experience. Non-sighted users who relied on a screenreader constantly…

uncategorizeda11yaccessibilityfront-end-developmentfrontend

3 Jun 2021

Maria Sabastian 6 min read

Artwork courtesy of the Jenkins project. At Slack we manage a sophisticated Jenkins infrastructure to continuously build and test our mobile apps before release. We have hundreds of jobs running in a variety of different environments. One day something very odd happened — our Jenkins UI stopped working although the jobs continued to run. This…

uncategorized

24 May 2021

Jake Byman 9 min read

Controlling which users are able to take which actions is no simple task. Building this into Slack has always been an interesting challenge. In large enterprise organizations, the standard types of roles we offered to customers were too broad, and delegating a generic admin role can grant someone with too much power — what if…

uncategorized

23 Apr 2021

Shreya Ramesh 12 min read

Complex systems are difficult to reason about at scale; we often can’t accurately extrapolate system behavior and performance, so we need to derive that data empirically. We use load testing to do just that: find the limits of our systems and weed out bugs at a large scale in a controlled environment. Slack is a…

uncategorized