Full-Stack Engineer (SY-EPC-CCS-2024-113-LD)
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.
Introduction
Are you a talented software engineer, passionate about full-stack development? Do you have in-depth experience with developing sophisticated web frontends and asynchronous Python backends? Do you feel confident and experienced in working with complex relational databases that must be highly reliable? Are you comfortable in a collaborative development environment using Windows, Linux, Docker, Git, and GitLab CI/CD? Then apply for this unique challenge as the next step in your career. CERN, take part!
You will join the Accelerator Systems Department (SY), which is responsible for the beam-related technical systems of the CERN accelerators. The SY teams design, build and operate equipment systems in all CERN accelerators, and are engaged in ambitious forward-looking R&D programmes.
You will be working within the Electrical Power Converter Group (SY-EPC), responsible for the power converters for the whole CERN accelerator complex, and join the Tools Team within the Converter Controls Software Section (SY-EPC-CCS), which develops and supports the power converters control software and databases for the SY-EPC group.
The section is responsible for a large, distributed control system for more than five thousand power converters and a dozen static VAR compensators. These range in power from a few Watts to 150MW and are used to drive particle beams through the electromagnets in the accelerators, transfer lines and experiments.
Furthermore, the section provides a 24/7 stand-by service to assist technicians with timely resolution of control software issues on site. Consequently, while accelerator systems are in operation, you will be required to be on-call for one week every two to three months (i.e. four to five times a year).
Functions
As a full-stack engineer, you will maintain and develop web tools which empower your control software colleagues as well as power converter experts to operate and maintain power converters, while respecting deadlines and ensuring software quality.
Your activities will include:
- Collaborate with cross-functional teams inside SY-EPC to identify requirements for new complex web applications;
- Analyse existing, complex workflows and create simplified, well-structured solutions for them;
- Design, implement, and document new web applications that meet the identified requirements;
- Develop, test, and maintain the full stack of new and existing power converter expert applications including the backend (Python, FastAPI, Oracle, PostgreSQL) and the web frontend (HTML5, CSS3, JavaScript, Vue.js);
- Maintain existing Python background services (daemons) and databases;
- Regularly conduct and participate in code reviews;
- Supervise junior engineers, fostering their professional growth and ensuring high standards of software engineering practices.
Master's degree or equivalent relevant experience in the field of computer science and/or software engineering or a related field.
Experience:
Required experience in the following areas:
- Designing, developing, and maintaining user interfaces using HTML5, CSS3, JavaScript, and Vue.js (Vue 3);
- Designing, developing, and maintaining software using Python, FastAPI, Pydantic, Asyncio, and SQLAlchemy;
- Designing, implementing, and maintaining high-reliability relational databases and their schemas using SQL;
- Using modern software development tools: containerized environments, debugging tools, browser DevTools, REST APIs, source code management (git), merge requests, CI/CD, issue tracking, and documentation.
Desired experience:
- Knowledge in working with Docker and Docker Compose files;
- Knowledge in working with the following frontend technologies: vite, Pinia, Vue Router, npm;
- Knowledge in working with authentication and authorization technologies (Keycloak, OAuth2);
- Experience in treating software support requests via ticketing system (e.g. customer support).
Technical competencies:
- Conceptualising, designing and developing user experiences and interfaces;
- Development of application software;
- Design of databases/repositories;
- Knowledge of programming techniques and languages, in particular those mentioned in the "required experience" section above;
- Knowledge and application of software life-cycle tools and procedures.
Behavioural competencies:
- Communicating effectively: ensuring that information, procedures and decisions are appropriately documented; listening actively to others and letting others speak; checking to ensure that the message has been well understood.
- Managing self: projecting self-confidence when presenting ideas, proposals and opinions; taking initiative beyond regular tasks and making things happen; demonstrating a receptive approach to feedback; being open to criticism and reconsidering position accordingly.
- Learning and sharing knowledge: being receptive to others' ideas and building on them; proposing ways to improve or streamline existing procedures, processes and methodologies; questioning traditional assumptions and ways of doing things.
- Solving problems: assimilating large quantities of information, identifying key issues and formulating conclusions clearly and concisely; producing workable and timely solutions that meet requirements.
- Achieving results: dividing extensive work / projects into manageable sub-tasks with clearly defined milestones; following through on new ideas and innovations; planning and implementing application.
Language skills:
- Spoken and written English: ability to understand and speak in professional contexts. Ability to draw-up technical specifications and scientific reports and to make oral presentations.
- The ability to understand and speak French or the undertaking to acquire it rapidly.
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.
This vacancy will be filled as soon as possible, and applications should normally reach us no later than September 1, 2024 by 23:59.
Employment Conditions
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:
- Participation in a regular stand-by duty, including nights, Sundays and official holidays.
- Work in Radiation Areas.
- Interventions in underground installations.
- A valid driving licence.
Job grade: 6-7
Job reference: SY-EPC-CCS-2024-113-LD
Benchmark Job Title: Computing Engineer
CH-1211 Geneva 23 / Genève / Geneva 23 / Genf / Geneva