Software Engineer
Job Title: Software Engineer
Location: Cambridge, UK
Type: Contract
Duration: 6 Months (Until end of year)
Our client are an international semiconductor company
Responsibilitie
Design and maintain a reproducible Hardware Emulation environment utilizing PetaLinux toolchain
Wrap the entire emulation stack in Docker to ensure environmental consistency across developer workstations and automated CI/CD pipelines (GitLab/Jenkins
Utilize QEMU to boot functional PetaLinux images, modeling specific peripherals, boot sequences, and memory map
Bridge QEMU with RTL simulators like Vivado XSIM via Remote Port / Transaction Level Modeling to validate custom logic alongside the software stac
Develop robust testbenches and automation scripts using Python to load hardware overlays, inject test vectors into emulated hardware, and assert correctnes
Requirements: Proven commercial experience with QEMU (specifically configuring and networking emulated ARM Cortex-A53/R5 cores) and RTL simulators.
Strong proficiency in Docker for standardizing complex toolchain environments (e.g., injecting Vitis Core Development Kits, PetaLinux).
Advanced Python programming for orchestrating tests, hardware interactions, and CI/CD automation.
Strong understanding of Linux OS internals, memory-mapped I/O, and driver-stack loading in embedded environments
If this sounds like it could be of interest, please apply below or reach out to daniel@microtech-global.com