About this role
We are looking for a Senior Software Engineer to join our team in Cape Town. Key Responsibilities: Prototyping and software development of the telescope operational software (all stages of the full software development life-cycle will 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 site. Collaborate with departmental stakeholders to support engineering, commissioning, operations and early science activities. Assist and ensure 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. 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. Make technical decisions independently without direction from the Technical lead. Innovate independently towards improving the software. Troubleshoot and solve very difficult software bugs Key Requirements: Qualification: B.Tech/B.Sc Computer Science, Computer Engineering or related field 10 years experience in a software engineering environment, prefereably in an engineering project environment with a strong software focus. Experience: Experience in a software engineering environment, preferably in an engineering development project environment with a strong software focus. Python programming language and experience in development, testing, development, commissioning, release and support of large scale projects in Python. 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. Quality assurance processes and software development processes and willingness to participate in improving software development processes and software quality procedures. Test-driven development and integration testing techniques, methodologies and frameworks; and supporting systems like revision control. Experienced in computer and environment setup and configuration, including the use of containers, and Kubernetes. Knowledgeable to analyse and implement cybersecurity threats suggested. Developing applications targeted for the Linux operating system. Implementation of project management and system engineering principles. Please call us on 010 030 0127 for more information. NB: Should you not hear from us in 6weeks please consider your application unsuccessful.