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.
Are you a skilled Software Engineer (C++) who is passionate about designing, developing and deploying advanced software systems required for the control of high-energy particle accelerators? CERN, take part!
As a Software Engineer (C++), 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 providing and supporting the controls infrastructure used to operate these particle accelerators 24 hours a day.
The Software for Real-Time and Communication Section (SRC), in charge of core software packages and systems required for the real-time control, data acquisition and communication infrastructure used for the on-line operation of the CERN Accelerator complex (http://cern.ch/go/9Lqv).
As a Software Engineer (C++) in the SRC section, you will contribute to two core C++ frameworks, FESA (http://cern.ch/go/n67B) and SILECS (http://cern.ch/go/MwG8) by:
Taking responsibility for the analysis, design, implementation, documentation, validation and release of individual components according to stakeholders' needs and schedules, reporting regularly on progress to supervisors, user meetings and group-wide committees.
Maintaining and upgrading existing software, in close collaboration with end-users.
Assisting end users in the use of these frameworks, taking on board their feedback in order to further adapt the frameworks to their needs.
Contributing actively to the improvement of software engineering practices in the section, applying agreed software quality standards to all phases of the development cycle, such as code quality, unit test coverage and documentation.
Eventually supervising students, fellows and technicians and providing support for software development technologies and methods to colleagues inside and outside the CO Group.
Master's degree, or equivalent relevant experience in the fields of computing, computer science or software engineering, or a related field.
The experience required for this post is:
Demonstrated experience in modern software techniques using C++; excellent experience applying OO principles.
Good experience working with Linux compilation toolchains (GCC, Clang).
Experience applying software quality assurance techniques (code reviews, unit testing, continuous integration), and practice with corresponding tools.
The following are considered as strong assets but not mandatory:
Experience with low-level system programming.
Experience with applying Agile methodology in a software development project.
Knowledge of programming techniques and languages: very good knowledge of the C++ language, the C++ Standard Library and Boost; knowledge of Java and Python would be an advantage.
Knowledge and application of software life-cycle tools and procedures: definition and management of the goals and scope of initiatives.
Testing, diagnosing and optimization of software: using and maintaining testware to measure and improve the quality of the software.
Solving problems: adopting a pragmatic approach; understanding the value of adopting generic rather than "gold -plated" technical solutions; finding the information needed to solve problems; making objective judgments based on all the facts available.
Achieving results: having a structured and organised approach towards work; being able to set priorities and plan tasks with results in mind; delivering high quality work on time and fulfilling expectations.
Working in teams: contributing to promoting a positive atmosphere in the team through an optimistic and constructive attitude; addressing issues; supporting and acting in accordance with team decisions; accepting joint responsibility for team successes and shortcomings.
Learning and sharing knowledge: sharing knowledge and expertise freely and willingly with others; coaching others to ensure knowledge transfer; keeping up-to-date with developments in own field of expertise and readily absorbing new information.
Spoken and written English: ability to draw-up technical specifications and to make oral presentation.
Knowledge of the French language or the willingness to acquire this 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. (https://careers.cern/content/member-states)
This vacancy will be filled as soon as possible, and applications should normally reach us no later than 01.08.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-SRC-2018-59-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