Python FastAPI + PostGIS Project - 6-7 weeks
We’d like to assess your practical skills in working with FastAPI, PostgreSQL + PostGIS, and geospatial data processing.
You will implement a small REST API using FastAPI and PostGIS to support geospatial operations.
The test includes 4 types of project tasks, each targeting different skills:
📦 Task Types
GeoJSON Input API
Build an endpoint that receives polygons in GeoJSON format and stores them in the database.Spatial Query with Bounding Box
Implement an endpoint that returns all polygons intersecting a given bounding box.Async Database Access
Use async FastAPI with proper database drivers to fetch geospatial data.Data Serialization
Ensure that geospatial data is returned in proper GeoJSON format to the client.
📘 Instructions
You will need to:
Use FastAPI as the web framework
Use PostgreSQL + PostGIS as the database
Include Docker configuration if possible
Use async where applicable
Follow REST best practices
We’re urgently looking for a Middle or Senior Python Backend Developer with solid experience in PostGIS and FastAPI to join our team on a high-priority GIS-focused project.
🔧 Project Overview
You’ll be working on a geospatial platform that handles large volumes of data, including polygon storage and spatial queries. The backend is built with FastAPI, and PostGIS is used extensively for spatial operations.
This is not a side project — we need someone fully dedicated and ready to dive in right away.
🛠️ Requirements
5+ years of experience with Python
Strong knowledge of FastAPI
Solid hands-on experience with PostgreSQL + PostGIS (geometry types, spatial indexing, performance)
Ability to process and store large-scale geospatial data
Confident working with optimized queries and performance tuning
Familiarity with Docker, Git, async Python
NO AGENCIES PLEASE.
📍 Engagement Details
Start date: ASAP (ideally Monday)
Duration: 6–7 weeks (full-time mission)
Availability: You’re expected to be fully dedicated to this project during working hours (not part-time)
Communication: Active availability on Slack, Zoom/Google Meet for calls, daily async or sync check-ins