Software Engineer

San Francisco, CA, United States

Standard Cognition


Role Location

  • San Francisco, CA, United States

Employees

26 - 50 people

Address

965 Mission St Fl 7
San Francisco, CA, 94103, US

Tech Stack

  • Python
  • Tensorflow
  • OpenCV
  • Cython
  • JavaScript
  • React
  • React Native
  • Flask
  • Rust
  • Lustre

Role Description

Responsibilities: Architect, design, build and maintain the distributed high performance engine that supports our real-time machine learning inference pipeline Investigate and develop fault tolerance mechanisms to improve reliability of client installs Coordinate with internal teams for feature requirements, integration, deployment constraints and reliability Optimize data serialization methods to improve training times and usability by other teams. Write property, integration, unit, performance regression tests. Optimize hardware utilization (CPU, GPU, Memory)

Requirements: Rust Distributed systems and fault tolerance Deep knowledge of Linux systems programming: IO multiplexing, socket programming, memory mapped IO, etc Expert level experience with concurrency primitives: threads, semaphores, mutexes and their tradeoffs Lock-free and wait-free data structures Functional design patterns

Nice to have: x86-64 Architecture Memory consistency models CUDA/OpenCL Experience High performance computing Edge computing Experience with cluster schedulers/resource managers such as Mesos, Slurm, Torque or Kubernetes Experience with parallel programming tools such as MPI, Spark, actor models like Erlang or Akka Python

About Standard Cognition

We build a machine vision solution that allows automatic and instant checkout in stores. Shoppers go to a store, grab what they want, and then leave. No lines and no scanning.

Company Culture

We value independence, candor, and grit. We're solving hard problem and we value people that love taking ownership and drilling into finding a solution. We also value and encourage failure. Most approaches to the problems we work on will fail. Sharing those failures is an important way to move the entire team forward. Because of that we value people's implementation of approaches, not whether those approaches pay off.

Interested in this role?
Skip straight to final-round interviews by applying through Triplebyte.