Software Developer - Python - Data Migration
Role details
Job location
Tech stack
Job description
We're supporting a fast-growing AI scale-up on an intensive 3-month migration programme, moving existing client environments onto a next-generation platform. This is a hands-on role for a pragmatic Python developer who enjoys untangling Legacy systems, working at pace, and delivering outcomes rather than perfection., You'll join a rapidly scaling engineering team to design and build migration tooling that transitions complex, poorly documented client environments into a modern platform. The work is investigative, collaborative, and delivery-focused, requiring close alignment with Product and Customer Success to define and validate what "good" looks like., * Rapidly reverse-engineer undocumented PostgreSQL schemas and Legacy data structures
- Understand how existing database records and S3-stored objects drive product behaviour
- Build Python-based migration scripts to transform Legacy notebooks and data into new platform formats
- Handle pickle file deserialisation and complex data transformation logic
- Collaborate with Product and Customer Success to define migration acceptance criteria
- Balance speed and quality to meet an aggressive delivery timeline
- Validate migration outputs against agreed business requirements
- Document migration logic, decisions, and create runbooks for handover
Requirements
- Strong Python development experience in production environments
- Solid PostgreSQL knowledge, including complex schemas and relationships
- Proven ability to reverse-engineer undocumented or Legacy systems
- Experience working with APIs (Flask and/or FastAPI)
- Familiarity with S3 or similar object storage
- Confident communicator able to explain technical concepts to non-technical stakeholders
- Comfortable working at pace with ambiguity and evolving requirements
Desirable
- Experience delivering data migration or platform modernisation projects
- Exposure to Jupyter notebooks or computational notebook environments
- Background in consulting, contracting, or startup environments
- Experience working with Legacy systems and technical debt
- Knowledge of data serialisation formats and trade-offs