Build the infrastructure powering work.
Slack enables people all over the world to communicate and collaborate together. Teams of all scales — from the world’s largest public companies to the smallest of startups — use Slack to get work done, so we take performance and reliability very seriously. A taste of our scale:
- The average user spends over 10 hours connected and 2.5 hours active in Slack every single day
- 1.5 billion messages are sent per month, half of those outside the United States
- Every day we see over 3.5 million simultaneously connected users, over a billion web requests, and 10s of billions of database queries.
For millions of people, Slack is the primary communication tool they use at work all day long. They expect it to be exceptionally reliable and fast, all the time.
Infrastructure at Slack
We operate at tremendous scale with systems that process millions of events per second. Our team maintains and builds the lower levels of our stack, including:
- Edge services
- Real-time messaging
- Asynchronous background job processing
We know we’ve done our job correctly when none of our users think about us. We don’t typically ship new user-facing features, but rather ensure our systems are incredibly performant, highly available, and scalable. In other words, Slack just works seamlessly.
Slack's API and web backend is built on PHP/Hack, and our backend services are written in Java and Go. Our data infrastructure is built on Kafka, Hadoop, Hive, Presto, Spark, and MySQL. Our Chief Architect, Keith Adams, spoke about our architecture at QCon in 2016.
We are a small team making a large impact. We rapidly iterate and work closely with other teams in engineering to ensure we build resilient systems that can scale. We have a strong commitment to quality and understand that simplicity and reliability should be primary aspects of the systems that we build. We are scrappy, independent, and pragmatic. Infrastructure is a diverse and inclusive team that treats their colleagues exceptionally well.
If you were to join Slack, here the types of things you would do over the course of a typical week:
- Design, build, ship and maintain the core infrastructure used by all of Slack’s engineering teams.
- Help our skilled operations team triage bugs and troubleshoot complex production issues across the stack, especially with respect to performance.
- Whiteboard a fix to a scaling problem — and then make it happen.
- Collaborate with peers to write, review, or provide feedback on a technical design proposal.
- Work on projects such as Getting to Slack faster with incremental boot and Reducing Slack’s memory footprint.
You may be a fit for this role if you:
- Bachelor's degree in Computer Science, Engineering or related field, or equivalent training, fellowship, or work experience.
- You possess strong Computer Science fundamentals: data structures, algorithms, programming languages, distributed systems, and information retrieval.
- You’ve been building large scale systems professionally for 3+ years and can point to things you’ve worked on.
- You have experience building reliable and safe distributed systems and understand the tradeoffs made when engineering a feature.
- You know how the web works, can dive into HTTP and TCP/IP, and can judge what a good API looks like.
- You can jump into situations with few guardrails and make things better.
- You write code that can be easily understood by others with an eye towards clarity and maintainability.
- You are a very strong communicator. You’re excited to explain complex technical concepts and share your knowledge with different audiences.
- You are curious how things work and when things break you are eager and able to help fix them.
Infrastructure is a diverse and inclusive team that treats their colleagues exceptionally well. We are happy to help you learn what you need to know; we encourage and support each other’s growth and thus it’s not expected that any single candidate would have expertise across all of these areas.
We look forward to working with you!
Meet Some of Slack's Employees
Director, Application Engineering
Joann is responsible for running a team of eight Slack Application Engineers. She works hard to support them in their positions and career trajectories and ensures that they have everything they need to build awesome products.
Back to top