IntroductionJoin 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 ResponsibilitiesAs 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 MoveWork 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 EducationBachelor's DegreeRequired Technical And Professional ExpertiseDemonstrated professional experience in low-level or systems software development.Solid understanding of operating system internals, such as:Memory managementTask schedulingInterrupt handlingDevice driversProfessional 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 ExperienceExperience 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