What you'll do
You will join a passionate team and take an important role in the evolution of the low-level real-time frameworks used to control accelerator hardware, developed in C++ and targeting Linux. You will also help bring the Accelerator Timing System to a new technological era, utilizing White Rabbit, a novel, IEEE standard, Ethernet based network with sub-nanosecond accuracy, pioneered by your future colleagues.
You will be involved in all aspects of the software life cycle, including user requirements gathering, design, development, testing and production deployment of the new solution, following our agile development process.
Your responsibilities
- Engage with end-users to understand their requirements and translate them into effective technical solutions.
- Shape and contribute to the evolution of our core C++ frameworks for real-time control and integration with diverse equipment and PLCs.
- Develop and maintain mission-critical Accelerator Timing software coordinating thousands of accelerator devices.
- Collaborate and share expertise with highly skilled software engineers within the CSS group and across the Accelerators & Technology sector.
- Investigate, diagnose, and resolve operational issues in close collaboration with end-users, from equipment specialists to operations teams.
- Take ownership of one or more key systems after an initial learning period, planning their evolution through active user engagement and follow-up.
- Support team growth by onboarding and mentoring junior developers.
Still here? Let's make a quick check about
Your profile
- Proven experience in C++ development.
- Experience applying software quality assurance techniques and practice with corresponding tools.
- Experience in Java and/or Python development would be an asset.
- Experience with communication protocols and networking stacks would be an asset.
- Master's degree or equivalent relevant experience in the field of Computer Science or a related field.
Your skills
- Development of software for embedded and real-time systems with/without OS: using C++ in a Linux (or Unix-like) environment.
- Knowledge and application of software life-cycle tools and procedures: including Linux compilation toolchains and build systems.
- Knowledge of programming techniques and languages: including object-oriented programming principles.
- Testing, diagnosing and optimization of software.
- Having a structured and organised approach towards work; being able to set priorities and plan tasks with results in mind.
- Keeping up-to-date with developments in own field of expertise and readily absorbing new information; Ensuring that information, procedures and decisions are appropriately documented.
- Working well in groups and readily fitting into a team; participating fully and taking an active role in team activities; Adapting quickly and resourcefully to shifting priorities and requirements.
- Spoken and written English, with a commitment to learn French.
Employment conditions
- Participation in a regular stand-by duty, including nights, Sundays and official holidays.
- Stand-by duty, when required by the needs of the Organization.
Global Benefits at CERN
Let's get you ready
Be sure to meet the eligibility criteria
- You are a national of a CERN Member State or Associate Member State.
- You have relevant qualifications and professional experience.
- If you have previously held a Staff contract at CERN, you will not be eligible for these positions.
- Please pay attention to the additional criteria and requirements for this specific position and mentioned above.
You will need these documents to complete your application
- Your CV (English or French)
- Any document you consider relevant to your application