Design, develop, and test firmware custom home goods systems. Role involves working on new products, enhancing existing products, and developing test fixtures, supporting various functional units.
Essential Functions
- Designing and implementing embedded software for motorized shade systems.
- Conducting and participating in technical and peer code reviews, providing constructive feedback.
- Creating and executing test plans, unit tests, and automated test fixtures to ensure software quality and integrity.
- Using project management tools to track progress and provide updates to stakeholders.
- Documenting all aspects of software designs, including architecture diagrams, design decisions, and state/sequence diagrams.
- Assisting cross-functional teams with troubleshooting, communicating solutions, and deploying fixes.
Qualifications and Key Skills
Candidates should possess the following qualifications and skills:
- Expert proficiency in C/C++ programming for embedded systems.
- Strong understanding of ARM architecture and System-on-Chips (SoCs).
- Proficiency with wireless IoT protocols such as BLE, Zigbee, Z-Wave, Thread, or similar.
- Experience with real-time operating systems like Zephyr or FreeRTOS.
- Solid understanding of analog and digital circuits.
- Proficiency with distributed version control software (e.g., Git, Mercurial).
- Familiarity with embedded Linux and scripting languages (e.g., Python, Perl, Bash).
- Knowledge of bootloaders, communication protocols (e.g., UART, I2C, SPI, USB), and state machine design.
- Basic knowledge of continuous integration workflows and tools (e.g., Docker, Podman).
- Familiarity with ARM Cortex-M (Nordic, ST) and/or RISC-V (ESP32).
- Basic understanding of cloud platforms such as AWS, GCP, and/or Azure.
Education and Experience
- Bachelor's degree in Computer Engineering, Computer Science, Electrical Engineering, or a related field.
- A minimum of 4 years of professional experience in embedded systems.
- Experience working with consumer IoT devices is desirable.