Junior Embedded Software Engineer (Firmware, C/C++)

Remotely
Full-time

Your Impact and Responsibilities

- Develop and maintain robust, efficient, and reliable firmware for microcontrollers and embedded systems using modern C and C++.

- Collaborate closely with hardware engineering teams to perform board bring-up, assist in component selection, and ensure seamless hardware-software integration.

- Engage in the full software development lifecycle - from requirements gathering and design to implementation, testing, and deployment.

- Systematically debug complex issues at the hardware-software interface using tools like JTAG debuggers, oscilloscopes, and logic analyzers.

- Author comprehensive technical documentation, including design specifications, test plans, and user guides to ensure clarity and knowledge sharing across teams.

- Optimize code for performance, memory usage, and power consumption on resource-constrained embedded devices.

- Implement and maintain unit tests and integration tests to guarantee system reliability and stability under various conditions.

- Contribute to the development of low-level device drivers for peripherals such as UART, SPI, and I2C.


Qualifications for Success

- A Bachelor’s degree in Computer Science, Computer Engineering, Electrical Engineering, or a related technical field is required.

- Solid programming proficiency in C and C++, with a strong grasp of data structures, algorithms, and low-level programming concepts (pointers, memory management, bit manipulation).

- Foundational knowledge of microcontroller architectures (e.g., ARM, RISC-V) and their common peripherals.

- Hands-on experience with embedded development from university projects, internships, or personal projects is highly desirable.

- Familiarity with version control systems, particularly Git, and collaborative development workflows (e.g., pull requests, code reviews).

- An innate curiosity and a systematic approach to problem-solving and debugging challenging technical issues.

- Excellent written and verbal communication skills, with the ability to articulate technical concepts clearly to diverse teams.

- Experience with Real-Time Operating Systems (RTOS) like FreeRTOS or Zephyr is a significant plus.