Junior C++ Software Engineer
You will be an integral part of the software organization that develops the embedded software for large-scale optical telecommunication systems. To support the needs of our customers we operate complex ASICs and FPGAs, run software in an embedded computer network of multicore CPUs, provide board support packages and carrier-grade application code, and maintain a CI/CD pipeline.
We empower our engineers to be proactive problem-solvers: If you identify a bottleneck or a potential system improvement, you are encouraged to bring it forward and learn how to contribute to its resolution. In this role, you will utilize AI-driven Development Life Cycle (DLC) tools in your daily workflow. By leveraging advanced AI coding assistants and LLM-based utilities, we automate boilerplate tasks, accelerate unit test generation, and enhance code analysis. We want our engineers focused on high-level architecture and complex logic while utilizing the latest tooling to streamline execution.
Qualifications
- Education & Experience: Bachelor’s degree in Computer Science, Electrical Engineering, or a related discipline, and 0–2 years of relevant professional experience.
- C++ Expertise: Strong C/C++ and object-oriented programming skills, with knowledge of inter-process communication, multi-threading, and data structures.
- Continuous Learning: Enthusiasm for Modern C++ standards and keeping up with emerging industry developments.
- Development Tools: Working knowledge of Git, Python, and GTest.
- Domain Knowledge: Experience in embedded software development, testing and debugging across hardware-software interfaces. Interest in learning WDM, OTN, and optical networking technologies.
- Teamwork & Communication: Effective English communication skills and the ability to collaborate successfully within a team environment.
It would be nice if you also had:
- An academic project or internship experience in telecommunications (L0-L3 transport technologies).
- Fluency in German or willingness to learn.
Responsibilities
- Develop & Implement: Develop and maintain high-performance embedded applications for Intel and ARM architectures using Modern C++.
- Learn & Apply: Understand and apply STL, Boost, and asynchronous programming concepts to solve concurrency challenges under guidance.
- Quality Contribution: Assist in writing and executing unit, E2E, and stress tests to ensure robustness.
- Collaborate & Learn: Participate in code reviews and contribute to team design discussions in a global environment.
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.

