Software Engineer - Search, Learning and Intelligence
Slack is looking for engineers to join our Search, Learning & Intelligence (SLI) team headquartered in NYC. Our team's mission is to make the product smarter and companies dramatically more productive the more they use Slack. The work will span many disciplines: search/information retrieval, recommendation systems, machine learning, data science/quality, and natural language processing/understanding.
Our team is team responsible for building a fast, personalized search experience across all of the knowledge within Slack: messages, people, channels, files, links, and more. Slack should grow to feel like the augmented memory for the entire company. We also will transform Slack into a chief of staff that helps people focus on the most important conversations, catch up quickly, and discover discussions they would've otherwise missed. You’ll be one of the founding members of the team and office, which just started up this year and is already almost 10 people.
The main tools that we use to build Slack are PHP, MySQL, and Linux -- reliable tools that the Slack team knows well and trusts. Our backend data infrastructure is built on Kafka, Hadoop, Hive, Presto, Spark, and MySQL.
If you were to join Slack, here are the kinds of things you would do over the course of a typical week:
- Identify a quality problem, analyze our message corpus to come up with new ideas, and experiment with a new algorithm.
- Ship new features that add a layer of intelligence for our large-and-growing user base.
- Dig into data—from usage behavior to experimental results to ranking side-by-sides—to inform technical and product direction.
- Whiteboard a fix to a scaling problem -- and then make it happen.
- Talk with our front-end team to decide how an API method should work.
Here are things that we consider critical to being an Search, Learning, and Intelligence Engineer:
- You have at least two years of experience as a professional software engineer.
- You are curious about how things work.
- You have a professional/academic background in at least one of search, ML, or data science broadly speaking. If not, you are very interested in learning and you have a generalist skillset spanning infra to front-end development.
- You’re a good programmer. You have experience with functional or imperative programming languages, eg. PHP, Python, Ruby, Go, C, or Java (used without frameworks)
- You can jump into situations with few guardrails and make things better.
- You have solid computer science fundamentals: data structures, algorithms, programming languages, distributed systems, and information retrieval.
- You write understandable code with an eye towards maintainability.
- You are a good communicator. Explaining complex technical concepts to designers, support, and other engineers is no problem for you.
- You know how the web works and what a good API looks like.
- When things break -- and they will -- you are eager and able to help fix things.
- You are someone that others enjoy working with due to your technical competence and positive attitude.
- Academic background in computer science (BSc or MSc)
- Experience with SOLR / Elastic, Redis and Java
- You’ve built large-scale data pipelines and have experience with MapReduce/Hadoop/Spark.
- A grasp of basic statistics (regression, experiment design)
Back to top