About the Role
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