Scientific Software Developer (ROOT)
Are you interested in taking a major role in the evolution of the ROOT analysis software toolkit, improving its performance by exploiting new CPU architectures and its interoperability with other tools? Would you like to develop new web-based analysis services for CERN scientists providing a complete data analysis ecosystem? Are you interested in coordinating the development and maintenance of some packages which provide key functionality needed by the LHC experiments? Then join the ROOT team, part of the software development for experiments group (SFT). CERN, take part!
Scientific Software Developer in the Experimental Physics Department (EP), Software Development for Experiments Group (SFT).
You will join the software development for experiments (SFT) group (http://ep-dep-sft.web.cern.ch) that develops and provides support on scientific software for the experimental collaborations at CERN and worldwide. The group is currently involved in an innovative programme of work to improve the performance of the simulation (GEANT) and analysis toolkits (ROOT) by exploiting the parallelism offered by modern CPU architectures. This represents a major challenge as it involves a new way of thinking (a paradigm shift) and implies a major re-engineering of existing software to be ready for the HL-LHC.
Your job will be to further develop the ROOT data processing toolkit (http://root.cern.ch), which is used by nearly all HEP experiments worldwide as the basis of their data processing applications, and is also used in other fields such as finance and genomics. It is a modular scientific software framework which provides all the functionality needed to deal with "big-data" processing, statistical analysis, visualisation and data storage. It is written mainly in C++ but is well integrated with other languages such as Python and R.
As a Scientific Software Developer in the ROOT project team, you will participate in the long-term evolution of the ROOT toolkit and its sustainability. In particular, you will:
Participate in the ROOT software development, in particular evolving the ROOT toolkit to embrace parallelism whenever possible to improve its performance.
Improve the sustainability of the ROOT toolkit and be the main maintainer for some key packages, in particular the PyROOT package that provides interoperability between ROOT and Python.
Lead the development of web-based data analysis services (e.g. SWAN) and their connection to medium-large computational clusters.
Participate in the user support activity for the software and services provided by the SFT group.
Prepare and deliver technical training and courses.
Master's degree or PhD, or equivalent relevant experience in the field of computing sciences, or equivalent.
The experience required for this post is:
Extensive experience in the development of large scientific software projects in C++ and Python, with emphasis on high performance computing using vectorization and parallelization methods.
Extensive experience in collaborative software development tools and processes.
Demonstrated experience in the design and deployment of application services for scientists on computational clusters.
Demonstrated experience in preparing and delivering quality technical training.
The technical competencies required for this post are:
- Programming/software development: proficiency in C++ programming language is crucial for this post, as well as multithreaded programming with state of the art methodologies and the use of modern libraries.
Sustainability management for IT: maintenance and integration of contributions from external collaborators using the latest tools such as GitHub, JIRA, Jenkins, etc.
System software administration: Unix system software administration, proficiency in tools for configuration management such as Puppet and in the modern container technology such as Docker.
- Information content authoring: technical documentation such as user's guides and tutorials.
The behavioural competencies required for this post are:
- Achieving results: having a structured and organised approach towards work; being able to set priorities and plan tasks with results in mind.
- Working in teams: contributing to promoting a positive atmosphere in the team through an optimistic and constructive attitude; addressing issues.
- Learning and sharing knowledge: sharing knowledge and expertise freely and willingly with others; coaching others to ensure knowledge transfer; creating or participating in forums to exchange experience, comparing techniques and learn from others.
The language competencies required are:
- Spoken and written English or French: ability to understand and speak the other language in professional contexts.
- Ability to draw-up technical specifications and/or scientific reports and to make oral presentations in at least one of the two languages.
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.
This vacancy will be filled as soon as possible, and applications should normally reach us no later than 10.09.2017.
By applying here, you allow CERN to consider your application for any position it considers relevant with respect to your profile. Please ensure you update your profile regularly with any relevant information and that you inform the recruitment service if you wish your file to be removed from the database.
We offer a limited-duration contract for a period of 5 years. Limited-duration contracts shall terminate by default on their date of expiry. 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.