Seam (S20)
API for IoT Devices

Senior API Backend Engineer

$150k - $220k0.50% - 2.50%

San Francisco
Full-time
6+ years
About Seam

Build the API for the physical world

We build a REST API + gateway to let software developers connect to IoT devices and control them. For example, using our API developers can unlock doors, change temperature, read energy meters, and much more! You can see our API documentation here.

img

Customers use us for all sorts of use cases, such as programming door access to an Airbnb, monitoring temperature in storage facilities, or detect water leaks in homes and automatically create maintenance tickets.

img

Who We Are

Our team’s experience ranges from Nest, Github, to Sonder. We scaled server infrastructure at the scale of tens of millions of users and directly deployed IoT devices across thousands of locations on multiple continents.

We tend to prefer strongly typed languages, enjoy reading about obscure protocols or the infrastructure underpinnings our world. In fact, we ❤️ learning new things in general, and provide an annual stipend for education, conference travel, books...etc.

We're backed by deep-tech investors like Root Ventures, YC, Tuesday Capital...etc, and are advised by the amazing Bunnie Huang (Hacking the XBox) and Jonathan Beri (WeWork, Nest)

Who We're Looking For

Building an API to IoT devices isn't easy:

  1. First, it requires a bit of hardware to bridge some IoT protocols devices to HTTP (e.g. zigbee, zwave, bacnet...etc).
  2. Second, creating a unified interface to a zoo of devices isn't trivial.
  3. Third, many IoT devices live in a fundamentally asynchronous world making interfacing with them tricky.

Ideally, You like these sort of tough technical challenges and can travel up and down an unusually deep technical stack.

img

About the role

NOTICE: apply here or email us [email protected]. Either works :)

Senior API Backend Engineer

Our backend handles three primary tasks:

  1. Provide a public API interface to our customers that abstracts device capabilities in a manner similar to the W3C WoT schema recommendations.
  2. Broker real-time messages between this public API and our gateways + devices, and store the state of devices as well as processes events generated by those devices.
  3. Support our frontend clients that offer higher-level programming abstractions.

Task 1: Public API

Our high-level goal is to build a device/manufacturer agnostic integration layer that connects to various devices and exposes their functionality through a simple REST API and irrespective of their underlying protocols (zigbee, bacnet, thread...etc). To solve this, we like to think in abstraction layers and lean heavily on the W3C WoT Things Description abstractions. You can also check out our API docs to get a sense.

Task 2: Real-Time Message Broker

Our backend is the "glue" between the asynchronous world of IoT devices and the synchronous world of our API clients/customers. We dispatch action requests, device state changes...etc to the gateways, and receive events and state change reports from it. These then need to be processed, such as notifying our customers' webhook endpoints when certain device event occurs.

Task 3: Frontend Client Support

We maintain a number of frontend clients, such as dashboards, low-code interface...etc. For this, we have a GraphQL API that handles data changes and propagation to the relevant frontend clients.

Who We're Looking For

We seek individuals comfortable with these paradigms and who can produce clean client API abstractions that hide away the IoT mess behind the scenes. Ideally, you've done some real-time services before and have a strong data schema intuition.

In this role, you own the execution of our API and must be comfortable going up and down our technical stack, including getting familiar with low-level IoT protocols.

Our current backend is primarily written in Ruby, but have other projects that are in Python and Typescript. We've written in Scala, Swift, Go, C++, C...etc before and generally preferred strongly typed languages, and are certainly open to other approaches.

Technology

Frontend: react/node + react-native

Backend: Ruby/Grape/Node/Typescript on AWS

Gateway/Hub: typed Python / Docker (application layers)

Firmware/OS: Custom Linux Distro + various drivers in C

Other jobs at Seam

Senior API Backend Engineer
fulltime
San Francisco
Backend
$150k - $220k
0.50% - 2.50%
6+ years
Senior Full-Stack Engineer
fulltime
San Francisco
Full Stack
$150k - $220k
0.50% - 1.50%
3+ years