Software Engineer - Python
Oxford Data Plan · 20 hours ago
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.
