- One of our biggest clients has vacancy for Senior Software Developer to join their Science Processing team. The incumbent will report to the Manager: Science Processing.
The main purpose of these roles are as follows:
- The Senior Software Developer is a part of a development team building the MeerKAT, MeerKAT Extension and the Square Kilometre telescopes’ Science Data Processors.
- Senior software developers research, analyze and evaluate requirements for existing or new software applications and operating systems, and design, develop, test and maintain software solutions to meet these requirements. They may be expected to guide and work with more junior team members to accomplish their tasks.
Education and skills:
- A post-graduate degree or equivalent qualification in computer engineering, computer science, electrical engineering or related fields
- Eng. / B. Sc. / B. Tech. or higher in Computer Engineering, Computer Science or Electrical Engineering or related field
- Demonstrated domain and technology knowledge, expertise, specialization or thought leadership in computing, systems design, architecture or implementation. This can be demonstrated through certification, higher research-focused qualifications, or record of delivery of dynamic solutions, organizing or leading contribution in the technology or innovation community
- 7 years’ experience, in a combination of further (post-graduate) education and work experience.
- Experience developing software and systems in Python, or other imperative languages
- Experience in systems analysis and engineering
- Experience working with formal project management and agile practices and methods
- Experience working with data processing or backend systems
- Knowledge, experience or specialization in implementing specialist technology and computing modules, e. g. security, networking, identity and access management, file management systems, large scale computing and storage, etc.
- Experience integrating and configuring various software technologies and infrastructure
- Experience in technology research, technology development and maturation towards production readiness
- Knowledge, experience or specialization in some computing concepts such as computing theory, data science, architecture, algorithms and patterns, parallel computing, computer systems optimization, etc.
- Ability to effectively transfer knowledge and skills to other team members
- Ability to mentor, guide and further develop junior team members
- A clear and methodical approach to problem solving
- A high attention to detail, excellent organization skills
- Good communication skills, written and verbal
- Eagerness to learn new things or self-development