The customer is a major manufacturer of microscope systems and offers solutions for biomedical research, healthcare, materials research and the high-tech industry. We are looking for a Software Developer with the following profile to work at the customer's site and remotely
Technology stack
C#, .NET, WPF, MVVM, Windows OS, multi-threading
Development environment
- Work item management: Azure DevOps
- Code repository: GIT
- Code: multilayer architecture, development ranges from UI to deeper logic layers
Working environment
- Additionally to coding, developers create unit and component tests as well as test automation
- Developers have to be familiar and experienced with the concepts and patterns of S.O.L.I.D.
- Coding conventions and guide lines have to be followed. Tools: StyleCop, Resharper, ...
- Code reviews and Pull Requests are obligatory.
- Branching & merging policies apply. Branch based development is often required. SW has to be tested before merged to "develop".
- Large code base: several million lines of code
- Roughly 200 developers in over 40 teams across multiple locations work into the same code base. There are dependencies in the code requiring awareness and communication
- The external developers will be part of existing mixed scrum teams consisting of internal and external team members
Development Process
scrum (relatively close to the scrum guide)
- Mixed multidisciplinary scrum teams, often across 2 or 3 locations consisting of developers, architects, testers, PO, scrum master, UX/UI experts, documentation experts
- There are 2 product lines: ZEN core and ZEN blue releasing every 6 months with a 3 month interval:
- ZEN blue in spring and autumn, ZEN core in summer and winter. Some teams are product specific, releasing every 6 months. Other teams release into both product lines every 3 months.
Product
The product is a desktop application software, usually connected to a microscope, with multiple optional modules and configurations that runs on Windows workstations at end customers. The software is in almost all cases used to control the microscope for data acquisition in complex experiments. The data are images and other data. After and while image acquisition the data are processed, analyzed, visualized and stored. Storage can vary from local workstation, data bases, servers, cloud. Data processing can vary from local CPU, distributed CPUs, GPU(s), cloud.
Required experiences & exclusions
- Roughly 200 developers in over 40 teams across multiple locations are working on the same large code base. We need developers who have experience and willingness to work in such an environment and accept the associated procedures and challenges.
Developers who have worked alone or in small teams on small single purpose projects are not suited and can be excluded. - Developers should have experience with working in a large legacy code base
- Developers should have extensive experience, practice and master appropriate tools to ensure code and product quality avoiding building up technical debt
- Developers have to have a transparent understandable coding style and comment sufficiently to ensure collaboration and maintainability of the code
- Developers have to communicate with peers, technical leads and technical "Focus Groups" on how to implement.
- We develop complex Windows desktop software. Unless otherwise stated and listed below as specially requested profiles we do NOT need:
- Web frontend/backend developers (C#, ASP.NET, angular, …)
- Data base developers (SQL, no-SQL, mongo-db, ….)
- Mobile developers
- Embedded developers
Developers with experiences in these fields are not suitable as "general purpose developers for this customer" and can be excluded.
Languages
- English: fluent, working language
- German: basic / advanced sufficient (socializing)
- Location: The potential for on-site availability in Munich for 2-3 working days is preferred, especially in the training phase.