What are the responsibilities and job description for the Firmware Engineer (Embedded Systems) position at Novel Microdevices Inc.?
Location: Baltimore, MD
Industry: Mechatronics, Robotics, Medical Devices, Consumer Electronics, etc.
Job Description: We are seeking an experienced and highly skilled Firmware Engineer to work with others on an innovative, impactful medical device in a dynamic environment. The ideal candidate will have a strong background in developing embedded firmware for Arm Cortex microcontroller units (MCUs) and a solid understanding of mechatronics, sensor and actuator integration, and communication protocols. This role involves designing, developing, and debugging firmware for systems with multiple sensors and actuators. The candidate will work on cutting-edge projects, translating system requirements into robust and efficient firmware solutions. Immediate responsibilities require the individual to iteratively test and debug an existing code base. In the longer term, the individual has the flexibility to restructure the code starting from the system requirements. The individual must be comfortable working in a startup environment and be driven to do what it takes to diagnose and solve problems anywhere from the code to the hardware it controls.
Key Responsibilities:
- Analyze system requirements and develop firmware solutions for systems involving multiple sensors and actuators.
- Write, debug, and optimize C code for embedded Arm Cortex MCUs.
- Assess existing codebases, identify areas for improvement, and fix bugs.
- Implement and manage communication protocols including I2C and SPI, and UART (serial communication).
- Configure and utilize hardware timers, interrupts, and GPIOs effectively.
- Work with other engineers to develop and tune feedback control loops for sensor and actuator systems.
- Integrate and interface with sensors and actuators such as optical or magnetic angular encoders, temperature sensors, motors, LEDs, heaters, and Peltiers.
- Work closely with hardware teams to ensure seamless integration of firmware and hardware components.
- Conduct thorough testing, validation, and troubleshooting of firmware to ensure reliability and performance.
- Error detection, handling and reporting if/when hardware fails.
- Document code, processes, and design decisions clearly and concisely.
Required Qualifications:
- Bachelor’s degree in Computer Engineering, Electrical Engineering, or a related field with at least 3 years of relevant experience; OR an engineering or science degree in another field with at least 7 years of relevant experience.
- Strong proficiency in C programming for embedded systems.
- Hands-on experience with Arm Cortex MCUs.
- Solid understanding of communication protocols (UART, I2C, SPI).
- Proficiency in configuring and using hardware timers, interrupts, and GPIOs.
- Experience with PWM powered hardware such as LEDs, motors and heaters
- Experience with angular encoders (optical or magnetic) for position detection and feedback control.
- Familiarity with sensors and actuators, including heaters, Peltiers, and temperature sensors.
- Experience with oscilloscopes to observe and diagnose firmware-controlled hardware electrical signals,
Preferred Qualifications:
- Experience developing firmware for medical devices or other regulated industries.
- Experience with the STM32 MCU
- Experience with PID feedback control
- Familiarity with safety-critical or real-time systems.
- Experience with version control systems such as Git.
- Strong problem-solving skills and attention to detail.
- Excellent communication skills and the ability to collaborate across multidisciplinary teams.
How to Apply: Please submit your resume, a cover letter detailing your relevant experience, and any project examples or portfolio demonstrating your expertise.