Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K

    Slack Engineering

    slack.engineering · Company blog · on HN since 2016

    Slack's engineering blog covers its infrastructure, including PHP and Hacklang, Vitess datastores, Electron and memory use.

    Visit blogHN submissions
    ProgrammingDistributed SystemsTech Industry
    What HN says

    HN commenters share its posts on reducing the desktop app's memory footprint, real-time messaging and recommendations as favorite engineering reads.

    Stats for nerds
    281HN people shared it
    289linked in comments
    7.5Kstory points
    Mar 2026last shared
    2017people per year2026

    Top posts on HN

    1. 1
      Taking PHP Seriously
      22 people · 864 points · first shared 2016 · 652 comments on HN
    2. 2
      A terrible, horrible, no-good, very bad day at Slack
      2 people · 635 points · first shared 2020 · 270 comments on HN
    3. 3
      TypeScript at Slack
      4 people · 495 points · first shared 2017 · 263 comments on HN
    4. 4
      Moving Fast and Securing Things
      4 people · 397 points · first shared 2018 · 59 comments on HN
    5. 5
      Deploys at Slack
      6 people · 375 points · first shared 2020 · 136 comments on HN
    6. 6
      Slack’s Outage on January 4th 2021
      1 person · 313 points · first shared 2021 · 106 comments on HN
    7. 7
      Slack’s Incident on 2-22-22
      2 people · 297 points · first shared 2022 · 171 comments on HN
    8. 8
      Syscall Auditing at Scale
      9 people · 288 points · first shared 2016 · 38 comments on HN
    9. 9
      Keep Webpack Fast: A Field Guide for Better Build Performance
      2 people · 224 points · first shared 2018 · 47 comments on HN
    10. 10
      Nebula, Slack's Open Source Global Overlay Network
      1 person · 213 points · first shared 2019 · 66 comments on HN

    What HN people wrote when they linked it

    • kmavmMay 2021

      I was Chief Architect at Slack from 2016 to 2020, and was privileged to work with the engineers who were doing the work of migrating to Vitess in that timeframe.

      The assumption that tenants are perfectly isolated is actually the original sin of early Slack infrastructure that we adopted Vitess to migrate away from. From some earlier features in the Enterprise product (which joins lots of "little Slacks" into a corporate-wide entity) to more post-modern features like Slack Connect (https://slack.com/help/articles/1500001422062-Start-a-direct-message-with-someone-outside-your-company) or Network Shared Channels (https://slack.com/blog/news/shared-channels-growth-innovation), the idea that each tenant is fully isolated was increasingly false.

      Vitess is a meta-layer on top of MySQL shards that asks, per table, which key to shard on. It then uses that information to maintain some distributed indexes of its own, and to plan the occasional scatter/gather query appropriately. In practice, simply migrating code from our application-sharded, per-tenant old way into the differently-sharded Vitess storage system was not a simple matter of pointing to a new database; we had to change data access patterns to avoid large fan-out reads and writes. The team did a great write-up about it here: https://slack.engineering/scaling-datastores-at-slack-with-vitess/

    • lars_franckeMay 2024

      I contacted support to opt out.. Here is the answer.

      "Hi there,

      Thank you for reaching out to Slack support. Your opt-out request has been completed.

      For clarity, Slack has platform-level machine learning models for things like channel and emoji recommendations and search results. We do not build or train these models in such a way that they could learn, memorize, or be able to reproduce some part of customer data. Our published policies cover those here (https://slack.com/trust/data-management/privacy-principles), and as shared above your opt out request has been processed.

      Slack AI is a separately purchased add-on that uses Large Language Models (LLMs) but does not train those LLMs on customer data. Slack AI uses LLMs hosted directly within Slack’s AWS infrastructure, so that customer data remains in-house and is not shared with any LLM provider. This ensures that Customer Data stays in that organization’s control and exclusively for that organization’s use. You can read more about how we’ve built Slack AI to be secure and private here: https://slack.engineering/how-we-built-slack-ai-to-be-secure-and-private/.

      Kind regards, Best regards,"

    • BillFranklinFeb 2024

      Good luck folks! I'm glad there are projects trying to solve enterprise search.

      I guess the main problem is the "private" aspect, if I've understood your goals correctly. Since most SaaS products lock down the private data unless you pay enterprise fees for compliance tooling.

      For instance, if you want to ingest data from private Slack channels or Notion groups, you have to get the users in those groups to add your bot to them, otherwise there's no way of your service getting access to the data. It's possible, just a bad UX for users.

      That said, built-in search for most SaaS products built after 2015 is generally quite good (e.g. Slack has an internal Learning to Rank service for a while now, which makes their search excellent: https://slack.engineering/search-at-slack/), so you'd be solving for companies like Webex and Confluence where their internal search is not great. At companies like Google they have internal search across products, which is the ideal end state, but have the benefit that they own the source code for most of their internal products.

    • nik_0_0Jul 2020

      Super interesting post. Following blog links, the timeline in https://slack.engineering/all-hands-on-deck-91d6986c3ee also offers a look at the play by play.

      However, as far as I can read it, they have somewhat different views on the root cause?

      "Soon, it became clear we had stale HAProxy configuration files, as a result of linting errors preventing re-rendering of the configuration."

      vs.

      "The program which synced the host list generated by consul template with the HAProxy server state had a bug. It always attempted to find a slot for new webapp instances before it freed slots taken up by old webapp instances that were no longer running. This program began to fail and exit early because it was unable to find any empty slots, meaning that the running HAProxy instances weren’t getting their state updated. As the day passed and the webapp autoscaling group scaled up and down, the list of backends in the HAProxy state became more and more stale."

      Maybe a combination of the two?

    • ContinuousNov 2017

      Use the language your team is familiar with! If it is PHP don't hesitate just because it is not "cool"..

      PHP was a great tool back in the day and today!

      PHP with a decent framework like Laravel [1] or Zend Framework [2] really works well and addresses all the features that you have listed (except the last 2).

      Uniquely among modern languages, * PHP was born in a web server *. Its strengths are tightly coupled to the context of request-oriented, server-side execution.

      We've managed to develop several complex apps over the last 10 years on PHP. For Web Socket support, we use Socket.IO or Firebase and it both really well together with PHP.

      If you choose PHP now, you are not alone. Many companies still choose PHP for their Web Application. Slack uses PHP for most of its server-side application logic [3]

      [1] https://laravel.com/
      [2] https://framework.zend.com/
      [3] https://slack.engineering/taking-php-seriously-cf7a60065329

    • gkaemmerDec 2021

      Yeah, although mostly variations on that basic premise.

      Airbnb Himeji: https://medium.com/airbnb-engineering/himeji-a-scalable-centralized-system-for-authorization-at-airbnb-341664924574
      Carta's AuthZ system: https://medium.com/building-carta/authz-cartas-highly-scalable-permissions-system-782a7f2c840f
      Slack's architecture is a bit different, but solves some of the same challenges: https://slack.engineering/role-management-at-slack/

      I've also talked to a number of teams who just implemented pattern 3 internally with a custom service. Generally they've determined it's worth it to centralize all authorization data (like roles, groups, etc) into one place and perform ALL permission checks there.

      There are also some companies building essentially Zanzibar clones, like Auth0, Authzed, Ory Keto, and a few more.

    Related

    Engineering at Metaengineering.fb.com657 people

    Sapling: A new source control system with Git-compatible client

    Engineering at Meta
    Company · last shared 2026
    Tumblr Engineeringengineering.tumblr.com36 people

    PHP 7 at Tumblr

    Tumblr Engineering
    Company · last shared 2024
    Slack Blogslackhq.com154 people

    Slack was hacked

    Slack Blog
    Company · last shared 2020
    Discord Blogdiscord.com728 people

    How Discord Stores Billions of Messages (2017)

    Discord Blog
    Company · last shared 2026
    Slack Developer Blogmedium.com/slack-developer-blog38 people

    The Slack Platform Roadmap

    Slack Developer Blog
    Company · last shared 2020
    Reddit Blogredditblog.com163 people

    How We Built r/Place

    Reddit Blog
    Company · last shared 2021
    Coder Blogcoder.com66 people

    We improved the performance of a userspace TCP stack in Go

    Coder Blog
    Company · last shared 2026
    Facebook Engineeringcode.facebook.com552 people

    Relicensing React, Jest, Flow, and Immutable.js

    Facebook Engineering
    Company · last shared 2021