Senior Software Engineer - Internal Tools
About the Team
The Slack Internal Tools team makes the development and release of new code safe and enjoyable for our developers. We maintain Slack's deploy pipeline, continuous integration infrastructure, and code review process. We also maintain Slack's task tracking system, allowing everyone from Product Design to our IT Helpdesk to collaborate on ensuring the right work is prioritized.
Slack is the fastest growing enterprise software company ever. Our customers expect Slack to be exceptionally reliable and fast, and we operate at tremendous scale with systems that process millions of events per second. But we're also iterating on those systems rapidly as we continue to evolve how work happens. We average several large feature releases every week, with over a hundred individual deployments to our major systems every workday.
We are a small team making a large impact; every improvement we ship has a corresponding impact on the velocity of the company as a whole. We have a strong commitment to quality, and understand that we're now working at scale where a one-in-a-thousand edge case is going to happen every week. We are an inclusive team with deep empathy for our colleagues.
Our tools are written using a combination of PHP/Hack, Go, MySQL and Redis. We run on Linux servers managed with Chef and Terraform. These are reliable tools that the wider Slack engineering team knows well and trusts. Where possible we build on top of existing systems including Github, Consul and Jenkins.
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?
About the Role
This is a senior engineering position based in San Francisco
What you will be doing
- Building a new capability into our application configuration system
- Adding more automation to our code review pipeline to avoid common errors in code
- Participating in the team on-call rotation, and respond to an out-of-hours outage preventing new code deployments
What you should have
- You are motivated by helping other engineers succeed. When things break — and they will — you are eager and able to help fix things. You like thinking of ways to improve efficiency or bring delight to the people you work with
- You are a strong communicator. Explaining complex technical concepts to designers, support, and other engineers is no problem for you
- You enjoy helping onboard new team members, mentoring, and teaching others
- You are able to mentor and model best practices for unit tests, code review, design documentation, debugging, and troubleshooting
- You also know that the internet is a scary place and understand security concepts deeply and can put them into action to protect us and our users
- You are someone that others enjoy working with due to your positive attitude and technical competence
- You have curiosity about how things work
- Firm grasp of computer science fundamentals: data structures, algorithms, programming languages, distributed systems, and information retrieval
- Bachelor's degree in Computer Science, Engineering or related field, or equivalent training, fellowship, or work experience
- Experience with functional or imperative programming languages -- e.g., PHP, Python, Ruby, Go, C, or Java (used without frameworks)
- Experience deploying, operating and debugging server software on Linux at scale
- You’ve been building web applications professionally for a while and can point to things you’ve worked on. You know how the web works. You know HTTP and what a good API looks like
- Detailed knowledge of the git version control system
- Proven competency with Jenkins and Github’s APIs
- Experience using PHP without a framework
- Experience using deployment automation/configuration management, especially Chef
- Prior experience with or knowledge of large scale, high volume systems
Slack is the collaboration hub of choice for companies of all sizes, all across the world. By using Slack, they ensure that the right people are always in the loop, that key information is always at their fingertips, and new team members can get up to speed easily. With Slack, teams are better connected.
Launched in February 2014, Slack is the fastest growing business application ever and is used by thousands of teams and millions of users every day. We currently have nine offices worldwide, in San Francisco, Vancouver, Dublin, Melbourne, New York, London, Tokyo, Toronto and Denver.
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. Pursuant to the San Francisco Fair Chance Ordinance, we will consider for employment qualified applicants with arrest and conviction records.
Come do the best work of your life here at Slack.