Staff Software Engineer, Android
We're looking for people who are passionate about building the foundational components that underpin great Android applications. Android Application Infrastructure Engineers enable Android Product Engineers to build new features quickly, safely, and with confidence.
You've been around for a few API levels and you know how to delight Android users. As an application infrastructure engineer, you will find yourself looking deeper than the immediate bug or problem in front of you and towards how you can design a system that prevents the issue from happening in the first place. Your code will be the foundation for the core features of the Slack Android client and you will constantly be thinking of ways to make the app perform better for Slack's users. Use your extensive knowledge of building and scaling applications across a wide array of Android devices to make the Slack experience on Android be the best it can possibly be.
Slack on Android is used by millions of people every week - we need engineers who want to make that experience as enjoyable as possible.
What you should have
* Bachelor's degree in Computer Science, Engineering or related field, or equivalent training, fellowship, or work experience
* Extensive understanding of Android framework components and their respective lifecycles
* Experience with complex API and library design and implementation, with an emphasis on modularity
* Strong computer science fundamentals: data structures, algorithms and programming languages
* An excellent understanding of best practices for networking, concurrency and threading
* Current and detailed knowledge of the capabilities of different Android API levels
* A disciplined approach to development, testing, documentation and code structure in a highly collaborative team environment
* A familiarity with the Android tool ecosystem for development, testing, debugging, and performance benchmarking
* At least four years of engineering experience, a large portion of which in a team environment
* A constant desire to improve, learn more, and take things higher
* Experience using Slack and a keen interest in making it better
* Experience with reactive programing (RXJava)
* Experience developing with Kotlin
* Experience with advanced debugging tools for memory and performance issues
* A passion for building and maintaining great open source projects or otherwise contributing to the Android community
* Experience with web development, distributed systems and parallel processing
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.