Job Title: Mid-Level Embedded Systems Engineer
Job Summary:
We are seeking a Mid-Level Embedded Systems Engineer with strong experience in embedded software development, microcontroller programming, real-time systems, and hardware-software integration. The ideal candidate should have hands-on expertise in RTOS, firmware development, communication protocols, and debugging complex embedded applications. This role involves working closely with hardware engineers, product teams, and software developers to design, develop, and optimize embedded solutions.
Key Responsibilities:
- Design, develop, and optimize firmware and embedded software for microcontrollers and processors
- Work with Real-Time Operating Systems (RTOS) such as FreeRTOS, Zephyr, or Embedded Linux
- Develop low-level drivers, peripheral interfaces, and real-time communication protocols (UART, SPI, I2C, CAN, Modbus, RS-485)
- Design and implement bootloaders, secure firmware updates, and over-the-air (OTA) updates
- Optimize power consumption, memory management, and performance for low-power embedded devices
- Troubleshoot and debug complex embedded software and hardware interactions using oscilloscopes, JTAG/SWD debuggers, and logic analyzers
- Implement wireless communication protocols such as Bluetooth, Wi-Fi, LoRa, Zigbee, NFC, RFID
- Ensure compliance with industry standards and safety regulations (MISRA C, ISO 26262, IEC 61508)
- Integrate embedded systems with IoT cloud platforms (AWS IoT, Google Cloud IoT, Azure IoT Hub)
- Develop and maintain technical documentation, software architecture diagrams, and testing reports
- Collaborate with hardware engineers, PCB designers, and software developers to improve system integration
Skills and Knowledge Required:
- Proficiency in C, C++, and Assembly language for embedded systems development
- Strong experience with microcontrollers and embedded processors (ARM Cortex-M, STM32, ESP32, NXP, TI, PIC, AVR)
- Expertise in RTOS concepts (task scheduling, inter-process communication, semaphores, real-time constraints)
- Strong understanding of hardware interfacing, interrupts, timers, ADC, DAC, and PWM
- Experience in real-time communication protocols (SPI, I2C, UART, CAN, RS-485, MQTT, Modbus)
- Hands-on knowledge of firmware security, cryptographic techniques, and secure bootloaders
- Experience with low-power embedded system design and battery-operated applications
- Familiarity with Git-based version control systems (GitHub, GitLab, Bitbucket)
- Ability to develop automated testing and debugging scripts using Python or Bash
- Experience with hardware debugging tools (Oscilloscopes, Logic Analyzers, JTAG/SWD Debuggers)
Educational Qualifications:
- Bachelor’s or Master’s degree in Electronics Engineering, Electrical Engineering, Computer Science, or a related field
- Relevant certifications in Embedded Systems, IoT, RTOS, or Firmware Security are a plus
Experience:
- 3-5 years of hands-on experience in embedded systems design and firmware development
- Proven track record of developing and optimizing real-time embedded applications
Key Focus Areas:
- Embedded Firmware Development & Optimization
- RTOS & Real-Time System Implementation
- Hardware-Software Integration & Debugging
- Power Optimization & Secure Firmware Development
- IoT & Wireless Communication Integration
Tools and Equipment:
- Programming Languages: C, C++, Assembly, Python (for scripting)
- Embedded Platforms: ARM Cortex-M (STM32, NXP, TI), ESP32, PIC, AVR, Raspberry Pi
- Debugging Tools: JTAG, SWD, Oscilloscopes, Logic Analyzers, Serial Debugging
- Embedded IDEs & Toolchains: Keil, IAR Embedded Workbench, MPLAB, STM32CubeIDE, PlatformIO
- Version Control: Git, GitHub, GitLab, Bitbucket
- Communication Interfaces: UART, SPI, I2C, CAN, RS-485, Modbus, MQTT
- Simulation & Testing Tools: MATLAB/Simulink, Proteus, LTspice
Other Requirements:
- Strong analytical and problem-solving skills for debugging and system optimization
- Ability to mentor junior engineers and lead technical discussions
- Passion for embedded technology, IoT, robotics, and real-time computing
- Ability to work independently and collaboratively in cross-functional teams