Software Engineer, Applications

Atomic MachinesEmeryville, CA
70d$150,000 - $180,000

About The Position

As a Software Engineer on the Applications team you will design and build the distributed software system that controls the Matter Compiler. You'll have the chance to work across layers of the stack abstracting low-level device interfaces into high-level user-facing APIs. One sprint, you might be defining machine behavior with a mechanical designer; the next, coordinating manufacturing robot behavior. You'll be joining a fast-paced, interdisciplinary environment with close collaboration across teams - including modeling and simulation, materials science, process development, and mechanical engineering - as we bring truly novel technology to life. This role is based in either our Santa Clara or our Emeryville office and is well-suited to an engineer with strong fundamentals, curiosity, and the fire to grow into systems-level thinking.

Requirements

  • 2+ years of experience (industry, internships, robotics competitions, IEEE, extracurricular projects, open source contributions etc)
  • Bachelor of Science in Computer Science, Computer Engineering, Electrical Engineering, Mechatronics Engineering, Mechanical Engineering, Robotics or a related field.
  • Multi-language programming language fluency, primarily in C++ and Python.
  • A depth and breadth understanding of how computers work, involving a variety of processors and computing environments.
  • Experience designing, building, and shipping complex software systems that control hardware, as part of a team.
  • Experience with version control and working on Linux machines.

Nice To Haves

  • Embedded programming for ARM architectures and real-time operating systems (RTOS)
  • Experience or interest in heterogeneous computing architectures (AMD ZYNQ)
  • A passion for building user-centric APIs with industry-standard tools (gRPC, Postgres, Protobuf)
  • Experience abstracting the control of manufacturing machines, material transport systems, and factory-level orchestration.
  • Experience with instrumenting software for observability and debugging.
  • Infrastructure-as-Code, and DevOps workflows.
  • Familiarity with the fundamentals of robotic systems, such as feedback control systems, motion planning, and computer vision.

Responsibilities

  • Write, operate, and debug software and firmware for complex robotics with hard real-time constraints.
  • Design software to coordinate a distributed network of devices.
  • Work at multiple levels of the software stack, designing and implementing a networked API and debugging it down to the hardware.

Benefits

  • Equity
  • Benefits

Stand Out From the Crowd

Upload your resume and get instant feedback on how well it matches this job.

Upload and Match Resume

What This Job Offers

Job Type

Full-time

Career Level

Mid Level

Industry

Publishing Industries

Education Level

Bachelor's degree

Number of Employees

11-50 employees

© 2024 Teal Labs, Inc
Privacy PolicyTerms of Service