CharlesM

CharlesM

Senior Embedded Software Engineer - SmartRent, Remote, USA

SmartRent is made up of passionate, diverse, and innovative professionals who enjoy working together. We are on a mission to make smart home technology accessible for everyone by embracing our shared guiding principles. We don’t take shortcuts; we do the hard work. We own our outcomes. We win as a team. We value authenticity and others’ perspectives. We believe solving problems starts before we write any code.

We are leading the way for smart technology for housing, primarily multifamily apartment complexes. It’s a really fun intersection of physical hardware, such as locks and thermostats, and software that can control the devices; we provide applications for both the property staff and also the residents of the properties. We started in 2017 and have had explosive growth ever since — going public in 2021. We have deployed over 900,000 units that contain over one million IoT devices and ingest billions of events from those devices in a given month.

About us

My name: Charles Martinez
My position: Talent Acquisition Partner
Company name: SmartRent
Company website: https://smartrent.com/
Company headquarters (country): USA
Company info and history (how you’re using Elixir etc): Elixir is our primary backend language of our techstack. Our extensive product line consists of web and mobile software for property owners and managers, residents and system installers as well as connected hardware that remotely monitors and controls smart locks, readers, gates, lights, thermostats, outlets, cameras and sensors. SmartRent streamlines operations for community staff, enhances the resident experience and provides property owners with a digital layer of asset protection.

The Embedded Software Engineer joins a small group of Elixir developers who use Nerves to create firmware for SmartRent devices such as Z-Wave central controllers (hubs) and access control systems. In short, we bridge the gap between hardware and software to facilitate communication between smart devices and SmartRent Web services. Don’t let the “embedded” in Embedded Software Engineer scare you. Thanks to Nerves, we are first and foremost Elixir developers!

About the job

Job title: Senior Embedded Software Engineer
Job description: Job Application for Senior Embedded Software Engineer at SmartRent
Salary range: $130,000 - $175,000n plus 10% performance based bonus every year and RSUs (restricted stock units). We offer a comprehensive and competitive benefits package designed to support your well-being and future. For our US employees, this includes medical, dental, vision, and life insurance with low deductibles and 75-100% employer contributions.

Qualifications or experience required:

  • 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.

What the successful job applicant will be working on: Day-to-day work involves significant team collaboration. The role spans from firmware development all the way up to backend systems that the firmware must interact with. Lower-level work occurs weekly rather than daily, though not necessarily on a predictable schedule. The person floats between small groups of 2 to 3 engineers working on targeted projects or initiatives for a few months at a time. Primary focus areas include firmware delivery, fleet observability, firmware development, and installation flows for hardware devices into new units.

Remote job: Yes, USA only

About the interview process

Step 1: Recruiter Screen (30-45 mins)

Step 2: Technical Interview w/ Hiring Manager (45 mins)

Step 3: Interview w/ teammates (60 mins)

Step 4: Interview w/ Cross-Functional Engineering Director (30 mins)

First Post!

keaganluttrell

keaganluttrell

@CharlesM – this looks exciting! I went ahead and applied, thanks for posting!

Where Next?

Popular in Jobs Top

JEG2
Introductory paragraph icanmakeitbetter is hiring a fourth remote Web Developer to help us maintain and improve old products, design and...
New
rockwood
Shape the future of land investing, wherever you are Join our fully-remote team building the most incredible product for land investors. ...
New
emily-smith-felcana
I’m Emily from Felcana, the first vet-led, vet-focused pet tech start up (say it fast!) Introductory paragraph Felcana are the first ve...
New
jeffdeville
Project This project has 2 main things going for it: It’s a phoenix app that requires common, but non-trivial features. eg: White lab...
New
wolf4earth
Introductory paragraph 7Mind empowers people and organizations alike to lead healthy, happy and purpose-driven lives since 2014. With mo...
New
eclark
About us My name: Elliott My position: CEO/Founder Company name: Batteries Included Company website: https://www.batteriesincl.com/ ...
New
joe
Introductory paragraph We are a young agriculture tech (AgTech) start-up with the vision of sustainable farming through intelligence sol...
New
gabrielpoca
We are looking for talented individuals to join our team at Subvisual. If you are passionate about Elixir and eager to work on cutting-e...
New
glennr
About us Bramble is a platform for banking/insurance/BPOs to improve how they manage their operations. We have traction and are growing...
New
bengerson
Introductory paragraph Hello Elixir enthusiasts! We’re excited to announce a great opportunity at Candidately. We’re currently seeking a...
New

Other popular topics Top

marius95
Hello everyone, I try to use an Javascript Event Handler in my root.html.leex file. Therefore I created a function in the app.js file: ...
New
9mm
I am constructing a JSON object (map) and I need to conditionally set a field. I’m trying to write proper elixir-way code… and I’m at a l...
New
Harrisonl
We have an ECS cluster with 4 services, where each task joins a single cluster, via discovery ECS discovery service. Currently when I de...
New
vonH
When I run the Plug and I recompile I wind up having to use Ctrl C to quit iex and start again. Witht the help of rlwrap I can use the cu...
New
gausby
I asked this very same question on twitter and got some interesting feedback, but I thought it would be a good question to ask here as we...
1207 39297 209
New
bsollish-terakeet
Credo is smart enough to check for (something like) this: assert length(the_list) == 0 with this response: Checking if an enum is empt...
New
axelson
This post is a wiki (feel free to hit the edit button near the bottom right of this post to add your own changes!) This post collects co...
239 47930 226
New
WestKeys
Currently suffering from paralysis by [HTTP client] analysis. This is rather unusual in Elixirland as there tends to be consensus on the ...
New
PeterCarter
There are pre-rolled solutions for other frameworks that do work. However, Phoenix does not seem to have these. Have people had good expe...
New
jononomo
For some reason my phoenix channels are working for me in my local dev environment, but as soon as I deploy via Docker, I get a 403 error...
New

We're in Beta

About us Mission Statement