Vacant Post – Junior Software Engineer

Website ska_africa NRF/SARAO

Contract type: Permanent
Job Level: Junior
Work Location: Cape Town, Western Cape
Closing Date: 15 April 2024

The National Research Foundation (NRF) supports and promotes research and human capital development through funding, the provision of National Research Facilities and science outreach platforms and programmes to the broader community in all fields of science and technology, including natural sciences, engineering, social sciences and humanities.

The South African Radio Astronomy Observatory (SARAO) spearheads South Africa’s activities in the Square Kilometre Array Radio Telescope, commonly known as the SKA, in engineering, science and construction. SARAO is a National Facility managed by the National Research Foundation and incorporates radio astronomy instruments and programmes such as the MeerKAT telescope in the Karoo, the Hartebeesthoek Radio Astronomy Observatory (HartRAO) in Gauteng, the African Very Long Baseline Interferometry (AVN) programme in nine African countries as well as the associated human capital development and commercialisation endeavours.

Junior Software Engineers are part of a development team building the MeerKAT, MeerKAT Extension, African VLBI Network (AVN) and the Square Kilometre Array (SKA) telescopes. They are responsible for writing the software that controls and monitor the telescope. Junior Software Engineers develop, test and maintain software solutions to meet the requirements.

Key Responsibilities:
* Software development of the telescope operational software. All stages of the full software development life-cycle may be encountered: from requirements analysis, architectural input, software design and development, to testing, integration and deployment, as well as close interaction with hardware subsystems.
* Participate in deployment environments and processes, this may involve site visits to the Karoo.
* Participate in commissioning and lab integration of software and hardware.
* Participate in coding standard compliance and code reviews.
* Follow System Engineering principles for development of software.
* Produce documentation sets for the applicable subsystem as required.

Key Requirements:
Qualification:

* B.Tech/ B.Sc (Comp Sci) with 3 years’ working experience, OR
* B.Eng / B.Sc Hons (Comp Sci) with 3 years’ working experience, OR
* M.Eng / M.Sc (Comp Sci) with 2 years’s working experience, OR
* PhD / D.Eng only with 1 years’ working experience, OR
* Engineering (with a software focus) or related field

Experience:
* Experience in programming languages (Python or C++ or Java).
* Experience in prototyping and development, including, testing, deployment, commissioning, release and support of large scale projects.
* 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.
* Experience in the implementation of project management and system engineering principles

Knowledge:
* Modern software collaboration tools such as Github, Containers, Google Drive, JIRA.
* Python programming language

Additional Notes:
Ability to:

Ability both to work independently and be a good team player.
Ability to participate and thrive in a collaborative environment.
Strong English oral and written communications.
Ability to develop back-end software (preferably using the Python programming language, or alternatively using other languages such as C++, Java, C#).
Ability to work with collaboration tools such as Github, Google Drive, Containers, Jira.
Ability to troubleshoot issues methodically.

Desirable additional education, work exp. & personal qualities:
Python programming (or other language such as C/C++/Java) technical knowledge and experience.
Linux operating system technical knowledge and experience.
Software development lifecycle knowledge and experience.
Understanding and experience in implementation of 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.
Self-motivated and an ability and willingness to self-train and up-skill independently.
Keen attention to detail.
Strong oral and written communication skills.

Information:
The website www.nrf.ac.za provides more details on the NRF initiatives and activities.

Applications:
Applicants should submit a comprehensive CV by logging to https://ess.nrf.ac.za/Account/Recruitment and apply online. Applications should be accompanied by a letter of motivation indicating the applicant’s suitability for the position. The names and contact details of at least three referees should be provided.

Closing Date: 15 April 2024

The NRF offers a challenging career and competitive remuneration package which is commensurate with qualifications and experience.

The NRF is committed to employment equity and redress and the appointment to the position will be made in line with the NRF Employment Equity Plan.

The NRF reserves the right not to make an appointment.

Correspondence will be sent to short-listed candidates only