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.
The Role:
This role is suitable for graduate 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:
* Responsibilities will include the following listed below and other duties may be assigned depending on the needs of the business:
* Translate user requirements and/or technical specifications into functional applications.
* Design, build, and maintain efficient, 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 applications.
* Track down software issues and bugs and implement fixes.
* Work with firmware engineers and develop internal software for R&D purposes as needed.
* Provide support for all existing/legacy software applications.
* Support for software transferred to production, and in-service production engineering issues.
* 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 improvements.
* Train other employees as required.
* Any other reasonable duties associated within the scope of this job.
Required Skills:
* Proficient in C#, with a good knowledge of its ecosystems.
* Working knowledge of the .NET.
* Adept at writing reusable .NET class libraries.
* Strong understanding of object-oriented programming and SOLID principles.
* Experience 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 would be required.
* Experience of working in a technical support role and able to help other engineers/technicians remotely.
* Successful contribution to engineering and/or design projects at the concept level.