About the role:
Samsara’s cloud-connected sensor platform collects observations about the world in near real-time. Samsara builds an extensive set of products, including battery-powered, wireless sensors, Linux-based IoT gateways, and Internet-connected dashcams. These devices are the building blocks Samsara uses to construct enterprise solutions for a wide range of verticals, including commercial fleet management and industrial monitoring. Through a unique integration of sensor data such as GPS, acceleration, temperature, video, and more, we enable our customers to gain greater insights into operations, identify and eliminate inefficiencies, and react to alerts all in near real-time.
As a Firmware Software Engineer at Samsara, you will develop software that runs on millions of devices, deployed by our industrial and enterprise customers. You’ll tackle challenges including evaluating and selecting hardware components, bringing up new hardware platforms and sensors, building systems to gather data and detect meaningful events, and structuring recorded data to allow efficient analysis across thousands of devices while providing deep insights into individual events.
We use C for our MCU-based platforms, Golang for embedded applications on Linux-based gateways and backend services, Google protocol buffers to structure data, and various AWS technologies to process and store data. Experience with these exact technologies is not required.
This is a hybrid position requiring 3 days per week in our San Francisco office and 2 days working remotely.
You should apply if:
- You want to impact the industries that run our world: Your efforts will result in real-world impact—helping to keep the lights on, get food into grocery stores, reduce emissions, and most importantly, ensure workers return home safely.
- You are the architect of your own career: If you put in the work, this role won’t be your last at Samsara. We set up our employees for success and have built a culture that encourages rapid career development, countless opportunities to experiment and master your craft in a hyper-growth environment.
- You’re energized by our opportunity: The vision we have to digitize large sectors of the global economy requires your full focus and best efforts to bring forth creative, ambitious ideas for our customers.
- You want to be with the best: At Samsara, we win together, celebrate together and support each other. You will be surrounded by a high-caliber team that will encourage you to do your best.
In this role, you will:
- Participate in system architecture design and component selection: partner with electrical engineers in selecting components based on system and customer needs, prototyping for in-house and beta customer use.
- Bring up new hardware platforms: configuring I/O, debugging interfaces such as SPI, I2C, UART, CAN, and ADC, testing connectivity, validating design, and debugging system initialization.
- Implement peripheral drivers, secure bootloaders and device firmware updates, and core management layers (power manager, connectivity manager, etc).
- Design protocols and implement efficient hardware management to optimize the energy consumption of battery-powered sensors and gateways.
- Work cross-functionally with different stakeholders across product, full-stack, and quality teams to deliver reliable high-quality embedded software.
- Champion, role model, and embed Samsara’s cultural principles (Focus on Customer Success, Build for the Long Term, Adopt a Growth Mindset, Be Inclusive, Win as a Team) as we scale globally and across new offices.
Minimum requirements for the role:
- Solid C programming skills.
- At least 3 years of experience working on MCU-based systems.
- Experience developing, debugging, testing, and shipping products.
- Hands-on debugging skills with test equipment such as oscilloscopes, logic analyzers, RF and network simulators.
- Be excited about sensors, connectivity protocols, distributed systems, and their application to solve real-world problems.
- Thrive in an environment that requires rapid deployment and product iteration based on customer feedback while focusing on automated testing and code quality.
- Evaluate how choices at each layer of the stack affect other layers and the customer experience.
An ideal candidate also has:
- Experience working in bare metal and RTOS-based systems such as Zephyr and/or FreeRTOS.
- Strong working experience in one or more core technologies such as BLE, GPS, LTE Cat-M1, or CAN.