Staff Software Engineer, Automation Infrastructure
San Francisco, CA, USA
The team behind Slack is looking for Software Engineers in Test to join the Engineering team. Slack is a fast growing enterprise software company. 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. As a member of the team, you will participate in the design and the development of innovative solutions to continuously more ambitious engineering challenges. You will be building frameworks, tools, and tests to cover the full depth and breadth of Slack’s client- and server-side functionality. This includes our desktop and web client, our iOS and Android clients, our external service integrations, the Slack platform API, and our supporting server infrastructure. Our product development team iterates rapidly and deploys new code several times each day. Our software engineers in test design automated test suites that are fast, reliable, adaptable, maintainable, and thorough. Our team's two goals: effective and trusted automated testing of Slack that already exist, and innovative responsive test approaches to new features and functionality in progress. What you will be doing:
- Participate and lead strategy and design sessions involving key technology and framework direction.
- Define automation strategies that support ongoing test strategies for new web & mobile features and enhancements to existing features
- Partner with the engineering team to integrate test suites into the continuous integration system
- Collaborate with the Customer Support team to understand common issues and incorporate them into new test scenarios
- Work with the Operations team to investigate production issues and perform root cause analysis
- Effectively communicate the quality of the product through meaningful metrics
- You are motivated by helping other engineers succeed. When things break — and they will — you are eager and able to help analyze and fix things. You like thinking of ways to improve efficiency or bring delight to the people you work with.
- You are excited by the challenge of designing and experimenting with tactical frameworks solutions for challenging new testing problems.
- You’ve been building web applications expertly 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.
- You have solid experience in creating tactical and adaptable automated test frameworks for web applications or other software.
- You have experience with continuous integration environments, writing testable software, and test driven development.
- You understand the fundamentals of git and modern principles of deploying software across distributed teams.
- You have a deep understanding of how browser-specific internet traffic works in modern web applications, including HTTP, SSL, and JSON
- You write understandable, testable code with an eye towards maintainability.
- You are a strong communicator, and have experience explaining complex technical concepts to designers, support, and other engineers.
- BS degree in Computer Science or equivalent
- Knowledge of any of these frameworks would be good, but not necessary: Selenium, Watir, Sahi, Cucumber, and Phantomjs