What You’ll Do
• Design, develop, embedded software and firmware for various devices, ensuring they meet functional requirements and performance constraints
• Utilize C/C++ to develop code that runs directly on microcontrollers or microprocessors, controlling hardware and managing system resources
• Collaborate with hardware engineers to ensure seamless integration of software and hardware components in embedded systems
• Develop device drivers to facilitate communication between software applications and hardware peripherals, such as sensors, actuators, and communication interfaces
• Implement real-time systems that require timely response to external events and strict adherence to timing constraints
• Create and execute test plans to validate embedded software functionality, performance, and reliability using hardware/software integration testing
Skills/Experience We’re Looking For
• Proficiency in C and C++ for developing embedded software
• Experience with bare metal systems designed with strict timing requirements.
• Knowledge of microcontroller/microprocessor architectures, specifically ARM
• Experience with a microcontroller RTOS.
• Ability to interface with hardware peripherals, such as GPIO, SPI, I2C, UART, and DMA
• Familiarity with electronic circuits, hardware components, and the ability to read schematics and datasheets to understand hardware requirements and constraints
• Familiarity with JIRA and GitLab or similar tools
Qualifications
• Bachelor’s or Master's in Computer Science or related field, or equivalent experience
• 3+ years of relevant experience in a firmware engineering role
4444