PURPOSE:

The Controls Software Engineer plans, implements, modifies, administers, and evaluates Control and Data Acquisition (SCADA) software and systems for the organisation’s telescope. While being part of the organisation’s Computing and Software team, they work with the Observation Monitoring and Control Agile Release Train in coordination with the Control System Architect and other Control System Engineers to develop the organisation’s control system, using the TANGO framework. They must understand Agile methodologies and DevOps processes. They must have experience in Python, Git, Test-Driven Development, Test Automation & Continuous Integration. They should have or be willing to acquire experience in the TANGO toolkit including TANGO device development and client-side tools, understanding of Interferometry techniques, C++, Docker, Kubernetes, Gherkin, Behaviour Driven Development & practical experience configuring instrumentation and commissioning control systems and parts of scientific instruments.

KEY RESPONSIBILITIES:

  • Development and maintenance of the telescope control system software
  • Assist in systems engineering Documentation refinement
  • Support users, operators, as well as the implementation of releases, system changes and fixes.
  • Establish and maintain working relationships with members of other teams within the organisation.
  • Work with other Software Team members to respond to inter-team issues.
  • Manage relationships with mentors and senior engineers such that there is a learning relationship from their experience or expertise
  • Participate in project management and activity management activities.
  • Attend relevant training/courses to gain experience and improved knowledge.
  • Research new technologies, methods, or approaches, with the purpose of utilizing them within the organization.
  • Participate in innovation and technology development initiatives.

KEY REQUIREMENTS:

QUALIFICATION:

  • BTech/BEng/ MTech/ MEng/PHD in Mechatronics, Electronic Engineering, Control Systems, Computer Science, or such relevant qualifications.

EXPERIENCE:

  • BTech in Mechatronics, Electronic Engineering, Control Systems, Computer Science, or such relevant qualification coupled with 6 years relevant working experience within a software engineering environment, preferably in an engineering development project environment with a strong control system.
  • BEng/ MTech in Mechatronics, Electronic Engineering, Control Systems, Computer Science, or such relevant qualification coupled with 4 years relevant working experience within a software engineering environment, preferably in an engineering development project environment with a strong control system.
  • MEng in Mechatronics, Electronic Engineering, Control Systems, Computer Science, or such relevant qualification coupled with 3 years relevant working experience within a software engineering environment, preferably in an engineering development project environment with a strong control system.

  • PHD in Mechatronics, Electronic Engineering, Control Systems, Computer Science, or such relevant qualification coupled with 1-year relevant working experience within a software engineering environment, preferably in an engineering development project environment with a strong control system.

  • Python or C/C++ programming language and experience in development, testing, deployment, commissioning, release, and support of projects in Python or C/C++.

KNOWLEDGE:

  • Experience in programming in Python.
  • Experience in developing SCADA, Control systems and plc development
  • Experience with control systems frameworks, e.g. TANGO toolkit including TANGO device development and client-side tools, or comparable toolkits
  • Software development, including database development, real-time sensor messaging management, Behaviour Driven Development
  • Computer and environment setup and configuration, including the use of containers, Kubernetes, Gherkin, etc.
  • Practical experience configuring instrumentation, integrating, and commissioning control systems, and operator training.
  • Willingness to transition between system development and system support and operations team

SKILLS:

  • Modern software collaboration tools such as Github, Containers, Google Drive, JIRA etc.
  • Understanding and experience in implementation of project management and system engineering principles.
  • Experience with test-driven development and integration testing techniques, methodologies, and frameworks; and supporting systems like revision control and build systems.
  • Experience with quality assurance processes and software development processes and willingness to participate in improving software development processes and software quality procedures.
  • Teamwork and Collaboration: Cooperates with others to achieve organisational objectives and may share team resources to do this Collaborates with other teams as well as industry colleagues.
  • Judgement and Problem Solving: Anticipates and manages problems in ambiguous situations. Develops and selects an appropriate course of action and provides for contingencies. Evaluates, interprets, and integrates complex bodies of information and draws logical conclusions, synthesises proposals and defends options with reasoned arguments.
  • Adaptability: Demonstrates flexibility in thinking and adapts to and manages the increasing rate of organisational change by adjusting strategies, goals, and priorities.
  • Willingness to participate in formal and informal learning and mentorship programs

Desired Skills:

  • Github
  • Jira

Learn more/Apply for this position