SARAO has opportunities for 2 (two) Senior Software Engineers to join our team. The main purpose is the responsibility for software engineering focussing either on the AVN VLBI Network (AVN) and MeerKAT systems respectively reporting to the Functional Manager: Software.
Minimum education required:
- B.Eng. / B.Sc. / B.Tech. or higher in Computer Science or Engineering with a software focus or related field
Minimum work experience required:
- 10+ years of experience in a software engineering environment, preferably in an engineering development project environment with a strong software focus
- Experienced in development, testing, commissioning, release and support large scale projects in Python and/or C++
- Technical knowledge of development in Linux operating systems (experience in system administration of such will be beneficial)
- Technical experience in architecture design and development of large software projects (experience with control and monitoring will be beneficial.
- A relevant masters’ degree will be considered equivalent to 2 years’ of experience.
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, HartRAO and African partner countries
- Collaborate with departmental stakeholders to support engineering, commissioning, operations and early 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
- Mentoring junior software engineers
- 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
- These tasks will be re-evaluated on an on-going basis and may change according to the needs of the project.
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
- PLC development using Structured Text
- Control system PID loops knowledge and experience
The ideal candidate will have the following competencies:
Ability
- participate and thrive in a collaborative environment
- communicate effectively written and verbally
- troubleshoot issues methodically
- both work independently and be a good team player
Experience
- programming in the Python programming language
- quality assurance processes and software development processes
- development, testing, deployment, commissioning, release and support large scale projects
- test-driven development and integration testing techniques, methodologies and frameworks; and supporting systems
- implementation of project management and system engineering principles
- developing applications targeted for the Linux operating system
Knowledge
- Python and/ or C++ programming languages
- modern software collaboration tools such as Github, Google Drive, JIRA