The Role:
Develop low- (BIOS, firmware, device drivers) and mid-level software (emulation, simulation, and virtualization) to enable the use of Openchip’s novel hardware features and accelerators, bringing visible improvements to end users.
Key responsibilities:
• Understand the technical landscape of their project and make decisions about it.
•Make independent technical contributions, especially for the most foundational or challenging parts of the project.
– Develop and maintain low-level software (BIOS and firmware) for novel hardware architectures.
– Develop and maintain device drivers for operating systems (mainly Linux) to expose novel hardware features (e.g., telemetry) and acceleration, as well as to support their emulation and virtualization.
– Provide monitoring, instrumentation, and telemetry to export system status and health metrics.
– Provide workload control and configuration, and API entry points to allow remote operation.
– Configure and extend emulation, simulation, and virtualization software.
• Interact with engineers and leads from their and other teams to unblock issues, or to reach consensus on technical topics. In particular:
– Work with hardware teams, influencing hardware/software co-design.
– Work with teams developing middleware, and/or contribute to middleware.
• Provide technical guidance to more junior team members, also acting as a mentor.
• Review team artifacts (design documents, code changes) both for correctness but also for code quality and consistency.
• Identify opportunities for code and/or process improvement.
• Loop in directors and above as needed, for instance to surface potential risks or get feedback based on area-level technical knowledge.
• Collaborate with program managers for task and deliverable tracking, as well as process improvements.
• Communicate outside the team, explaining and divulging technical topics to less technical parts of the organization.
Required qualifications:
• Bachelor or Master’s degree in a relevant field.
• Experience in the relevant field (more than 10 years).
• Solid knowledge about computer architecture (CPU, cache and memory hierarchy, buses,. . . ).
• Good understanding of pre-boot and boot process, and Linux kernel internals.
• Knowledge about compilation and linking process (toolchains, object file formats, binutils, dynamic loading,. . . ).
• Solid knowledge of low-level development languages (C, Rust).
• Experience with assembly language (of any architecture).
• Experience with standard tools for source control (git), continuous integration, task management (Jira).
Preferred qualifications:
• Experience with RISC-V development at the assembly-language level.
• Experience with kernel and/or device driver development.
• Experience with emulators and simulators (Qemu, Gem5, Spike).
• Experience with hypervisor technology (KVM, Xen).
• Experience with open source software development.
• Experience with system boot technology (UEFI/EDK2, ACPI, u-boot, devicetree)
Soft skills:
• Within- and cross-team collaboration at the technical level.
• Experience leading teams at the technical level (not necessarily with a formal management role).
What do we offer?
We are looking for outstanding people willing to join our mission to change this industry and help to build a better world.
If you feel identified with Openchip, please contact us. We can offer a competitive compensation package in a flexible work schema that will help you to keep a balance between your personal and professional life.
At Openchip & Software Technologies S.L., we believe a diverse and inclusive team is the key to groundbreaking ideas. We foster a work environment where everyone feels valued, respected, and empowered to reach their full potential – regardless of race, gender, ethnicity, sexual orientation, or gender identity.