Job Description:
As an Embedded Systems Engineer, you will be responsible for designing and developing low-level software for microcontrollers and embedded systems.
This includes implementing layer 1/PHY radio front-end algorithms, developing bare-metal firmware, and integrating various communication protocols like I2C, UART, SPI, and CAN in both Linux and microcontroller environments.
Required Skills and Qualifications:
- Software Development: Proficiency in C/C++ programming languages and experience with assembly languages
- Microcontroller Expertise: Knowledge of Cortex-M architectures, including STM32, NXP LPC, and Microchip PIC families
- RTOS Experience: Familiarity with FreeRTOS, mbed, or ThreadX on microcontrollers
- Linux Driver Development: Ability to implement Linux drivers and kernel modules for custom hardware components
- Communication Protocols: Understanding of I2C, UART, SPI, CAN, UDP, TCP, and IP protocols
- Embedded Software Development Tools: Experience with simulation tools like MATLAB, Simulink, or Python
Benefits:
- Opportunity to work on cutting-edge embedded systems projects
- Collaborative environment with experienced engineers
- Professional growth and development opportunities
Others:
- Excellent problem-solving, analytical, and debugging skills
- Strong communication and interpersonal skills
- Ability to work independently and manage multiple projects simultaneously