Position overview:
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.
Job responsibilities:
Make independent technical contributions to help their team deliver its commitments. In particular:
- 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 ICs from their and other projects to unblock themself, or to reach consensus on small technical topics. In particular:
- Work with hardware teams, influencing hardware/software co-design.
- Work with teams developing middleware, and/or contribute to middleware.
- Collaborate with colleagues through code reviews, bug triaging, design documents,. . .
- Contribute to shared team responsibilities (CI failure triaging, documentation, code fixits, rotations. . . ).
Required qualifications:
- Bachelor or Master’s degree in a relevant field.
- Experience in the relevant field (1-3yr).
- 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 bare metal (without OS) development (e.g., embedded systems, microcontrollers).
- 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:
- Team player: communicative and collaborative person who focuses on the outcome of the team above the individual needs.
- Curious about learning new technologies/stacks.
- Capable of within- and cross-team collaboration at the technical level.
- Can-do attitude, proactive and willing to solve any obstacle by themself. Self-aware, self-starter, and self-motivated.
What do we offer?
- Join an innovative team and experience company growth.
- We believe in investing in our employees and providing them with the opportunities they need to grow and develop their careers.
- Enjoy a hybrid work environment.
- We also offer flexible schedule.
- We offer a remuneration that values your experience.
- The position will have the base in Barcelona.
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.