Job Requirements
What You will Do:
- Design and implement efficient, reliable, and optimized code in C/C++ and other relevant languages
- Collaborate with hardware architects to ensure seamless integration of software and hardware components.
- Develop software that meets performance, reliability, and scalability standards.
- Optimize software performance, including memory usage, processing speed, and energy efficiency.
- Participate in system architecture design and contribute to technical decision-making.
- Develop and maintain technical documentation for software development and testing.
- Document software design, coding practices, and maintenance procedures.
- Ensure the software meets industry standards, safety regulations, and project specifications.
- Analyze project requirements and translate them into software design specifications.
- Write efficient, reusable modules that interfaces with hardware components such as sensors, actuators, and communication modules.
- Test and debug software using simulation tools, hardware emulators, and on-target testing methods in simulated environments before deployment to real-world devices.
- Collaborate with cross-functional teams to define software requirements and validate product functionality.
- Provide technical support and troubleshooting for software-related issues.
- Work in hybrid development environments (predictive and adaptive).
Work Experience
What you will bring:
- Expertise in C programming.
- Expertise working with UEFI Architecture and the EDK-2 platform.
- Engage in bare-metal development involving communication protocols such as UART, SPI, I2C, ADC, and DAC.
- Knowledge with bare metal systems, board bring-up, and bootloader architecture.
- Design and implement UEFI/BIOS modules in PEIM and DXE stages.
- Experienced in debugging embedded firmware applications using JTAG, SWD debuggers.
- Knowledge with using logic analyzers, I2C analyzers, oscilloscopes, and other relevant tools.
- Familiarity with Python, batch files, command shells, and other relevant scripting languages.
- Familiarity with version control systems GitHub and CICD development pipelines
- Ability to understand technical specifications, data sheets, and develop firmware solutions based on requirements.
- Solid experience with RTOS (Real-Time Operating Systems), embedded Linux, and other embedded platforms like ThreadX and Zephyr OS.
- Understanding low-level hardware architecture, software optimization, memory management, and real-time processing.
Preferred Skills
- Experience with embedded security and encryption protocols.
- Knowledge of communication protocols such as UART, SPI, I2C, CAN, or Ethernet.
- Knowledge of Python or other scripting languages for testing automation.
- Familiarity with Agile development methodologies and tools like ADO.
- Understanding of power management techniques for low-power embedded systems.
- Knowledge in ARM embedded architecture.
- Knowledge in PIC, EDK-2 and other microcontroller architectures.
Education And Experience
- Master's or Bachelor's degree in computer science, Computer Engineering, Electrical Engineering, Mathematics or equivalent.
- Minimum 10 years of relevant experience in BIOS/UEFI development
- Experience in Agile/Scrum environment.