At CERN, the European Organization for Nuclear Research, physicists and engineers are probing the fundamental structure of the universe. They use the world's largest and most complex scientific instruments to study the basic constituents of matter, the fundamental particles. The particles are made to collide together at close to the speed of light. The process gives the physicists clues about how the particles interact, and provides insights into the fundamental laws of nature.
Software Engineer Job Description
Would you like to work on the next generation of technology and tools for Rapid Application Development (RAD), Dashboarding, and UI development in general, which will be used in the CERN Control Center (CCC) to control the LHC and the other accelerators? CERN, take part!
The GUIs of the CERN accelerator controls system have so far been implemented by engineers and other trained developers. We now want to enable a larger community of people including physicists, accelerator operators and electronics specialists to contribute to the UI layer. From a technical viewpoint, our approach is to make the visual layer as thin as possible and to cleanly separate it from the business logic, using a serverless/FAAS or similar architecture.
As Software Engineer in the Applications Section, you will guide a small team to work on the next generation RAD/UI frameworks used to control the CERN Accelerators.
In particular, you will:
- Define architectural aspects of RAD/UI solutions, including how they are integrated into the accelerator controls system;
- Evaluate open-source frameworks and libraries for RAD/UI development and for serverless/FAAS architectures;
- Design and develop controls-specific UI components, as well as extensions and customizations to the frameworks;
- Provide development tools that enable our users to easily develop User Interfaces using the above solutions;
- Establish workflows, procedures and best practices for our users on how to use the above solutions;
- Promote the above solutions amongst our user community and help them adopting them;
- Contribute back to the open-source community.
You will join:- The Beams Department (BE), responsible for the beam generation, acceleration, diagnostics, controls and performance optimization for the LHC and its injector accelerators.
- The Controls Group (CO), responsible for developing the controls infrastructure used to operate these particle accelerators 24 hours a day.
- The Applications Section (APS), a dynamic and quality-oriented agile team, responsible for the mission-critical user interfaces and server-side applications used by the accelerator physicists and operators. (https://be-dep-co.web.cern.ch/content/aps-applications)
Software Engineer Job Requirements
Master's degree or equivalent relevant experience in the field of computer science or a related field.
Experience:
- Extensive professional experience in a software engineering position mentoring a small team;
- Proven experience with modern software engineering and DevOps practices;
- Experience applying software quality assurance techniques and practice with corresponding tools.
The following are considered as assets but are not mandatory:
- Experience with Java, its ecosystem and the Spring Framework;
- Experience with serverless/FAAS architectures;
- Active participation in open source projects, with accepted contributions.
Technical competencies:- Development of application software, both on the client and the server side;
- Knowledge of programming techniques and languages: Python, ES5/ES6 or TypeScript plus one out of C++, Java, C#, or Kotlin;
- Conceptualising, designing and developing user experiences and interfaces for the desktop with Qt/QML and for the Web with Angular, React or Vue.js.
- Knowledge and application of software life-cycle tools and procedures, including CI and quality assurance.
Language skills:- Spoken and written English, with the ability to draw-up technical specifications and/or scientific reports, and/or to make oral presentations.
- Knowledge of French or the willingness to acquire it rapidly would be an advantage.
Software Engineer Application Information
Please apply with your CV and cover letter by the 'apply' button below
Remember - you found this opportunity on Qreer.com
Software Engineer Summary
Education Backgrounds: |
Mathematics Software Engineering |
Specialties: |
Algorithms Programming Research (R&D) Software Architecture Software Design
|
Education Level: |
Postgraduate (Masters) Doctorate (PH.D)
|
Experience: |
0 - 2 years 2 - 5 years 5 - 10 Years
|
Languages spoken: |
English |
Job Location: |
, , Switzerland |
Apply