Introduction
Join a team where your work directly shapes the foundation of enterprise‑grade systems. This position is ideal for mid-level engineers with a strong foundation in systems programming and hands-on professional experience building and maintaining low-level software.
As a Firmware Developer, you’ll design and build the low‑level software that powers high‑performance platforms, collaborating closely with experts in embedded Linux and open‑source technologies. This role offers the perfect opportunity for engineers ready to step into deeper technical ownership while continuing to grow their systems‑level expertise.
This is a hybrid position requiring onsite work 3 days per week.
Your Role And Responsibilities
As a key member of the firmware engineering team, you will:
-
Design and document new system‑level features.
-
Implement clean, reliable code for embedded and low‑level environments.
-
Diagnose and resolve complex software defects and performance bottlenecks.
-
Participate in upstream open‑source communities by contributing patches and enhancements.
-
Collaborate with internal teams and clients to solve technical challenges.
-
Deliver high‑quality code through best‑practice engineering workflows, including CI/CD and automated validation.
Why This Role Is a Great Career Move
-
-
Work on meaningful, complex engineering problems that sit close to the hardware and directly influence system performance and reliability.
-
Grow your expertise in embedded Linux, enterprise platforms, and open‑source development—with structured opportunities to build knowledge of IBM Z technologies.
-
Own features end‑to‑end, from design to upstream contribution.
-
Be part of a highly technical team that values mentorship, collaboration, and continuous learning.
-
Contribute to open-source projects, showcasing your work to the broader engineering community.
Preferred Education
Bachelor's Degree
Required Technical And Professional Expertise
-
Demonstrated professional experience in low-level or systems software development.
-
Solid understanding of operating system internals, such as:
-
Memory management
-
Task scheduling
-
Interrupt handling
-
Device drivers
-
Professional experience with C or C++ (assembly experience is a plus but not required).
-
Strong knowledge of core Unix/Linux concepts (such as Tree structure or Kernel operations)
-
Experience using Git or similar source control systems.
-
Experience with scripting languages (such as Bash scripting) for tooling and automation.
-
Exposure to CI/CD pipelines and build automation.
-
Experience with software packaging and dependency management.
-
Understanding of computer architectures (e.g., x86_64, s390, ARM) and how architecture impacts software building and packaging.
Preferred Technical And Professional Experience
-
Experience with Linux packaging systems (e.g., RPM, DEB, or similar).
-
Familiarity with IBM Z architecture, including Principles of Operations, Z assembler, or I/O concepts.
-
Prior open-source contributions
-
Background or interest in cryptography or security-related systems software