SmartRent is revolutionizing how people live and work with a platform designed for the rental housing industry. The Embedded Software Engineer is responsible for developing and maintaining firmware for SmartRent devices, enabling reliable communication between field devices and cloud-based systems.
Responsibilities:
- Lead medium- to large-scale development efforts across the embedded stack, from firmware through device interfaces, operating with a high degree of autonomy while collaborating with cross-functional teams
- Design, develop, and maintain firmware for SmartRent IoT devices using Elixir and the Nerves framework
- Lead the bring-up of new hardware platforms, including driver development, peripheral integration, and system validation
- Develop and maintain device-local user interfaces running on embedded hardware using technologies such as Phoenix, Flutter, and gRPC
- Integrate third-party systems, including HVAC, access control, and Z-Wave platforms, by interpreting vendor documentation and supporting required communication protocols
- Develop and maintain automated tests and supporting documentation to ensure system reliability and prevent regressions across deployed devices
- Develop project timelines, manage deliverables against defined milestones, and communicate risks, dependencies, and requirement changes proactively
- Support team development through code reviews, technical guidance, knowledge sharing, and mentorship of less experienced engineers
- Contribute to internal tooling, shared engineering resources, and open-source initiatives aligned with SmartRent’s technical ecosystem
Requirements:
- Minimum of 4 years of hands-on software development experience
- Proficiency in Elixir or Erlang/OTP, with working knowledge of the BEAM runtime, or demonstrated ability to learn and apply functional programming concepts
- Experience with, or demonstrated interest in, embedded Linux systems development
- Working knowledge of Linux internals, including device trees, kernel configuration, system boot processes, and shell tooling
- Demonstrated ability to deliver projects from design through deployment with minimal supervision
- Strong written and verbal communication skills, with the ability to collaborate effectively across teams
- Demonstrated ability to learn and apply new tools, languages, and technologies as required
- Must be authorized to work in the United States without the need for employer sponsorship now or in the future
- Experience with the Nerves framework or embedded Elixir development
- Experience with Phoenix, LiveView, or other Elixir-based web frameworks
- Working knowledge of C/C++ for hardware-adjacent development or driver support
- Familiarity with IoT communication protocols, such as MQTT, Z-Wave, or BLE
- Exposure to HVAC or building automation systems
- Experience integrating access control systems or similar hardware-based platforms
- Ability to read and interpret hardware datasheets and schematics at a foundational level
- Experience contributing to open-source projects or shared technical libraries
- Familiarity with Amazon Web Services (AWS), particularly in IoT-related environments