Software Engineer (Interfaces)

Full time, onsite, multiple positions

Have you built web based data visualization tools to drive decision making?  Chat bots for Slack or Discord? Shoreline is hiring interface & API engineers to develop the customer facing pieces of the product including metrics dashboard, CLI, and Slack & Discord chat integrations.  

What you'll be doing

  • Designing and building the customer facing operations dashboard of Shoreline including frontend and backend web development using Elixir and Phoenix.  
  • Integrating with Grafana and determining how to best visualize operational metrics.
  • Develop and extend user interfaces including web, CLI, Slack and Discord.  
  • Develop a backend web API using Elixir & Phoenix, and a GraphQL API using Absinthe.  
  • Work with customers to understand user interface issues and integrate this feedback into the product.  

You'll use standard software development best practices such as version control and participate in software development processes such as code and design reviews.  

We pay competitively. While this position can be remote, you may be asked from time to time to travel to and work from the main office located in Redwood City, CA.

What you should have

  • Deep knowledge of web technologies including http at the protocol level, sockets, and long polling.  
  • Strong knowledge of at least one programming language and a web framework for it.  
  • Desire to understand the customer's interactions with the product and how to improve it for them.
  • Some JavaScript experience and a willingness to work on frontend code.  
  • Verbal and written English fluency.
  • Competency with version control and writing tests.  

Bonus Points

  • Experience with Elixir / Erlang & OTP or another functional programming language.
  • Experience with Phoenix, Elixir's web framework.
  • Experience building and integrating with dashboards for metrics visualization and decision making.  
  • Experience programming in vanilla JavaScript along with most recent frameworks such as React.  
  • Experience with Grafana, GraphQL, or Absinthe.  
  • Experience with DevOps including debugging production systems.  

How To Apply

If interested, please design and implement a solution to the following problem.   Please use source control for your solution and include a link to the repository.  If you do not want to apply using this web system, please email the solution (attach or include link to repo/gist) and a resume to Please include "Software Engineer - Interfaces" in the subject of your email.

Please complete the solution to the following problem in the language of your choice.  


You are building a web based metrics visualization dashboard.  Users can query time series data on the dashboard by looking up series by id or tag.  They can visualize multiple series at once.  They can window queries by time range.  They can specify derived series such as average with a time granularity.    

Design and implement the http based API for this metrics dashboard.  Describe the API calls and interface using REST, GraphQL, or some other mechanism.  

For your implementation, please use the language and framework of your choice. Please represent calls to an underlying service or data store for metrics data with dummy calls. Please describe your requirements for the service or data store that supplies the data to your dashboard web backend.  

Please describe user interface for the frontend of the dashboard. What does it look it?  What tools would you use to build it?    

If you have any clarifying questions, please email:

Interview Process

  1. Submit your solution and resume on this website or to
  2. Informational phone screen where we can get to know each other, ask/answer any questions, and evaluate fit (0.5hr).  
  3. Technical phone screen with live coding (1hr).
  4. Final round of technical interviews with the team, live coding and other questions (~4hrs).  

We will get back to you promptly after each step in the process.