Software Developer – Data Acquisition
Software Developer on the Data Acquisition team at the Canadian Light Source synchrotron in Saskatoon, designing and building a replacement data acquisition system for beamlines — frontends, device coordination, data pipelines, service communication, and APIs — using custom and community tools such as Bluesky.
- Compensation
- CA$69.9K–CA$94.5K / yr
- Location
- Saskatoon, Canada
- Work setup
- Not specified
- Seniority
- Not specified
- Employment
- Not specified
- Experience
- Not specified
- Category
- Software engineering
- Posted
Skills
Must have
- Relevant undergraduate degree or diploma
- Minimum of two years of relevant experience
- Proven ability to work independently and manage multiple tasks with changing priorities
Nice to have
- Experience with databases (relational and/or document based)
- Interfacing with SCADA systems (preferably EPICS)
- Communication paradigms for service ecosystems (REST, gRPC, webhooks, etc.)
- Experience with messaging systems (ZeroMQ, NATS, etc.)
- Automation experience (custom workflows, ansible, GitHub Actions, etc.)
- Experience leveraging AI techniques to optimize programming and automation workflows
- Code management including tools, tracking, and customization (git, GitHub, GitLab, etc.)
- Agile systems and project forecasting approaches (Scrum, Kanban, etc.)
- Software testing paradigms (unit, integration, regression testing, etc.)
Full description
The salary range is $69,880 - $94,544. Salary will be commensurate with qualifications and experience.
The Canadian Light Source Inc. (CLSI) is a national research facility of the University of Saskatchewan. CLS produces very bright light to explore the nature and structure of molecules and serves national and international users from academia, industry, and government institutions. With 22 beamlines enabling advanced imaging, spectroscopy, diffraction, and microfabrication capabilities, CLS is a globally recognized centre for multidisciplinary scientific excellence.
CLSI is now accepting applications for a Software Developer in our Data Acquisition team. As a member of the team, the incumbent will participate in the design and development of a replacement data acquisition system for our current beamlines. As a member of the Data Acquisition team, you will be developing in-house systems with custom and community tools (such as Bluesky) as part of the team’s mandate to make beamlines more efficient and effective. The new centralized system will provide many interesting and challenging opportunities for professional growth. There will be opportunities to participate and contribute to synchrotron community projects as our own maturity grows in this new space.
Responsibilities
- Actively develop standard aspects supporting data acquisition: frontend, device coordination, data pipelines, service communication, and API development.
- Possess knowledge of connections and dependencies for deployed systems, including databases, scheduled tasks, messaging systems, logging, caches, etc.
- Understanding of system architecture and knowledge of dependencies between interconnected systems.
- Architects, designs, implements, and maintains data acquisition software.
- Undertakes software development projects in a team environment working closely with other developers, clients, other community members, and end-users when applicable.
- Work with teammates to upgrade and maintain automation pipelines.
- Troubleshoots and resolves complex problems and incidents for applicable systems while working with other staff and end users to determine the root causes of failure.
- Gathers functional requirements in collaboration with external stakeholders. Assists in identifying impacted processes and stakeholders considering existing eco-systems and their strategic roadmap. Refines functional requirements into technical requirements considering the needs for performance, scalability, and usability.
Required Qualifications
- A relevant undergraduate degree or diploma and a minimum of two years of relevant experience is required.
- Proven ability to work independently and manage multiple tasks with changing priorities.