About the Role
We now have an opportunity for a Software Developer within Diamond’s Scientific Information Management Systems (SIMS) group which support and redevelop our scientific user Administration systems used within Diamond.
Our existing system (UAS) is considered the front door to Diamond for the international scientific users. They manage thousands of applications to use the facility from science groups all over the world. Enabling complex workflows, developed in house, staff at Diamond use the UAS to allocate Diamond scientific resources. UAS does not sit alone but is central to a wide ecosystem of services that supports visiting scientists. It is essential to the operational running of Diamond.
UAS is coming to the end of its life and we are taking on the exciting challenge of building its replacement.
Some of the main duties include:
1. Designing and developing new micro-services and websites to support future operational requirements.
2. Providing input to Diamond scientific software architecture.
3. Developing software integrations with third party systems used internally and globally across the international scientific community.
4. Providing support to the User Office, interacting closely with science group leaders and senior beamline staff. This includes fault diagnosis and resolution, taking responsibility for escalated issues and provision of a high-quality service/output.
5. Providing technical assistance within SIMS to develop, test, maintain and support user administration software, in collaboration with Scientific Computing and other groups.
6. Working with internal and external stakeholders, enhance the core software to make it robust, adaptable, and easy to use by developers.
7. Use technical and professional knowledge to identify opportunities for technical or process improvement across the beamlines supported by the team.
About You
You will hold a degree in engineering, computer science or have equivalent experience.
You will demonstrate experience in the following areas:
8. Significant relevant experience of JavaScript, HTML and CSS with a focus on developing and enhancing web applications with modern JavaScript frameworks such as React & NextJS.
9. A portfolio / GitHub of demonstrable experience of building web applications & dashboards with a focus on SaaS & B2B products, internal web-applications, Business CMS products or equivalent data-intensive applications.
10. Excellent technical understanding of methods, systems and approaches relating to technical software engineering e.g. Source Control, Code Review, Continuous Integration
11. SCRUM and agile processes.
Candidates with the following skill will be looked upon favourably, but these are not essential:
12. Familiarity with Service-oriented & Microservices architecture
13. Familiarity with Design tools (Figma, Sketch)
14. Exposure to JavaScript testing frameworks e.g. Jest, Vitest, Cypress, Jasmine, etc.
15. Knowledge of CI/CD techniques
16. Experience with GraphQL, OpenAPi spec, JSON Schema & SQL / No SQL databases.
17. Familiarity with MonoRepo project structures (TurboRepo)
18. Development of APIs with Python Frameworks e.g. FastAPI
Benefits
Diamond offers an exceptional benefits package to support staff in achieving a positive work/life balance. This includes 26 days annual leave plus Christmas closure, public holidays, 2 annual volunteering days and flexible working hours. We also offer an excellent defined benefit pension scheme. Staff also have access to a range of amenities on site including a nursery, cafes, a restaurant and sports and leisure facilities. A relocation allowance may also be available where applicable.
As standard this role offers a hybrid working arrangement with a minimum of 3 days working onsite per week.