Job description
Embedded Systems Engineer
Job Summary:
We are looking for an experienced Embedded Systems Engineer to lead the design, development, integration, and testing of embedded software and firmware that interact seamlessly with hardware to control and optimize device performance.
The ideal candidate will possess strong expertise in real-time systems, firmware development for microcontrollers and processors, and the ability to ensure high reliability and efficiency in systems used across various industries, including defense, automotive, IoT, and consumer electronics.
This role involves working on complex embedded architectures, collaborating with cross-functional teams, and maintaining compliance with stringent industry standards.
Key Responsibilities:
Develop and implement embedded software/firmware using C, C++, and assembly language for microcontrollers and embedded processors (ARM Cortex-M/M0/M4, STM32, PIC, DSP Processors)
Architecture and design of embedded systems software, including RTOS configuration (FreeRTOS, μC/OS, VxWorks)
Interface with hardware teams to understand schematic and PCB layout to define firmware requirements
Develop driver software for peripheral devices such as ADCs, DACs, GPIO, UART, SPI, I2C, CAN, USB, and Ethernet
Conduct software integration testing with hardware modules, utilizing oscilloscopes, logic analyzers, and protocol analyzers
Optimize embedded software for performance, power consumption, and memory footprint
Troubleshoot issues and perform root cause analysis
Prepare and maintain detailed documentation including code comments, design specs, test plans, and user manuals
Collaborate with cross-disciplinary teams including hardware engineers, FPGA designers, systems architects, and software developers
Participate in hardware bring-up and board-level validation activities
Ensure compliance with safety, quality, and regulatory standards such as ISO 26262, DO-178C, or MIL-STD
Keep abreast of emerging technologies, tools, and best practices
Requirements:
Bachelor's or Master's degree in Electrical/Electronics Engineering, Computer Engineering, or related field
3+ years of experience is required
Strong programming skills in C and embedded C++, with hands-on experience with microcontroller architectures
Familiarity with RTOS concepts, task scheduling, inter-task communication, and synchronization
Experience with debugging tools such as JTAG debuggers, In-Circuit Emulators (ICE), and oscilloscopes
Proficiency in version control systems like Git
Understanding of embedded hardware including schematics, PCB components, signal integrity, and power management
Knowledge of communication protocols and network stacks (TCP/IP, Modbus, BLE, Zigbee) is a plus
Ability to write efficient, maintainable, and portable code under strict resource constraints
Good analytical and problem-solving capabilities
Strong verbal and written communication skills
Required Skill Profession
Engineers