We are looking for an experienced Software Engineer — Python to join our AI & Data Ops team and take ownership of the engineering of our internal Python library — the framework used across the organisation to build, run and publish daily KPI indices.
Our internal Python library is part of the production path for the product we sell: it turns alternative data into the daily KPI indices published to our clients. Your role is to make the platform safe and reliable to build on: stable interfaces, well-tested changes, clear failures, predictable releases and production code that is easy to operate.
This is a hands‑on role where you will write Python daily, act as maintainer and reviewer for a shared codebase with many contributors, and work closely with data scientists, DevOps engineers and the database team.
Roles and Responsibilities
- Own the internal Python library end to end, including architecture, API design, packaging, versioning, releases and rollout across dependent repositories.
- Refactor and modernise high-traffic areas such as data readers, database access and publication layers behind stable, well-tested interfaces.
- Define and enforce clear contracts around schemas, dtypes, expected shapes and other library boundaries so invalid data fails early and predictably.
- Own testing and CI/CD, including pytest strategy, regression testing, GitHub Actions, Docker image builds and release automation.
- Harden production code paths through robust error handling, retries, idempotent writes and environment‑aware configuration.
- Improve observability across scheduled workloads through structured logging, alerting and clear detection of cases where jobs complete without producing expected outputs.
- Review contributions from data scientists, maintain engineering standards, and manage backward compatibility and deprecations.
- Triage bugs and feature requests from internal users and debug production failures across application code, containers, permissions and data access.
- Maintain the ORM and data‑access layer alongside database schema changes, working closely with the database team.
- Collaborate with DevOps on AWS infrastructure, job definitions, scheduling and platform changes, and with data scientists to translate requirements into production‑ready software.
- Use AI tooling effectively while understanding, reviewing and being able to defend the code you ship.
Required Qualifications
Experience
- 2-4+ years of professional experience building and maintaining production Python software.
- Experience maintaining a shared Python library, SDK or internal platform used by multiple teams.
- Experience with packaging, releases, API stability, backward compatibility and contributor workflows.
- Proven ability to independently own and deliver technical projects end to end.
Python & Software Engineering
- Strong Python proficiency with experience writing clean, reusable, well‑tested production code.
- Strong experience with pandas, NumPy and SQLAlchemy or similar data-access tooling.
- Strong command of pytest and testing strategy, including regression testing where numerical outputs must remain stable.
- Experience with data serialisation formats such as JSON and Parquet.
- Experience with Python packaging and dependency management using tools such as uv, pip and lock files.
- Strong understanding of software design, refactoring, error handling and maintainable API design.
Cloud & Infrastructure
- Working knowledge of AWS services such as S3, DynamoDB, AWS Batch or ECS, CloudWatch, Athena and Glue.
- Comfortable debugging containerised production workloads using Docker, container registries and logs.
- Experience building or maintaining CI/CD pipelines using GitHub Actions or similar tooling.
- Working knowledge of IAM and the ability to diagnose common access and permissions issues.
Other
- Strong SQL and relational database skills, using MySQL, PostgreSQL or similar.
- Strong Git skills, including branching strategies and code review workflows.
- Able to review code written by non-software engineers and provide clear, constructive technical feedback.
- Strong written communication and comfortable working autonomously in a remote engineering environment.
- Fluent in English.
Desirable Skills
- Experience with schema validation or property‑based testing using tools such as Pandera or Hypothesis.
- Ability to read and make scoped changes to Terraform.
- Experience with developer tooling such as devcontainers, linting, formatting and pre‑commit workflows.
- Experience designing observability for batch systems, including structured logging, alerting and dashboards.
- Experience with Slack APIs or similar messaging integrations.
- Understanding of, or strong interest in, financial markets and business metrics.