Software Engineer Acquisition
Work Schedule
Standard (Mon-Fri)
Environmental Conditions
Office
Job Description
About us:
The Image Acquisition & Detection (IA&D) Software team, based in Thermo Fisher Scientific Eindhoven branch, develops software for targeted at platforms operating in Linux systems and Windows PCs.
Our request:
We are seeking for a Software Engineer eager to join our team and collaborate with the SW team and SW Architects to define and improve our shared technological view, validate assumptions, and evaluate alternatives using industry-standard technologies like C++20, CMake, Conan, Jenkins, and gRPC. This person will also participate in continuous improvement initiatives and make local decisions in an Agile environment.
Minimal Education / Experience:
- MSc or BSc degree in Software Engineering
- 2+ years as software engineer in high-tech software development.
The ideal candidate should have the following technical background:
- A proficient programming level in C++ including modern standards like C++17 or newer.
- Knowledge and experience with Bash and Linux (Docker, CONAN, Artifactory, Debian, WIX)
- Experience with cross-compilation Windows/Linux
- Experience with Jenkins (pipeline) and GIT (version control)
- Experience with CMAKE, gRPC, Python, and C# is desirable
- Affinity with software development close to hardware requirements
- Experience or exposure with SW for embedded systems (FPGA, CLHS, GenICam) is a plus
- Knowledge of and/or exposure to Test Driven Development (TDD) (gtest/boost-test).
- Understanding of Window COM (Component Object Model) is a nice to have
- Experience with Scrum and ideally with SAFe
We are looking for a person who:
- Has strong analytical and problem-solving skills and shows understanding of software development principles and processes.
- Has experience with performance-critical SW development.
- Has the ability to learn the domain quickly!
- Is able to work independently when provided a set of requirements.
- Is not afraid to speak up, ask questions, and proactively find solutions.
- Is an outstanding teammate who knows how to drive engagement.
The overall responsibilities are:
- Shared responsibility for the quality of the produced software together with the agile team (including test code).
- Designs, codes, documents, tests (automated), maintains, and deploys software.
- Applies Continuous Integration and Continuous Delivery.
- Using technical solutions that conform to requirements with a strong focus on end-users, performance, safety, security, maintainability.
- Actively participates in sprint planning, daily stand-up meetings, sprint reviews, sprint retrospectives, and backlog refinement.
The main activities/tasks are:
- Extend and maintain the image acquisition and processing code base (Acquisition Server).
- Design and implement new features which may not only impact Acquisition Server but also components outside of it.
- Improve the existing design with the introduction of new use cases (if and when required).
- Set up detector communication and data retrieval.
- Develop server and client implementations using IPC or RPC technologies (like shared memory, gRPC …).
- Extend and maintain image processing pipeline functionality (corrections/calibrations).