SARAO has an exciting opportunity for a Software Engineer to join our Control and Monitoring Software team. The primary responsibility is software engineering. The successful incumbent will report to the Functional Manager: Software.
Minimum education required:
- B.Tech/B.Sc (Comp Sci)
Job specification:
- Prototyping and software development of the telescope operational software (all stages of the full software development life-cycle may be encountered).
- Provide hands-on technical support in the system administration of the hardware platforms, deployment environments and processing, which may include site visits to the Karoo.
- Collaborate with departmental stakeholders to support engineering, commissioning, operations and science activities.
- Assist in maturing of software development and quality assurance processes towards greater standardization and improved long term maintainability and robustness.
- Facilitate coding standard compliance and code reviews, which include mentoring junior engineers.
- Compile document sets.
- Provide project management and progress reporting input as required by the Functional Manager and for team communication.
- Participate in development of project schedules and activities.
- Participate in the development of budgets and cost/benefit analysis for compliance with project procurement policies.
Desirable additional education, work exp. & personal qualities:
- 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.
- Willingness to play a leading role in mentoring juniors.
- Ability both to work independently and be a good team player.
- Ability to participate and thrive in a collaborative environment.
- Self-motivated and an ability and willingness to self-train and up-skill independently.
- Keen attention to detail.
- Strong oral and written communication skills.
The ideal candidate will have the following competencies:
Ability
- To work independently and be a good team player
- Participate and thrive in a collaborative environment
- Communicate effectively (written and verbal)
- Troubleshoot issues methodically
Experience
- Experience in Prototyping and development, including, testing, deployment, commissioning, release and support of large scale projects
- Experience in programming in Python or C/C++ programming language
- Experience with quality assurance processes and software development processes and willingness to participate in improving software development proces
- Experience with test-driven development and integration testing techniques, methodologies and frameworks; and supporting systems like revision control
Knowledge
- Modern software collaboration tools such as Github, Containers, Google Drive, JIRA etc