Python/Spark/AI Developer
Tumaini Consulting · KwaZulu-Natal
Stop applying one at a time.
JobAlertsZA auto-applies to South African jobs like this one for you, overnight. Upload your CV once — we do the applying.
Start free — we apply for you →Our client is seeking an experienced Python/Spark/AI Developer to modernise data platforms by re platforming legacy T-SQL workloads onto Spark and Delta Lake while developing APIs and AI capabilities around these solutions. This opportunity is suited to a developer who values clean, tested, type-safe code and can work independently within a specification-driven environment.
Requirements
- 4+ years' professional Python development experience.
- At least 2 years' production experience building Spark or comparable distributed data pipelines.
- Strong Python 3.12 skills, including type hints and modern Python development practices.
- Experience with Pydantic, ABC-based provider patterns and modern packaging tools such as uv or Poetry.
- Experience with Click or similar CLI frameworks.
- Strong Apache Spark/PySpark experience, including DataFrame API, Spark SQL, partitioning and performance tuning.
- Understanding of Spark driver/executor architecture and Spark Connect.
- Production experience with Delta Lake or equivalent technologies such as Iceberg or Hudi.
- Strong SQL skills and the ability to translate legacy T-SQL logic into Spark SQL.
- Experience with hashing, surrogate keys and deduplication.
- Strong pytest experience across unit, integration and end-to-end testing.
- REST API development experience, preferably with FastAPI.
- Experience with Docker and Compose-based development environments.
- Strong Git and CI/CD discipline, including linting, static type checking and automated testing.
- Bachelor's degree in Computer Science, Engineering or equivalent experience.
Should you meet the requirements for this position, please email your updated CV attached to it.jobs@tumaini.co.za , alternatively contact 031 350 4018 or visit our website, www.tumaini.co. Correspondence will only be conducted with short listed candidates. Should you not hear from us within 3 days, please consider your application unsuccessful.