Software Engineer, Data Team
Backend/data engineer on Confluence's Data Team in Cape Town, building a multi-tenant Python data API (FastAPI, Pydantic, SQLAlchemy, Docker, Azure) that serves as the shared data layer for the company's investment-data products — migrating legacy SQL Server stored-procedure logic into Python and integrating sources like Snowflake.
- Compensation
- Not disclosed
- Location
- Cape Town, South Africa
- Work setup
- Not specified
- Seniority
- Not specified
- Employment
- Full time
- Experience
- 1+ years
- Category
- Software engineering
- Posted
Skills
Must have
- Bachelor's degree in Software Engineering/development, Computer Science, or related field
- 1-3 years of experience in software development
- Strong proficiency in Python (3.12+) backend development — FastAPI, Pydantic v2, async/await
- Strong T-SQL skills with deep comfort in data and service layers of an enterprise application
- Expert-level SQL Server and data engineering: parameterized queries, query optimization, execution-plan analysis, indexing strategy, set-based processing, bulk/ETL movement, large-dataset tuning
- Comfort migrating logic out of legacy stored procedures into testable Python
- Exposure to modern cloud data platforms and warehouses (e.g. Snowflake)
- Interest in integrating multiple heterogeneous data sources behind a unified API
- Enough Azure and DevOps capability to deploy and operate what you build
Full description
Software Engineer, Data Team
Department: Development - Software Development
Employment Type: Permanent - Full Time
Location: South Africa
Reporting To: Thomas Garrett
Description
Location: US -Cape Town, South Africa
Why Confluence?
At Confluence, we’ve always been driven by a commitment to innovation, precision, and partnership in the investment data space. Our global footprint now spans multiple countries, giving our employees the opportunity to get exposure to other countries and cultures. And it stands to reason that none of this would have been possible without the hundreds of hard-working employees who work at Confluence.
More about the role & team
The Data Team is building the next-generation data platform — a multi-tenant platform that will become the shared data layer behind our applications. At the heart of that platform is a Python data API built on a layered router → service → repository architecture, containerized with Docker and deployed entirely through infrastructure-as-code.
Today the platform is SQL Server-heavy, and part of this role is migrating business and data logic out of legacy stored procedures into testable Python — parameterized SQL for retrieval, pandas for computation and reshaping. As we evolve, we intend to grow well beyond a single database — incorporating additional and modern data sources (for example, Snowflake, which the API's SQLAlchemy-based connection registry is already designed to add) and the patterns needed to serve them through a unified API. This is a foundational, shaping role: you will help define the architecture and direction of that next-generation platform, not just maintain what exists.
We are seeking a Software Engineer with a strong data-engineering focus to join the Data Team. The role is primarily focused on the data API, but it is a team role rather than a single-service one — you will work across the data platform as it grows. This is backend- and data-centric work: you will spend more time on data correctness, performance, and the movement and reconciliation of large datasets across heterogeneous sources than on any single framework or UI library. We value depth in the core technologies and engineering fundamentals over expertise in any specific component, and we expect enough Azure and DevOps capability to deploy and operate what you build.
What skills and experience do I need to succeed?
Bachelor's degree in Software Engineering/development, Computer Science, or related field.
1-3 years of experience in software development.
Strong proficiency in Python (3.12+) backend development — FastAPI, Pydantic v2, async/await — and T-SQL, with deep comfort in the data and service layers of an enterprise application.