We build our app using reliable tools that our team knows and trusts, including PHP/Hack, Java, MySQL, and Linux. Expertise in these areas is a huge plus, but having familiarity with other common web languages (such as Python or Ruby) and other relational databases are fine substitutes. We're a collaborative team who genuinely enjoys working together with a cross-functional team of product managers, designers, frontend, iOS, Android, automation, and quality engineers to make Slack a better product. We are looking for engineers that understand that simplicity and reliability are aspects of a system to be carefully calculated with every decision made.
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 3.5 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 have 8.8M+ app installations with 155,000 weekly active developers building on the developer platform.
- 90% of our paid teams on Slack actively use apps.
This is a full time senior engineering position based in San Francisco, California.
What you will be doing
- You'll brainstorm with Product Managers, Designers and Frontend Engineers to conceptualize and build new features for our large (and growing!) user base.
- You'll produce high-quality results by leading or contributing heavily to large cross-functional projects that have a significant impact on the business.
- You'll actively own features or systems and define their long-term health, while also improving the health of surrounding systems.
- You'll assist our skilled support team and operations team in triaging and resolving production issues.
- You'll mentor other engineers and deeply review code.
- You'll improve engineering standards, tooling, and processes
What you should have
- You've been building web applications professionally for 4+ years.
- You have experience with functional or imperative programming languages -- e.g., PHP, Python, Ruby, Go, C, or Java.
- You can lead technical architecture discussions and help drive technical decisions within your team.
- You write understandable, testable code with an eye towards maintainability.
- You are a strong communicator. Explaining complex technical concepts to designers, support, and other engineers is no problem for you.
- You possess strong computer science fundamentals: data structures, algorithms, programming languages, distributed systems, and information retrieval.
- You have a bachelor's degree in Computer Science, Engineering or related field, or equivalent training, fellowship, or work experience.