Embedded Software Developer
Enin Systems
Jackson Township, United States of America
15 days ago
Role details
Contract type
Permanent contract Employment type
Full-time (> 32 hours) Working hours
Regular working hours Languages
English Experience level
SeniorJob location
Jackson Township, United States of America
Tech stack
Abstraction Layers
Agile Methodologies
Systems Engineering
ARM
AUTomotive Open System Architecture (AUTOSAR)
Bash
Booting (BIOS)
UClibc (C Standard Library)
C++
Code Review
Communications Protocols
Computer Security
Computer Programming
Continuous Integration
Software Debugging
Device Drivers
Microprocessors
Memory Management
Embedded C
Linux on Embedded Systems
Embedded Software
Ethernet
Firmware
FreeRTOS
Joint Test Action (IEEE Standards)
Python
Linux kernel
PCI Express
QNX (Software)
Systems Development Life Cycle
Real-Time Operating Systems
Shell Script
Subversion
Systems Integration
Universal Asynchronous Receiver/Transmitter
USB
VxWorks
Serial Peripheral Interface
PIC Microcontroller
Real Time Systems
Gitlab
GIT
Lauterbach Debugger
Yocto
Gitlab-ci
Information Technology
U-Boot
Docker
Jenkins
Job description
- Design, develop, and maintain embedded software and firmware.
- Develop device drivers, BSPs, and hardware abstraction layers.
- Perform hardware/software integration and debugging.
- Optimize firmware for performance, memory usage, and power consumption.
- Develop and maintain communication protocol stacks.
- Troubleshoot complex embedded system issues.
- Participate in architecture, design reviews, and code reviews.
- Collaborate with hardware, QA, and system engineering teams.
- Create technical documentation and support product releases.
- Mentor junior engineers and contribute to best engineering practices.
Requirements
We are seeking a Senior Embedded Software Developer with 10+ years of experience in designing, developing, and testing embedded software for real-time systems. The ideal candidate will have extensive experience in embedded C/C++, RTOS, device drivers, firmware development, and hardware-software integration. Experience working with microcontrollers, communication protocols, and debugging tools is essential., * 10+ years of experience in Embedded Software/Firmware Development
- Strong programming experience in Embedded C and C++
- Hands-on experience with RTOS (FreeRTOS, VxWorks, QNX, Embedded Linux, Zephyr)
- Strong knowledge of Microcontrollers/Microprocessors (ARM Cortex, STM32, NXP, TI, Renesas)
- Experience with Board Support Package (BSP) and Device Driver Development
- Experience in Firmware Development
- Strong understanding of Memory Management, Interrupts, and Bootloaders
- Experience with UART, SPI, I2C, CAN, USB, Ethernet, PCIe
- Hands-on experience with JTAG, GDB, Lauterbach, Oscilloscopes, Logic Analyzers
- Experience with Embedded Linux
- Strong understanding of Real-Time Systems
- Experience with Git, GitLab, or SVN
- Knowledge of Software Development Life Cycle (SDLC) and Agile methodologies
Preferred Skills
- Experience with Linux Kernel Development
- Knowledge of Yocto, Buildroot, or OpenEmbedded
- Experience with Secure Boot, OTA Firmware Updates, and Cybersecurity
- Exposure to Python, Bash, or Shell scripting
- Familiarity with CI/CD tools (Jenkins, GitLab CI)
- Experience with Docker
- Knowledge of Automotive (AUTOSAR), Medical Devices, Aerospace, Consumer Electronics, or Industrial Automation
- Experience with functional safety standards such as ISO 26262 or IEC 62304 is a plus, * Bachelor's or Master's degree in Computer Science, Electronics Engineering, Electrical Engineering, Embedded Systems, or a related field.