At CERN, the European Organization for Nuclear Research, physicists and engineers are probing the fundamental structure of the universe. Using the world's largest and most complex scientific instruments, they study the basic constituents of matter - fundamental particles that are made to collide together at close to the speed of light. The process gives physicists clues about how particles interact, and provides insights into the fundamental laws of nature. Find out more on http://home.cern.
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.
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)
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.
Master's degree or equivalent relevant experience in the field of computer science or a related field.
- 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.
- 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.
- Communicating effectively: expressing opinions, ideas and suggestions with conviction and in a logical/structured manner; keeping to the point; delivering presentations in a structured and clear way; adjusting style and content to the audience; responding calmly and confidently to questions;
- Building relationships: relating well to all people regardless of category/level within the Organization;
- Working in teams: building and maintaining constructive and effective work relationships; cooperating constructively with others in the pursuit of team goals; balancing personal goals with team goals;
- Achieving results: driving work / projects along and seeing them through to their conclusion; taking appropriate corrective actions and adapting work / project plans if necessary.
- 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.
Eligibility and closing date:
Diversity has been an integral part of CERN's mission since its foundation and is an established value of the Organization. Employing a diverse workforce is central to our success. We welcome applications from all Member States and Associate Member States (http://cern.ch/jobs/content/member-states).
This vacancy will be filled as soon as possible, and applications should normally reach us no later than 07.06.2018.
Contract type: Limited duration contract (5 years). Subject to certain conditions, holders of limited-duration contracts may apply for an indefinite position.
These functions require:
- Work during nights, Sundays and official holidays, when required by the needs of the Organization.
- Stand-by duty, when required by the needs of the Organization.
Job grade: 6-7
Job reference: BE-CO-APS-2018-41-LD
Benchmark Job Title: Computing Engineer
Please make sure you have all the documents needed to hand as you start your application, as once it is submitted, you will not be able to upload any documents or edit your application further