Mid Software Developer (C, C++, Python)

 Job Description:

Project and Position

Client Description:

Built around exceptional individuals, the end-to-end software solutions we have delivered have won the trust of huge enterprise corporations like ASML one of the most influential companies in the world!

ASML is the largest manufacturer of photolithography machines that are used for the most important step in making semiconductors.

More than 90% of the semiconductors in the world are currently manufactured using ASML systems.

Project Description:

You are going to be part of a scrum team that actively develops and maintains software components related to data logging, data handling, GUI applications and other features used by ASML's photolithography machines.

Part of our code base is used for generating GUI applications deployed on and used to calibrate and diagnose the state of the said machines.

You will be involved in all stages of the software development process starting with requirements collection, design, development, testing and software maintenance.

Main Responsibilities:

  • Design and implement software using the best coding practices;
  • Debug applications to find root causes of issues and provide solutions;
  • Ensure code quality by providing suitable unit and integration tests;
  • Actively participate in Scrum Sprint Plannings, Daily stand-ups, Refinement and Retrospective Meetings;
  • Understanding and documenting software requirements;
  • Participate in the creation of project work break down structures and workload estimations;
  • Ensure project delivery on time.

Requirements

Required Experience:

  • 3+ years of hands-on experience in programming in both C and C++ in a business environment;
  • Good familiarity with STL;
  • Professional experience with version control systems (preferably GIT or SVN);
  • At least basic experience with the Python programming language and willingness to expand skills in that area;
  • Experience with working in and developing for Linux/Unix environment and shell scripting;
  • Understanding of the core OOP principles, data structures and algorithm complexity;
  • Experience with Inter-process communication and multithreading;
  • Understanding of the common best coding practices in software development as well as automated testing and integration testing as a practice;

Experience with any of the following would be considered an advantage:

  • Boost;
  • GTest and GMock;
  • makefiles and build systems;
  • GDB;
  • GCC;
  • Python C-API;
  • Agile development methods;
  • Containerization;
  • Any common GUI framework (e.g. Tkinter / Qt / OpenGL / WebGL / Motif / Vulkan);
  • Understanding of the most common design patterns;
  • Test driven development;
  • Behaviour driven development;
  • Code review process.

Personal skills:

  • Analytical thinking;
  • Experience working in a diverse multicultural environment;
  • Good communication skills;
  • Good command of the English language (level B1 or higher);
  • Strong analytic view combined with pragmatic attitude (flexibility);
  • Team player willing to collaborate;
  • Ability to work both independently and in collaboration with team members.
  Required Skills:

C C++ Software Python