Surface Measurement Systems is a leader in innovative research, pioneering new instruments and techniques in a highly specialized area of scientific research. We partner with prominent companies and academic institutions to provide groundbreaking technology and unique solutions that tackle some of the most significant challenges facing the world today, from sustainable energy and illness to climate change and space exploration.
Our customers are in a diverse range of industries, including pharmaceuticals, food and beverage, petrochemicals, and materials science. Our products are used in a variety of applications, such as drug development, food quality control, and materials testing.
Role Objective:
As Software Engineer you will be instrumental in the design and implementation of the software for scientific instrumentation. You will be supporting devices currently in production and to carry out new product developments having significant technical input in the software design aspect of scientific instrumentation.
You will be supporting the transition of prototypes from R&D into production, providing support to both R&D and Production team on new features of the software/system.
The role requires experienced of a broad range of software development disciplines. The process of development is by definition ever changing, and because of this a flexible and adaptable skill base is required. The Engineer should be able to demonstrate broad-based skills in software design with the ability to implement the software methodically.
Responsibilities
- Translate user requirements and/or technical specifications into functional application.
- Design, build and maintain effective, reusable and reliable C# code
- Design, build and maintain logical user interfaces in conjunction with Product Managers and users
- Ensure the best possible performance, quality and responsiveness of application
- Track down software issues and bugs, and implement fixes
- Work with Firmware engineer and develop internal software for R&D purposes as needed
- Provide support for all existing/legacy software applications
- Ensure effective project planning, design implementation and reporting
- Report and present progress of projects to all levels of staff, and take part in R&D review meetings.
- Contribute to process improvement
Must Have
- Proficiency in C#, with good knowledge of its ecosystems
- Working knowledge of .NET
- Adept at writing reusable .NET class libraries
- Strong understanding of object-oriented programming and SOLID principles
- Experience in writing and debugging multi-threaded/asynchronous code
- Implementing unit tests
- Good understanding of code versioning tools (Git)
- Experience of data acquisition, data manipulation and/or presentation
- Experience of working in a technical support role and ability to help others remotely
- Successful contribution to engineering and/or design projects at the concept level
Nice to have
- windows Presentation Foundation (WPF) using an MVVM architecture
- Windows Forms
- Hardware communication protocol vi interfaces such as RS232, RS485, TCP/IP and Modbus
- Familiarity with CI/CD tools such as Jenkins
- Familiarity with using package managers such as Nuget
- Experience with WiX or other installer technologies
- Basic understanding of Linux operating systems
What's great in the job?
- Great team of smart people, in a friendly and open culture
- No waste of time in enterprise processes, real responsibilities and autonomy
- Expand your knowledge of various business industries
- Real responsibilities and challenges in a fast evolving company
Our Product
What We Offer
Each employee has a chance to see the impact of his work.
You can make a real contribution to the success of the company.
Several activities are often organized all over the year, such as weekly
sports sessions, team building events, monthly drink, and much more