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 field3+ years of experience is requiredStrong programming skills in C and embedded C++, with hands-on experience with microcontroller architecturesFamiliarity with RTOS concepts, task scheduling, inter-task communication, and synchronizationExperience with debugging tools such as JTAG debuggers, In-Circuit Emulators (ICE), and oscilloscopesProficiency in version control systems like GitUnderstanding of embedded hardware including schematics, PCB components, signal integrity, and power managementKnowledge of communication protocols and network stacks (TCP / IP, Modbus, BLE, Zigbee) is a plusAbility to write efficient, maintainable, and portable code under strict resource constraintsGood analytical and problem-solving capabilitiesStrong verbal and written communication skills