Python Developer
Location: Cirencester, Gloucestershire
Salary: £40,000 – £60,000
Full Time: 37.5 hours a week Monday to Friday
Benefits:
- Pension Scheme
- Healthcare Assistance Scheme,
- Birthday Off,
- Cycle to Work Scheme,
- Social Events,
- Additional 3 days holiday during company shut down in December between Christmas and the New Year.
The Company:
Landstack is a UK land and planning intelligence platform used by developers, land agents, planners and housebuilders. We ingest and process planning applications, Land Registry title data, constraint layers, local plan policy and comparable transactions from hundreds of sources, and turn them into something people can search, analyse and act on. We're a profitable, bootstrapped team based in Cirencester.
The role
You'll own the pipelines that get data into Landstack: scraping and ingesting planning data from local authorities and national datasets, cleaning and normalising it, geocoding and spatially joining it, and loading it into PostgreSQL/PostGIS and OpenSearch. Much of this data is messy, inconsistent and large, and a lot of the value in the product comes from doing that well. You'll work directly with the founder and the rest of the engineering team, and you'll see your work land in front of customers quickly.
What you'll do
- Build and maintain Python ingestion pipelines for planning, title, policy and geospatial datasets
- Design data models and transformations for spatial data in PostgreSQL/PostGIS
- Build and tune bulk indexing into OpenSearch, including queue-based and S3 buffered ingestion paths
- Add monitoring, validation and data-quality checks so bad data is caught before it reaches users
- Profile and optimise long-running batch jobs for memory, throughput and cost on AWS
- Document sources, schemas and pipeline behaviour
What we're looking for
- 3–5 years of professional Python experience, with a real focus on data processing rather than general scripting
- Strong SQL and hands-on experience with PostgreSQL; PostGIS or other spatial experience is a big plus
- Experience with ETL/pipeline patterns: batch jobs, queues (Redis, SQS or similar), idempotent and resumable processing
- Comfortable with pandas/polars, pyarrow or similar, and with handling datasets that don't fit in memory
- Experience scraping or integrating with awkward third-party sources and building resilience around them
- Working knowledge of AWS (S3, IAM, containers) and of running code in Docker/Kubernetes
- Care about correctness and data quality; you check the output, not just that the job finished