The Senior Software Developer (DSP) drives or supports the overall design and development of radio astronomy-focused Digital Signal Processing products and applications owned by the Data Processing & Pipelines Department within the Engineering & Technology Development Division. The Senior Software Developer brings expertise in software development, high-performance computing and GPGPU programming to enable development and delivery of data processing products and applications.
JOB DESCRIPTION
- Architectural design and/or implementation of digital signal processing (DSP) products, applications and/or algorithms for Radio Astronomy data processing systems that satisfy higher-level system functional and performance requirements
- Design of these products contains elements of software development, high-performance computing (HPC, GPGPU) and high-speed data transport
- Support analysis, definition, integration, verification and validation activities of DSP products at various system levels
- Development of software to control, monitor, debug and support operation of the developed products and applications
- Drive, follow and support the relevant Software Design Life Cycle and Systems Engineering processes for product development throughout the entire product or application lifecycle from conceptualisation through to decommissioning
- Support deployment, maintenance, upgrades, operation and decommissioning of developed products
- Manage, support and coordinate resources to ensure delivery of products within project constraints
- Participate in the generation of technical system and product-related documentation applicable to developed DSP products to support the delivery and handover of the Data Processing & Pipelines Group??s products
- Drive and participate in Research & Development initiatives within the domain of expertise to develop novel ideas for future products and contribute to the overall continuous development of the group
JOB REQUIREMENTS
Qualification:
- Sc or B.Tech (Eng) (NQF 7) in Computer Engineering, Computer Science or related field with 13+ years relevant experience, OR
- Eng/B.Sc (Eng) (NQF 8) in Computer Engineering, Computer Science or related field with 9+ years relevant experience; OR
- MSc / [URL Removed] (NQF 9) in Computer Engineering, Computer Science or related field with 7+ years relevant experience; OR
- PhD (NQF 10) in Computer Engineering, Computer Science or related field with 5+ years relevant experience
Experience:
- Experience as a Software Developer with a track-record of designing and implementing digital signal processing or similar data processing systems on GPGPU/HPC hardware architecture.
- Experience building data processing applications specifically for Radio Astronomy instrumentation is advantageous but not required
- Experience in both designing high-performance data processing or digital signal processing systems at a higher, product level as well as low-level implementation of components and features
- High-performance computing, particularly GPU computing and implementing parallel processing on GPU-based systems
- Implementation of accelerated and optimised algorithms (DSP algorithms is advantageous)
- High-performance networking (e.g., ibverbs, DPDK, VMA or similar kernel bypass technologies)
- Experience analysing system requirements and defining a suitable system design
- Writing technical documentation describing the implementation and design of products at various technical levels
- Software development: Python (particularly for scientific computing, such as NumPy), C/C++
- Working with workflow and issue management tools (e.g., JIRA)
- Working with source code and version control tools (e.g., Git)
Desired Skills:
- • Good communication skills
- • A high attention to detail
- Excellent organisation skills