##### Job Description :
##### **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.
##### **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
##### **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.