Senior Software Engineer role at Relay in Raleigh

Relay in Raleigh is hiring a Senior Software Engineer

This job might already be filled.

Are you looking for your next opportunity with an innovative small company looking to do big things? If so, we are just what you are looking for! At Relay, we are looking for a Senior Software Engineer who will focus on server side development for our product offering. You will be responsible for designing, implementing and maintaining features for our enterprise focused product that is looking to change the way frontline workers communicate. From simple, effective communication to panic buttons to complex workflows, our goal is to empower active workers everywhere to stay in touch, stay safe, and stay effective. Haven’t heard of us before? You will soon! Check out our website here:
We are a small team that works best in person and believe in the power of serendipity when it comes to in-office communication - sometimes our best ideas are sparked by chats at the proverbial (or actual) water cooler. We are currently embracing a hybrid model of 3 days in-office, 2 days remote.
Desired, but not required, is experience with:

  • Functional programming concepts
  • Erlang or Elixir
  • Distributed systems
  • Key-Value databases (particularly Riak)
    The Relay product engineering team designs, develops and operates the servers and client applications which provide the core functionality of the Relay consumer and enterprise products. From Android/iOS on the phone to running a farm of Linux servers 24x7, our technology stack solves complex problems. We use a diverse set of languages, including Erlang, Java, C, C++, Javascript and the odd Python/Ruby script. We are agile in our responsiveness to user and business needs, not for the sake of adhering to agile orthodoxy, but being pragmatic.
    We bias towards action, balancing speed and technical debt. We are not afraid to take on big challenges, but we strive for the simplest solution. Quality is a constant focus. We operate what we build and hold ourselves accountable for the code we write. We operate like a startup so here you will be able make meaningful contributions to the product very quickly.
    First 90 Days
    You will start learning our software stack. If you're not familiar with Erlang, that's okay, you'll start with a deep dive into the language. Once familiar, we'll introduce you to our server-side architecture which involves technologies such as RabbitMQ, Riak, and TimescaleDB. 
    You will exercise your curiosity and ask lots of questions. You will seek out answers and strive to understand as much of the Relay product architecture as possible.
    You will receive some initial features to implement and bugs to fix, with coaching, as needed. You will be challenged and expected to use your creativity in arriving at software solutions. You will release software into production.
    At the end of this period, you will be expected to help inform technical decisions and make recommendations about implementation of new and refactoring of existing features.
    Required Qualifications
  • Bachelor's or Master's degree in Computer Science or a related field.
  • Experience programming in Erlang, Elixir, Clojure, Scala, Lisp, or any other functional programming language (or at least familiarity with functional programming concepts).
  • Experience using Linux and the Linux tool chain.