Simon Perkins

Senior Scientific Software Developer at South African Radio Astronomy Observatory

Cape Town, Western Cape, South Africa
email-iconphone-icongithub-logolinkedin-logotwitter-logostackoverflow-logofacebook-logo
Join Prog.AI to see contacts
email-iconphone-icongithub-logolinkedin-logotwitter-logostackoverflow-logofacebook-logo
Join Prog.AI to see contacts

Summary

🤩
Rockstar
🎓
Top School
Simon Perkins is a Senior Scientific Software Developer with 12 years of experience building high-performance, distributed data pipelines for radio astronomy and scientific computing. Based in Cape Town, he has led the design and implementation of Dask-based distributed workflows, Apache Arrow/Parquet data representations, and RFI-flagging, simulation and compression tooling for large telescope datasets. His open-source contributions to prominent projects like Dask, CuPy and Numba demonstrate deep expertise in parallelism, CUDA compilation backends, and NumPy-aware compiler internals. Simon combines academic rigor from a PhD and postdoctoral work on distributed interferometry solvers with production-grade engineering at Coiled and the South African Radio Astronomy Observatory. He is comfortable working across layers—from low-level compiler and CUDA toolchains to large-scale scheduler optimizations—unifying performance tuning with usable APIs. An underrated strength is his ability to translate complex numerical methods into maintainable, scalable software that runs on heterogeneous compute (CPUs and GPUs).
code12 years of coding experience
job8 years of employment as a software developer
bookDoctor of Philosophy (PhD), Computer Science, Doctor of Philosophy (PhD), Computer Science at University of Cape Town
github-logo-circle

Github Skills (18)

datatypes10
python10
llvm10
testing10
nvcc10
numpy10
compiler-compiler10
parallel-computing10
dask10
cuda10
compiler10
numba10
pandas9
cublas9
scikit8

Programming languages (12)

HCLJavaC++ShellRustCMakeJavaScriptGo

Github contributions (5)

github-logo-circle
dask/dask

May 2017 - Apr 2023

Parallel computing with task scheduling
Role in this project:
userBack-end Developer
Contributions:25 reviews, 14 PRs, 161 comments in 6 years
Contributions summary:Simon primarily contributed to the core functionality of the Dask library. Their work involved addressing bugs related to zero-dimensional array rechunking, optimizing index chunking, and introducing the `einsum` function for array operations. Additionally, the user made improvements to the documentation and configuration, including adding layer annotations for improved task management within the distributed scheduler. These changes indicate a focus on improving the usability, performance, and features of Dask for parallel computing.
pythonschedulingparallelnumpydask
cupy/cupy

Jan 2019 - May 2019

NumPy & SciPy for GPU
Role in this project:
userBackend Developer
Contributions:14 commits, 1 PR, 19 comments in 3 months
Contributions summary:Simon primarily contributed to the CUDA compiler backend within the CuPy library. Their work involved adding and refining the `nvcc` backend, a crucial component for compiling CUDA code. This included fixing bugs, handling options, and supporting different code types such as cubin and ptx files, demonstrating their expertise in the build and compilation process of CUDA kernels. The user also addressed several flake8 issues in the codebase.
cudapythoncusolvergpunumpy
Find and Hire Top DevelopersWe’ve analyzed the programming source code of over 60 million software developers on GitHub and scored them by 50,000 skills. Sign-up on Prog,AI to search for software developers.
Request Free Trial