-
Firmware Engineer
- SCRAM Systems (Cincinnati, OH)
-
Job Summary:
We are seeking a skilled Embedded Software Developer to join our team. The ideal candidate will have experience in developing firmware and software for embedded systems, working closely with hardware engineers to create efficient, reliable, and optimized solutions in an automotive environment. This role involves designing, coding, testing, and debugging software for microcontrollers and embedded platforms across various applications. Experience with Embedded Linux and CAN is required. Our products are automotive in nature, and strong expertise in CAN and LIN communication protocols is essential.
Duties/Responsibilities:
+ Develop and maintain firmware for embedded systems in C.
+ Work with microcontrollers (ARM, STM32, LPC, etc.) and real-time operating systems (RTOS).
+ Design and implement communication protocols (UART, SPI, I2C, CAN,?LIN,?USB, etc.).
+ Optimize code for performance, power efficiency, and reliability.
+ Debug and troubleshoot hardware/software integration issues using oscilloscopes, logic analyzers, and other tools.
+ Write and maintain technical documentation for designs and implementations.
+ Develop and customize Embedded Linux distributions, device drivers, and kernel modules.
+ Work with Yocto, Buildroot, or similar build systems to create and maintain Linux-based embedded solutions.
+ Configure and optimize Linux kernel and root filesystem for performance and security.
+ Integrate and debug applications running on Embedded Linux platforms.
+ Work with cross-compilation toolchains and embedded development environments
+ Collaborate with hardware and software teams to deliver high-quality embedded products.
Skills/Abilities:
+ Strong proficiency in C programming for embedded systems.
+ Experience with embedded debugging tools and methodologies.
+ Hands-on experience with Embedded Linux, including kernel configuration, device tree modifications, and driver development.
+ Knowledge of real-time operating systems (FreeRTOS, CMX-RTOS, etc).
+ Familiarity with version control systems.
+ Understanding of low-level hardware interactions, memory management, and peripheral configurations.
+ Knowledge of wireless communication protocols (Bluetooth, Wi-Fi, etc).
+ Experience with safety-critical or automotive embedded systems.
Education and Experience:
+ Bachelor’s or Master’s degree in Electrical Engineering, Computer Science, or related field Preferred, not required.
+ 5+ years of experience in embedded software development.
Physical Requirements (With or without reasonable accommodation):
+ Sitting: Over 70%
*** All qualified applicants will receive consideration for employment without regard to race, color, religion, sex, sexual orientation, gender identity, national origin, disability, or veteran status.
-