Python Software Engineer (BE-CSS-IDE-2026-114-LD)
Role details
Job location
Tech stack
Job description
- Develop Python APIs for CERN's control system and applications.
- Create PyQt6-based tools for operating accelerator systems.
- Collaborate with teams to enhance user experience and documentation., As a Python Software Engineer with a strong interest in both API development and desktop application engineering (with PyQt6), you will work on tools at the heart of CERN's accelerator complex, used daily across operations, engineering, and physics. This role spans the Python APIs that interface to the CERN control system, and the PyQt6-based desktop applications built on top of them.
On the API side, you will develop frameworks, libraries, and bindings integrating tightly with backend control system services, with a strong emphasis on developer experience, robustness, and long-term maintenance.
On the UI side, you will work on applications for operating, monitoring, and configuring accelerator systems, ensuring reliable, responsive, and effective user experiences.
You will collaborate with colleagues across the organisation, contributing to design reviews, documentation, training, and technical support, while staying abreast of relevant emerging technologies and playing an active part in shaping the future of CERN's accelerator control system.
Functions:
- Design and maintain Python bindings to the accelerator control system, using a range of technologies such as REST, gRPC, event-driven messaging (e.g. ZMQ), as well as bindings to existing C++ and Java libraries.
- Build reusable components, widgets, and libraries supporting control application development at CERN.
- Develop and maintain a number of PyQt-based control applications used in the CERN Control Centre.
- Contribute to the selection and configuration of a coherent DevOps toolchain for Python, covering dependency management, packaging, testing, CI/CD, and deployment monitoring.
- Collaborate with user communities to establish and document best practices for developing Python-based control applications.
- Contribute relevant developments back to the open source community.
- Take ownership of one or more key systems or tools, driving their evolution through active engagement with stakeholders and structured follow-through.
- Mentor junior engineers, sharing knowledge and supporting their growth as they contribute to the above areas.
Requirements
- Master's in Computer Science or relevant field; Python expertise required.
- Solid understanding of API design and software engineering practices.
- Experience in UI design and eagerness to learn Qt technologies., Master's Degree or equivalent relevant experience in the field of Computer Science or a related field., * Extensive experience with Python, including typed Python and asynchronous programming patterns.
- Advanced knowledge of API and application design, with proven experience designing and evolving client-oriented APIs and SDKs.
- Solid grasp of platform engineering principles and modern software engineering practices, including quality assurance and DevOps.
- Knowledge of Qt and its Python bindings (PyQt or PySide) is a plus; willingness to learn is equally valued.
- Experience in UI design with a strong focus on usability and developer experience is desirable.
- Comfortable working across a broad and evolving technology landscape, with the curiosity and initiative to develop new expertise as the role demands.
Technical competencies:
- Knowledge of programming techniques and languages.
- Design of databases/repositories.
- Architecture and design of ICT systems.
- Identification and selection of relevant emerging ICT technologies.
- Conceptualising, designing and developing user experiences and interfaces.
Behavioural competencies:
- Achieving Results: delivering high quality work on time and fulfilling expectations.
- Solving Problems: adopting a pragmatic approach; understanding the value of adopting generic rather than ''gold -plated" technical solutions.
- Working in Teams: contributing to promoting a positive atmosphere in the team through an optimistic and constructive attitude; addressing issues.
- Demonstrating Accountability: working conscientiously and reliably; delivering on promises.
- Demonstrating Flexibility: adapting quickly and resourcefully to shifting priorities and requirements.
Language skills:
- Spoken and written English, with a commitment to learn French.
Benefits & conditions
- A competitive salary (tax free), increasing in line with your years of relevant experience.
- 30 days of paid leave per year plus 2 weeks annual closure.
- Coverage by CERN's comprehensive health insurance scheme (for yourself, your spouse and children), and membership of the CERN Pension Fund.
- Family, child and infant monthly allowances depending on your individual circumstances.
- A relocation package (installation grant, removal, travel expenses) depending on your individual circumstances.
- Possibility to extend your contract up to 8 years + eligibility for indefinite contract tenure.