Notice: While Javascript is not essential for this website, your interaction with the content will be limited. Please turn Javascript on for the full experience.

Python Software Engineer
CERN
Geneva, Switzerland

Job Title

Python Software Engineer

Job Description

Would you like to help physicists, operators and engineers to use Python effectively for the LHC and other accelerators? Are you a quality-oriented software engineer and Python expert, who loves the language and its ecosystem but also sees its limitations? CERN, take part!

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.

Restrictions

  • No telecommuting
  • No Agencies Please

Requirements

Qualifications Master's degree or PhD, or equivalent relevant experience, in the field of computer science or a related field.

About the Company

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.

Contact Info

Previous Python Engineer , Bulb in London, United Kingdom Next Scientific Software Developer, Enthought in Cambridge, North East England, UK