What you’ll be doing:
You will design, develop, and maintain embedded software solutions that engage with hardware units within ICs. In addition to writing and maintaining clear, and well-documented code, in line with software standard methodologies.
We require candidates to translate hardware specifications into well-structured software components that enable the desired hardware functionality, as well as learn and implement a variety of network protocols (e.g. Ethernet, Infiniband) as part of the software stack.
The role includes collaboration with hardware teams to understand high-level hardware design, focusing primarily on software implementation, debugging, and tackling software issues that arise from hardware-software integration, using software-focused debugging tools.
We offer a multifaceted, exciting work environment, with many new learning experiences and interactions with people from different aspects of the company.
What we need to see:
B.Sc. or M.Sc. in computer science, Software Engineering, or a related field.
Experience of 5+ years with embedded software development, particularly in C/C++.
Strong understanding of software architecture in embedded systems.
Experience with writing software for hardware interaction.
Knowledge of object-oriented programming (OOP), design patterns, and fundamental software engineering principles.
Proficiency in software debugging techniques and tools, with a focus on software-side issues.
Ways to stand out from the crowd:
Familiarity with embedded operating systems (such as FreeRTOS, Embedded Linux) or bare-metal development.
Experience with network protocols such as Ethernet, TCP/IP, and related communication standards.
Background with networking benchmark applications and testing.