Pupose of the Job:

Senior Software Engineers are part of the software development team building the MeerKAT, MeerKAT Extension, African VLBI Network (AVN) and the Square Kilometre (SKA) telescopes. Senior software engineers research, analyze and evaluate requirements for the existing or new software applications, furthermore they design, develop, test and maintain software solutions to meet these requirements. They are expected to mentor and work with software engineers and junior team members to accomplish their tasks.

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.
Participate in development of project schedules and activities.
Participate in the development of budgets and cost/benefit analysis for compliance with project procurement policies.

Key Requirements:
Qualification:
B.Tech/B.Sc (Comp Sci) with 10+ years; OR
B.Eng/B.Sc Hons (Comp Sci) with 9+ years; OR
[URL Removed] (Comp Sci) with 7+ years; OR
PhD/D.Eng with 5+ years; OR
* 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.
  • Modern software collaboration tools such as Github, Containers, Google Drive, JIRA etc.
  • Python programming language.

Desired Skills:

  • C/C++
  • GitHub
  • JIRA
  • Python

Desired Work Experience:

  • 5 to 10 years

Desired Qualification Level:

  • Degree

Learn more/Apply for this position