Senior Software Engineer, Distributed Data
Slack is looking for Senior Software Engineers in Infrastructure to build, design, and operate distributed systems.
We are rapidly scaling our product and data storage infrastructure and are solving interesting engineering challenges as we operate one of the world’s largest commercial Vitess installations. If you are passionate about building and operating highly reliable and performant distributed storage systems that form an essential component of the infrastructure which powers Slack, read on.
Infrastructure at Slack
We operate at tremendous scale with systems that process millions of events per second. Our team builds and maintains the distributed data storage systems which enable highly responsive real-time messaging and infinite conversation history.
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, reliable, and scalable. In other words, Slack just works seamlessly.
We are a small team making a large impact. We rapidly iterate and work closely with other engineering teams to ensure new product features function at 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 ambitious, independent, and pragmatic.
A taste of our scale and reach:
- Users spend over 10 hours connected and 2+ hours active in Slack every work day.
- 10M+ Daily Active Users in more than 150 countries.
- 1.5 billion messages are sent per month, half of those outside the United States.
- Every day we see over 8 million simultaneously connected users, over 3.5 billion web requests, over 42 billion database queries per day, and our systems see over 1 million queries/second in our caching tier.
- We've launched initiatives like Flannel, Scaling Job Queue, Reducing Slack’s memory footprint, International Data Residency as well as scaling the Vitess data tier.
Slack has a positive, diverse, and supportive culture—we look for people who are curious, inventive, and work to be a little better every single day. In our work together we aim to be smart, humble, hardworking and, above all, collaborative. If this sounds like a good fit for you, why not say hello?
What you will be doing
- Designing, building, and operating the core data storage infrastructure used by all of Slack’s engineering teams, comprising several petabytes of online database capacity.
- Collaborating with peers across Engineering to triage bugs and troubleshoot complex production issues across the stack, especially with respect to performance, reliability, and scale.
- Actively owning features or systems and defining their long-term health, while also improving the health of surrounding systems.
- Writing, reviewing, and providing feedback on technical design proposals.
- Defining SLA/SLOs for your services, capturing and visualizing metrics in dashboards, managing code deployments, fixes and software updates, and automating our operational processes as needed.
- Participating in the team’s on-call rotation, assisting with triaging, and addressing production issues.
- Reviewing code and getting your code reviewed; mentoring and being mentored by other engineers. Teamwork is what makes the dream work.
- Doing the best work of your life, enjoy collaborating with your coworkers, and going home on time.
What you should have
- Substantial experience with distributed systems and competency in several topics fundamental to computer science: algorithms, data structures, databases, distributed systems, operating systems, and programming languages.
- A Bachelor's degree in Computer Science, Engineering or related field, or equivalent training, fellowship, or work experience.
- 5+ years experience building and operating large scale systems preferably in a virtualized environment like AWS.
- Professional experience with functional or imperative programming languages -- e.g., PHP, Python, Ruby, Go, C, or Java.
- A strong dedication to code quality, automation and operational excellence: unit/integration tests, scripts, workflows.
- Curiosity about how things work and when things break you are eager and able to help fix them.
Slack is a layer of the business technology stack that brings together people, data, and applications – a single place where people can effectively work together, find important information, and access hundreds of thousands of critical applications and services to do their best work. From global Fortune 100 companies to corner markets, businesses and teams of all kinds use Slack to bring the right people together with all the right information. Slack is headquartered in San Francisco, CA and has offices around the world. For more information on how Slack makes teams better connected, visit slack.com.
Ensuring a diverse and inclusive workplace where we learn from each other is core to Slack’s values. We welcome people of different backgrounds, experiences, abilities and perspectives. We are an equal opportunity employer and a pleasant and supportive place to work.
Come do the best work of your life here at Slack.