Software Engineer (BE-ICS-STF-2024-122-GRAP)

  • Location:
  • Salary:
    negotiable / YEAR
  • Job type:
    FULL_TIME
  • Posted:
    2 months ago
  • Category:
    Engineering, Information and Communication Technology
  • Deadline:
    15/08/2024

JOB DESCRIPTION

Job Description

Your responsibilities

Are you a motivated Software Engineer passionate about delivering solutions for large-scale systems with strict performance and reliability requirements? Would you like to participate in all stages of development of a new archiving solution used in almost a thousand mission-critical control systems at CERN? If so, you should join our team to work on the NextGeneration Archiver for WinCC OA, developed in an openlab collaboration with Siemens!

 

You will join:

  • The Beams Department (BE), responsible for the beam generation, acceleration, diagnostics, controls, and performance optimization for the Large Hadron Collider (LHC) and its injector accelerators.

 

You will be a part of a passionate team working on the NextGeneration Archiver for WinCC OA, which provides an essential feature of every SCADA system – archiving of historical data so that it can be displayed and analyzed later.

Advertisement

The project presents many interesting challenges due to the large volume of processed and stored data, the large scale and distributed nature of the systems, and strict availability and reliability requirements.
The NextGeneration Archiver currently supports storing data in InfluxDB, Oracle, and PostgreSQL through dedicated backends. Your work will focus on developing a new backend for TimescaleDB – a promising open-source time series database, built on top of PostgreSQL.

As a Software Engineer in the Industrial Control Systems group, you will:

  • Be a part of the team of engineers at CERN and Siemens working in collaboration on shaping the future data archiving solutions for WinCC OA SCADA systems;
  • Participate in the complete software development lifecycle, from gathering requirements to deployment and support;
  • Design a schema for TimescaleDB that provides the best performance in our use case;

 

  • Develop a backend to support both writing to and querying data from the selected TimescaleDB schema;
  • Work on the tools and infrastructure used for automated end-to-end testing of the archiver, including performance, long-term, stress, and fuzz tests;
  • Provide the tools for deployment and configuration of the new archiving solution and share knowledge with system experts and users. As the work on the NextGeneration Archiver progresses, you will likely have an opportunity to get involved in some other topics, such as web UI, service-oriented architectures, and integrating Python as a scripting language in WinCC OA.

 

Your profile

Advertisement

Skills and/or knowledge

Required experience:

  • Modern C++;
  • Relational databases, including performance aspects;

 

  • Software design and architecture principles and patterns;
  • Good software development practices and workflows.

Advantageous experience:

  • Debugging and profiling tools for C++;

 

Advertisement
  • Multithreaded and distributed programming;
  • DevOps and CI with GitLab or similar platforms;
  • Python;
  • gRPC, ZeroMQ, and Protocol Buffers;
  • WinCC OA or other SCADA software;

Language skills:

  • Fluent in English, the ability to work in French would be an advantage.

 

This job has expired.