What you will be doing
The candidate must demonstrate strong scientific and Web programming skills and software engineering orientation, ideally complemented by sufficient knowledge in the Lcsa / Sustainability domain. The candidate's role is to bring solid software engineering expertise in different steps of the research projects led by sustainability scientists
- Conceive: you will propose IT solutions and roadmaps to contribute to achieve project's goals. In the case of new application ideas developed during projects, you will help to organize the main building blocks required to produce the new application.
- Implements: you will implement the IT technical solutions (simulator making, visualization, managing data, ...). This will include the programming of the different scientific and (web) user interfaces, using the results from the calculation backend provided from researchers in the project.
- Disseminate: you will disseminate knowledge obtained from accomplished projects by reusing visualization for research papers and if needed making Web applications to reach a larger public. You could also be asked to contribute to the licensing of the developed software.
- Continuous improvement: you will assess what was right and wrong in the process of managing a project and will try new workflow to enable a faster development. For example, identify that it was better to use a MicroService approach, instead of a monolithic approach and implement a simulator as a group of MicroServices. You'll also be asked to maintain documentation of the developed work.
Which profile we are looking for
- Educational background: Master degree and/or PhD in informatics, computer science or equivalent
- Required seniority: 2 years or more
- Libraries / frameworks:
- Good to Excellent master of any of the following client side libraries: React, VueJS
- Good to Excellent master of any of the following server side frameworks: Node, Spring, Django
- Excellent understanding of Web application architecture, programming and deployment
- Good knowledge of data science related techniques (visualization, curation, preparation, processing)
- Basic knowledge of modern virtualization by containerization technologies (podman, Docker)
- Basic knowledge of modern CI / CD techniques
- Basic to Good knowledge of container orchestration skills
- Good to Excellent Linux use as base of programming platform
- Good to Excellent master of GIT
Appreciated technical skills
- Good to Excellent Python (3) programming skills
- Good Java programming skills
- Basic to Good programming skills on functional programming techniques
- Basic to Good programming skills on other scientific oriented languages (julia, fortran)
- Basic to Good Machine Learning techniques
- Basic to Good GitLab platform knowledge
- GIS techniques, and basic knowledge (QGIS, grass library, etc.)
- Basic knowledge of modern project management techniques Agile-like (Kanban or Scrum)
- Basic knowledge of testing frameworks for at least one programming language (PyTest, JUnit for example)
- Basic to Good knowledge of code-quality measurements
- Open to try new techniques and technologies
- Ready to work in an international, multi-cultural environment.
- Rigorous and systematic in code development.
- Ready to work on simultaneous projects, with different technology stacks (for example Python+JS, Python+Java+JS, Java+R)
- Provide advice and positive feedback on code reviews.
- Ready to explain work to non-it specialists
- Ready to work with people without strong backgrounds in generic programming
- Good command of English (both spoken and written) is required
- Knowledge of German and/or French and/or Luxembourgish is considered as an asset
Candidates interested in the above position can apply online via the button below.
The application file should include
- A CV (including a list of the most relevant developed software)
- A motivation letter