Application Engineer

 

The Role:

Slack is looking for Application Engineers to build delightful features, design and implement useful API methods, and improve the reliability of our systems as we rapidly scale our product and organization.

We build our app using reliable tools that our team knows and trusts, including PHP, 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 are looking for engineers that understand that simplicity and reliability are aspects of a system to be carefully calculated with every decision made.  We’re a collaborative team who genuinely enjoys working together to make Slack a better product.

This position is based in San Francisco and reports to one of our engineering managers.

If you were to join Slack, here are the kinds of things you would do over the course of a typical week:

  • Build a new feature, with unit tests, that can support our large-and-growing user base.
  • Whiteboard a fix to a scaling problem -- and then make it happen.
  • Talk with our frontend team to decide how an API method should work.
  • Collaborate with peers to write, review, or provide feedback on a technical design proposal.
  • Help our skilled support team triage and solve bugs.
  • Provide support to our operations staff in troubleshooting and addressing a production issue.
  • Contribute to internal tools that help us improve our development process, manage our users, and scale our systems.

Here are things that we consider critical to being an Application Engineer:

  • You have curiosity about how things work.
  • You’ve been building web applications professionally and can point to things you’ve worked on.
  • You have experience with functional or imperative programming languages -- e.g., PHP, Python, Ruby, Go, C, or Java (used without frameworks).
  • You can jump into situations with few guardrails and make things better.
  • 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 enjoy helping onboard new team members, mentoring, and teaching others.
  • You know how the web works. You know HTTP and TCP/IP and what a good API looks like.
  • You possess strong computer science fundamentals: data structures, algorithms, programming languages, distributed systems, and information retrieval.
  • You also know that the internet is a scary place and understand security concepts deeply and can put them into action to protect us and our users.
  • You know how to build reliable and safe distributed systems and understand the tradeoffs made when engineering a feature.
  • 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.
  • BSc or MSc (Computer Science or a related field) or equivalent work experience.

Bonus Points:

  • Experience using PHP without a framework
  • Solid competency with SQL (ideally in a federated database environment; MySQL a plus) and browser technologies
  • Experience with SOLR, Redis, and Java
  • Prior experience with or knowledge of large scale, high volume systems
  • Experience in a startup environment

Back to top