Soma Capital Portfolio Jobs

Software Engineer

Seam

Seam

Software Engineering
San Francisco, CA, USA · Remote
Posted on Monday, December 27, 2021
Software Engineer at Seam (S20)
$130K - $250K  •  
API for IoT Devices
San Francisco / Remote
Full-time
3+ years
About Seam

Seam is an API for controlling a wide range of IoT devices.

Today we primarily focus on door lock and access systems. Our customers span industries, such as hospitality, real-estate, networking equipment, or even last-mile delivery, and range in size from startups-in-garage to public companies.

Across the board, their goal is the same: use code to control hardware devices, and orchestrate the physical world.

Our team is made of alums from Nest, Sonder, Stanford, Apple, Latch, Berkeley, YC, and more. We shipped millions of IoT devices and built dev tools used by every developer on earth. We are advised by the amazing Bunnie Huang and backed by Tiger Global, Root VC, founders and execs at Stripe, Plaid, and Airbnb, and other amazing angels and funds.

About You

We generally seek "sharp minds with kind souls." We prefer generalists over specialists; we move quickly, with purpose; we enjoy working with each other and aim to be the best.

About the role
Skills: JavaScript, Node.js, React, TypeScript, Internet of Things (IoT), PostgreSQL

We are looking for software engineers, preferably proficient in Typescript. We prefer people who are comfortable in full-stack role and have a couple of superhero strengths in specific parts of our stack. We play with a lot of hardware and spend a lot of time thinking about developer UX. We like written communications. We prefer to keep things simple and don't overthink first implementations. You should generally be curious, comfortable with unknown/experimentation, and able to move fast.

Below is a quick description of some of our projects.

Backend 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 API. This task involves integrating dozens of different IoT brands and their protocols (z-wave, zigbee, bacnet, OEM API...etc) and neatly organizing them amongst common functionality. We spend a lot of time building this part of our stack.

Client Libraries & APIs

Our customers tend to be quite technical and some of them even contribute code to our SDKs. In general, we spend a lot of time creating tools and client libraries to make interfacing their applications with devices easier. We strive to standardize device functions across brands and hide all the nasty complexity away. For example, below is an example from our typescript library:

import Seam from "seamapi";

// Seam will automatically use the SEAM_API_KEY environment variable if you
// don't provide an apiKey to `new Seam()`
const seam = new Seam();
const {  devices: [someLock] } = await seam.locks.list();
  
// If the lock is opened, lock it, else unlock it. Code works irrespective of the brand. 
if (someLock.properties.locked) {
  await seam.locks.unlockDoor(someLock.device_id);
} else {
  await seam.locks.lockDoor(someLock.device_id);
}

You can read more about how we strive to standardize device functions across brands here. Alternatively, you can also play with our client libraries below:

Technology

Typescript.

  • react/nextjs, and some Python & Ruby here and there.
  • postgres
  • running on Vercel with some workers on Fly.io.
San Francisco / Remote
Full-time
3+ years