The Curious Engineer

All blogs / Software / engineering practice

Engineering at Slack

slack.engineering

A deep dive into the technology behind building Slack. Written by engineers, for engineers passionate about solving complex technical problems.

Software / engineering practiceDevOps / SRE / infrastructureAI / MLTesting / QAEngineering blogs

Posts
194 from 26 Jan 2016 to 14 Jul 2026
Posting
monthly (10 in the last year)
Kind
company blog
Feed
https://slack.engineering/feed/

2026 7

  1. Shipyard: How We Built Slack’s Next-Generation EC2 Platform
  2. Agentic Testing: Where Agents Fit in the E2E Testing Stack
  3. Slack AI: The Path to Multi-Cloud
  4. From SSH to REST: A Security-Driven Modernization of Slack’s EMR Data Pipelines
  5. Managing context in long-run agentic applications
  6. From Custom to Open: Scalable Network Probing and HTTP/3 Readiness with Prometheus
  7. How Slack Rebuilt Notifications 📣

2025 9

  1. Streamlining Security Investigations with Agents
  2. Android VPAT journey
  3. Build better software to build software better
  4. Advancing Our Chef Infrastructure: Safety Without Disruption
  5. Deploy Safety: Reducing customer impact from change
  6. Building Slack’s Anomaly Event Response
  7. Optimizing Our E2E Pipeline
  8. How we built enterprise search to be secure and private
  9. Automated Accessibility Testing at Slack

2024 19

  1. Migration Automation: Easing the Jenkins → GHA shift with help from AI
  2. Break Stuff on Purpose
  3. Slack Audit Logs and Anomalies
  4. Astra Dynamic Chunks: How We Saved by Redesigning a Key Part of Astra
  5. There’s No Such Thing as a Free Lunch!
  6. Empowering Engineers with AI
  7. We’re All Just Looking for Connection
  8. Driving a Project: Intern Edition
  9. Advancing Our Chef Infrastructure
  10. Engineering with Empathy: My Journey to Understanding the User Experience
  11. Unified Grid: How We Re-Architected Slack for Our Largest Customers
  12. Unlocking Efficiency and Performance: Navigating the Spark 3 and EMR 6 Upgrade Journey at Slack
  13. Proactive Measures Against Password Breaches and Cookie Hijacking
  14. Catching Compromised Cookies
  15. Advanced Rollout Techniques: Custom Strategies for Stateful Apps in Kubernetes
  16. Balancing Old Tricks with New Feats: AI-Powered Conversion From Enzyme to React Testing Library at Slack
  17. How Women Lead Data Engineering at Slack
  18. How We Built Slack AI To Be Secure and Private
  19. The Scary Thing About Automating Deploys

2023 16

  1. Our Journey Migrating to AWS IMDSv2
  2. Building Custom Animations in the Workflow Builder
  3. Managing Slack Connect
  4. The Query Strikes Again
  5. Unleashing Impact at Slack’s Data Engineering Internship
  6. Executing Cron Scripts Reliably At Scale
  7. My Summer Return Internship @ Slack: A Guide on Building on Past Experiences
  8. Traffic 101: Packets Mostly Flow
  9. Slack’s Migration to a Cellular Architecture
  10. Service Delivery Index: A Driver for Reliability
  11. Real-time Messaging
  12. Tracing Notifications
  13. Technology Lifecycle
  14. Hakana: Taking Hack Seriously
  15. It’s a non-transitive R class world
  16. What We Learned from Building GovSlack

2022 21

  1. How We Use Terraform At Slack
  2. Mobile Developer Experience at Slack
  3. How to Mentor Interns to Become Skillful Engineers
  4. A Day in the Life of a Cloud Engineer at Slack Australia
  5. Blocked: How to Ask For Help as an Intern
  6. Our Hybrid and Collaborative Summer @ Slack’s Data Eng
  7. Recommend API
  8. BuildRock: A Build Platform at Slack
  9. Slowing Down to Speed Up – Circuit Breakers for Slack’s CI/CD
  10. AutoTransform: Efficient Codebase Modification
  11. Remote Development at Slack
  12. Building Background Effects for Clips
  13. Scaling Slack’s Mobile Codebases: Modernization
  14. Continuous Load Testing
  15. Slack’s Incident on 2-22-22
  16. Handling Flaky Tests at Scale: Auto Detection & Suppression
  17. Scaling Slack’s Mobile Codebases: Modularization
  18. Applying Product Thinking to Slack’s Internal Compute Platform
  19. Balancing Safety and Velocity in CI/CD at Slack
  20. Building Self-driving Kafka clusters using open source components
  21. Stabilize, Modularize, Modernize: Scaling Slack’s Mobile Codebases

2021 24

  1. A Simple Kubernetes Admission Webhook
  2. Going from Coder to Slack Engineer
  3. The Case of the Recursive Resolvers
  4. Developing in the Open
  5. How Two Interns Are Helping Secure Millions of Lines of Code
  6. Building the Next Evolution of Cloud Networks at Slack – A Retrospective
  7. Infrastructure Observability for Changing the Spend Curve
  8. Behind the Scenes of Slack’s Acquisition Announcement
  9. The Four Agile Values and Slack
  10. Building Android Conversation Bubbles
  11. Data Lineage at Slack
  12. How We Design Our APIs at Slack
  13. Email Classification
  14. Extending Anvil for Fun and Profit
  15. Managing Focus Transitions in Slack
  16. How a Jenkins Job Broke our Jenkins UI
  17. Role Management at Slack
  18. Load Testing with Koi Pond
  19. Client Tracing: Understanding Mobile and Desktop Application Performance at Scale
  20. Migrating Millions of Concurrent Websockets to Envoy
  21. Shadow Jobs
  22. Slack’s Outage on January 4th 2021
  23. Women in Security at Slack
  24. A Day in the Life of a Backend Platform Engineer at Slack Pune

2020 26

  1. Creating a React Analytics Logging Library
  2. Scaling Datastores at Slack with Vitess
  3. Migrating Slack Airflow to Python 3 Without Disruption
  4. Creating a React Analytics Logging Library
  5. Bridging the Gap Between Slack and Email Users
  6. Building the Next Evolution of Cloud Networks at Slack
  7. The Unsuspecting Beauty & Complexity of Web Forms
  8. Starting an Initiative
  9. Tracing at Slack: Thinking in Causal Graphs
  10. How to Have an Impactful Internship… Virtually
  11. Blocking Slack Invite Spam With Machine Learning
  12. All Hands on Deck
  13. A Terrible, Horrible, No-Good, Very Bad Day at Slack
  14. The App Sandbox
  15. Scaling End-to-End User Interface Tests
  16. Prototyping at Slack
  17. A Day in the Life of a Frontend Foundations Engineer at Slack
  18. Happiness is… a freshly organized codebase
  19. Development Environments at Slack
  20. A Day in the Life of a Mobile Product Engineer at Slack
  21. Hacklang at Slack: A Better PHP
  22. A Day in the Life of a Backend Product Engineer at Slack
  23. Deploys at Slack
  24. How Big Technical Changes Happen at Slack
  25. A Day in the Life of a Frontend Product Engineer at Slack
  26. Reliably Upgrading Apache Airflow at Slack’s Scale

2019 21

  1. Introducing Nebula, the open source global overlay network from Slack
  2. A Day in the Life of a Backend Foundation Engineer at Slack
  3. Gantry: Slack’s Fast-booting Frontend Framework
  4. Client Consistency at Slack: Beyond Libslack
  5. Building Dark Mode on Desktop
  6. How Slack Built Shared Channels
  7. The Gradual Design System: How We Built Slack Kit
  8. Interning on Slack’s Product Security Team
  9. Service Workers at Slack: Our Quest for Faster Boot Times and Offline Support
  10. PanModal: Better support for thumb accessibility on Slack mobile
  11. Disasterpiece Theater: Slack’s process for approachable Chaos Engineering
  12. When a rewrite isn’t: rebuilding Slack on the desktop
  13. 🏄‍♀️ Surf’s Up! Preparing for Huge Waves of Traffic via Load Testing
  14. Chrome Tracing for Fun and Profit
  15. Rewriting the Slack Python SDK
  16. How Slack Hires a Red Team (and you can too!)
  17. Refactoring Backend Engineering Hiring at Slack
  18. Highlights from Slack’s March Growth Meetup
  19. Engineering dive into Slack Enterprise Key Management
  20. Defining a career path for Developer Relations
  21. How to Fail at Accessibility

2018 11

  1. Highlights from Slack’s August Mobile Meetup
  2. Re-architecting Slack’s Workspace Preferences: How to Move to an EAV Model to Support Scalability
  3. Unified Cross-Platform Performance Metrics
  4. Streamlining Your Workflow: Debugging for HHVM
  5. Ways we make the Slack iOS app accessible
  6. Moving Fast and Securing Things
  7. Interop’s Labyrinth: Sharing Code Between Web & Electron Apps
  8. Evolving the Slack API
  9. Keep webpack Fast: A Field Guide for Better Build Performance
  10. Android UI Automation: Part 2, Making It Easy
  11. Android UI Automation: Part 1, Building Trust

2017 21

  1. Scaling Slack’s Job Queue
  2. Growing Pains: Migrating Slack’s Desktop App to BrowserView
  3. Rebuilding slack.com
  4. LibSlack: The C++ Library at the Foundation of Our Client Application Architecture
  5. Localizing Slack
  6. Evolving API Pagination at Slack
  7. Maximum Warp: Building Migrations for Slack Enterprise Grid
  8. Technical Leadership: Getting Started
  9. Introducing Highlights
  10. Into the Clouds
  11. Flannel: An Application-Level Edge Cache to Make Slack Scale
  12. Rebuilding Slack’s Emoji Picker in React
  13. TypeScript at Slack
  14. Slack Bug Bounty: Three Years Later
  15. How Slack Supports Junior Engineers
  16. Reducing Slack’s memory footprint
  17. Search at Slack
  18. Making Slack Faster By Being Lazy: Part 2
  19. Weaving Threads
  20. Introducing Electron to the Windows Runtime
  21. Making Slack Faster By Being Lazy

2016 19

  1. Data Wrangling at Slack
  2. Syscall Auditing at Scale
  3. What matters to you, matters to us.
  4. Building Hybrid Applications with Electron
  5. Mentorship at Slack
  6. Taking PHP Seriously
  7. Personalized channel recommendations in Slack
  8. The Slack Internship
  9. Data Consistency Checks
  10. Getting to Slack faster with incremental boot
  11. Making Slack Feel Like Slack
  12. Calls: Is it you or is it me?
  13. A Walkthrough Guide to Finding an Engineering Job at Slack
  14. Using ES2015 with Electron — introducing electron-compile
  15. The Joy of Internal Tools
  16. Distributed Security Alerting
  17. How About Code Reviews?
  18. On Empathy & Pull Requests
  19. A faster, smarter Quick Switcher