Mediabistro logo
job logo

System On Chip Embedded Software Engineer

Nokia, Plano, TX, United States


Nokia's Network Infrastructure group is at the heart of a revolution to bring more and faster network capacity to people worldwide through our ambition, innovation, and technical expertise.
The Fixed Networks Division is one of the key divisions in Nokia focusing on making Ultra Broadband Access possible for all users in the world and system-on-chips (SoC's) are at the heart of our systems.
To strengthen our SoC development team, our team is looking for engineers with a passion for System-On-Chip and embedded SW development.
Within the system-on-chip team, there is a wide range of SW activities that are crucial to make the chip's features shine in the final product. As an embedded software engineer, you will work alongside the design and validation engineerscand leverage their expertise to meet the team's goals.
You will contribute to the SDK (Software Development Kit) of the chip during the complete journey from concept to product, including low level drivers (interactions with the chip's register map), toolchain (compiler and other debugging tools), hardware models and other real-time software

Your responsibilities:
You will define a user-friendly interface towards application software and middleware, and implement a translation of the chip's register map into that API, including:

Handling the initialization and configuration of the chip
Handling the interrupt tree
Performing sanity checks and error logging
Implementing layers of protection and debug features

You will design and implement software models (from high-level to cycle-accurate -based on our need) that allow RTL validations and early testing. These models mimic the RTL behavior, from high level to cycle-accurate, based on the need for detail.
You might contribute to the development of our hardware-specific compiler tool in order to provide a translation between high-level packet-processing languages into chip configuration, including:

Syntax analysis of high-level packet-processing programming languages
Perform optimizations or circumvent limitations based on the capabilities of our chip
Define high-level architectural definitions of our chip that will be provided to application SW teams

You will provide support to application SW teams on how to use the hardware more efficiently. You will implement features with a close link to the hardware implementation
You will support/drive bring-up activities to demonstrate and derisk architectural, design and implementation choices in early development stages, including the development of automated test systems on prototypes and emulators.
You will provide support to application and middleware SW teams in their feature development and support the introduction of the product into the field.
You will contribute to the support and maintenance of the software products after the release
In the context of those responsibilities, you will cooperate with system architects, hardware design engineers, application engineers, project managers...
Concretely, you will be required to:
Work with the SoC designers and understand the functionalities of the chips.
Work with the hardware teams and understand capabilities and limitations of boards.
Work with the SW teams and understand how the chip will be used in the final product, as well as find the optimal boundaries between software - hardware domains.
For the produced software, we will expect you to be an advocate of software quality, participate in code reviews, write code that is self-explanatory, maintainable and debuggable.
We expect you to be continuously looking for improvements in all areas of your work and the team's work. And most of all, we expect you to become not just a cog in the wheel, but one of the engines that helps the wheel drive. In return, next to an attractive compensation package, you will be a part of a great team with strong opportunities for personal development and technical skill broadening.
Your skills and experience
You hold a Master's degree in (applied) engineering sciences: Electrical engineering or Computer Science
You have a broad interest in the telecom sector.
Agility in learning is key
Experience with C/C++, Python, virtual platform development.
It would be nice if you also had:
Previous work experience in a similar field is welcome, but the position is open for junior engineers or more senior SW engineers
Experience with telecommunication protocols and/or physical layer technologies is a plus
Experience with System C, SystemVerilog, TLM2 is a plus
Experience with compiler development and general compiler internals is a plus
Experience with hardware emulation is a plus
Good communication skills and a strong independent thinker

Advancing connectivity to secure a brighter world.

Nokia is a global leader in connectivity for the AI era. With expertise across fixed, mobile and transport networks, powered by the innovation of Nokia Bell Labs, we're advancing connectivity to secure a brighter world.
Learn more about life at Nokia.

Our recruitment process
We act inclusively and respect the uniqueness of people. Our employment decisions are made regardless of race, color, national or ethnic origin, religion, gender, sexual orientation, gender identity or expression, age, marital status, disability, protected veteran status or other characteristics protected by law. We are committed to a culture of inclusion built upon our core value of respect.
If you're interested in this role but don't meet every listed requirement, we still encourage you to apply. Unique backgrounds, perspectives, and experiences enrich our teams, and you may be just the right candidate for this or another opportunity.
The length of the recruitment process may vary depending on the specific role's requirements. We strive to ensure a smooth and inclusive experience for all candidates. Discover more about the recruitment process at Nokia.