(Senior) Application Engineer - Search, Learning & Intelligence
The Search, Learning, & Intelligence (SLI) team at Slack is looking for experienced application engineers to help build features that make Slack smarter the more companies use it. Our goal is to help users feel less overwhelmed by Slack’s information avalanche and give them superpowers to find fast answers — whether from their coworkers, search, or bots. We’re hiring engineers to help us build scalable, reliable data-driven product features and the services and infrastructure that back them.
We are also very nice people and happy to help you learn what you need to know to work at Slack.
The work will span many disciplines: search & information retrieval, recommendation systems, natural language processing, analytics, and machine learning. You do not need to have prior experience in any of these fields, but you should be excited to learn more about them. The main tools we use to build Slack are PHP, Hack, MySQL, React, Kafka, and Linux — reliable technologies that the Slack team knows well and trusts. To thrive at Slack you should be comfortable diving into complex, rapidly-evolving systems, rolling up your sleeves, and finding ways to make things better.
If you were to join Slack, here are the kinds of things you would do over the course of a typical week:
- Identify a scaling problem affecting hundreds of thousands of users, whiteboard to fix it, and then make it happen
- Work with our front-end team to decide how an API method should work
- Help our skilled support team triage bugs and troubleshoot production issues
- Analyze our data pipelines, find opportunities to increase efficiency and reliability, and implement them
And --- with our support --- here are the kinds of things you’d be doing six months after you joined:
- Analyze our message corpus to come up with possible solutions for a quality problem, and experiment with a new algorithm
- Ship new features that add a layer of intelligence for our large-and-growing user base
- Discuss the most efficient way to implement a machine learning model at scale, draft a proposal describing the service, circulate it within the engineering organization, and then make it happen
Here are things that we consider critical to being an Application Engineer in SLI:
- You’ve been building applications professionally for 4+ years
- You have an academic background in computer science (BS or MS) or equivalent work experience
- You are curious about how things work: mysterious, intermittent problems in large systems intrigue you
- You have a generalist skillset spanning infrastructure to front-end development
- You are a good programmer. You have extensive experience with modern programming languages like Python, Ruby, Go, C/C++, or Java
- You possess strong computer science fundamentals: data structures, algorithms, programming languages, and distributed systems
- You are a strong communicator: explaining complex technical concepts to designers, support specialists, and other engineers is no problem for you
- You know how the web works, inside and out
- You have built large-scale, high-volume distributed systems in the past and understand the tradeoffs between reliability, security, and performance
- When things break -- and they will -- you are eager and able to help fix them
- You are someone that others enjoy working with due to your technical competence and positive attitude
- A solid grasp of statistics and probabilistic models (regression, experiment design, Bayesian methods)
- Experience in fast-growing start-up environments
- Experience with SOLR, Elasticsearch, Redis, Scala, Hadoop, or Spark
- Experience with text mining/parsing, classification, ML, or neural networks
Meet Some of Slack's Employees
Sr. Customer Success Manager
Gina works with Slack’s clients at a high level to ensure that they’re getting the most value from the product and having a positive experience overall.
Back to top