Skip to main content

This job has expired

Python Software Engineer

Employer
CERN
Location
Switzerland
Salary
£6585.55 - £7902.50 per month
Closing date
17 Jan 2019
Reference
BE-CO-APS-2018-98

View more

Discipline
Systems
Sector
Software & Hardware
Job Type
Engineer

Job Details

Python is gaining importance at CERN, and the areas of application are expanding from mere scripting to developing user interfaces and server-side code, and from numerical analysis to big data analysis and machine learning.

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 of engineers, 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).

Functions

As a Software Engineer in the APS Section, you will promote Python in the accelerator community, providing excellent tools and encouraging best practices. In particular, you will:

  • Specify the Python distribution and recommended third party libraries that the system administrators will install on all supported Linux platforms.
  • Select and customize a coherent suite of DevOps tools for Python (e.g. dependency management, building/packaging, a package repository, testing and CI/CD, deployment, monitoring, etc.).
  • Design and develop first-class Python bindings to the Accelerator Controls system, using REST or gRPC, or native bindings to existing C/C++ libraries.
  • Collaborate with the different user communities and elaborate best practices on how to use Python to develop controls applications for the CERN Control Centre, and how to use Python for scientific computing, big data analysis and machine learning.
  • Develop common components and libraries in support of the above use cases.
  • Help new users to become productive by recommending suitable online training material, and complementing it with CERN-specific guidelines and documentation.
  • Contribute your developments back to the open source community.
  • Mentor more junior software engineers who will help you tackle the above tasks.

Experience:

  • Proven experience working in a software engineering position and mentoring a small team.
  • Proven experience with modern software engineering, applying quality assurance techniques and DevOps practices.
  • Extensive professional development experience using Python 3 and its ecosystem.
  • Good professional development experience with C and C++ on Linux, using GCC or Clang/LLVM.

The following are considered an asset but not mandatory:

  • Experience with Java, the Gradle build system and Maven repositories.
  • Experience of UNIX systems programming and operating systems concepts.
  • Experience with statistical data analysis, big data analytics and machine learning and related frameworks, e.g. scikit-learn, TensorFlow and Spark.
  • Active participation in open source projects, with accepted contributions.

Technical competencies:

  • Development of application software in Python and C++.
  • Knowledge of programming techniques and languages both for application software and scientific/big data computing.
  • Knowledge and application of software life-cycle tools and procedures including DevOps.
  • Testing, diagnosing and optimization of software.

Behavioural competencies:

  • 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; showing a sincere interest in the concerns and perspectives of others.
  • Achieving results: driving work / projects along and seeing them through to their conclusion; delivering prompt and efficient service taking into account customer needs.
  • Demonstrating flexibility: readily absorbing new techniques and working practices; proposing new or improved ways of working Instigating and promoting change as an opportunity for organisational development.

Language skills:

  • Spoken and written English with the ability to draw-up technical documentation and to make oral presentations.
  • Knowledge of French or the willingness to acquire it rapidly would be an advantage.


Company

Imagine taking part in the largest scientific experiment in the world. CERN needs more than physicists and engineers – if you’re a student, a graduate, just starting your career or an experienced professional, Whatever your field of expertise, CERN could be your next opportunity: take part!

CERN is a truly unique organisation. A genuine collaboration between countries, universities and scientists, driven not by profit margins, but by a commitment to create and share knowledge.

People here are part of immense scientific discoveries, answering some of life’s most complex questions and pushing the boundaries of understanding. Experts from every field come here to share in this ambition and the nature of this collaborative, international community creates a genuine atmosphere of trust. People are free to work creatively and to trust in, and rely on, their colleagues across the organisation.

History’s being made here – and the excitement is tangible, inspiring, overwhelming at times. It is the only place in the world that you can do this work in this way.

CERN. Take part.

Get job alerts

Create a job alert and receive personalised job recommendations straight to your inbox.

Create alert