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 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 ten 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.