KEY RESPONSIBILITIES:
- 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 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.
- Provide project management and progress reporting input as required by the Functional Manager and for team communication.
KEY REQUIREMENTS:
QUALIFICATION:
- B.Tech/B.Sc. (Comp Sci) with 5+ years
- B.Eng./B.Sc. Hons (Comp Sci) with 4+ years
- [URL Removed] (Comp Sci) with 3+ years
- PhD with 2+ years
- Engineering (with a software focus) or related field
EXPERIENCE:
- Experience in a software engineering environment, preferably in an engineering development project environment with a strong software focus.
- Python or C/C++ programming language and experience in development, testing, deployment, commissioning, release, and support of large-scale projects in Python or C/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.
- Experience in programming in the Python programming language.
- 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 etc.
- Python programming language
Desired Skills:
- C/C++
- Python
- Linux