About the job
System Software Verification Engineer
Key Responsibilities:
- Conduct board bring-up activities for software components including bootloaders, platform managers, Linux kernels, Linux drivers, bare-metal drivers, and applications tailored for ARM-based boards.
- Perform testing and verification of Linux kernels and drivers, including I2C, flash memory, USB, Ethernet, PCIe, and DDR memory tests.
- Create and implement comprehensive test plans aimed at evaluating functionality, security, and efficiency of firmware using both emulation and evaluation boards for pre-silicon and post-silicon verification.
- Analyze, track, and debug test failures to identify corrective actions. Collaborate directly with development teams to ensure test plan requirements are met and to resolve any issues.
- Execute regression tests, manage issue triage, log defects within the system, and work closely with development teams to ensure timely resolution.
- Automate functional and system-level tests using Python and integrate them into the Test Automation framework while maintaining test artifacts for any updates in test cases or frameworks.
Essential Skills:
- Proven experience in the verification and testing of Linux-based embedded system software.
- Strong background in Linux device driver verification and validation on Linux, bare metal, and real-time operating systems.
- Proficient in compiling, building, cross-compiling, debugging, testing, and deploying bootloaders, TF-A, Linux kernels, device trees, middleware software, and bare-metal application images for board bring-up using JTAG debuggers and emulators across various boot modes.
- Solid understanding of at least one SoC/processing technology such as ARM, RISC-V, or X86, including MMU, interrupt handling, and cache management.
- Hands-on experience with peripherals/controllers like UART, I2C, SPI, USB, SD, eMMC, QSPI, and PCIe.
- Ability to define, design, and develop both manual and automated test cases for embedded system projects.
- Programming expertise in C/C++, Makefile, linker file creation, and scripting with Python/Shell/Tcl.
- Familiarity with GIT environments and test automation frameworks such as Pytest and Jenkins.
- Preferred experience with design tools like VIVADO, VITIS, and configuration management tools like GIT/Perforce, JIRA, and Confluence.
Qualifications:
Education: B. E/B. Tech or M. E/M. Tech in Electronics & Communications or Computer Science.

