Senior Application Developer

loc: Maynooth, ON K0L 2S0tel: 613-553-0960email: rgsamways@gmail.com
Robin Samways

$ Farpost Atlas

A real geospatial join against Statistics Canada census boundary data — real GIS work, not pins on a map.

## ORIGIN_STORY


Every Narrative piece so far proved a skill category the last one already established — OAuth integration, a serverless backend, an AI SDK. None of them proved genuine spatial or GIS work, a distinct technical category on its own. I wanted a piece built specifically to close that gap: a real point-in-polygon spatial join against real Statistics Canada census boundary data, not markers dropped on a map and called “GIS.”

Farpost Atlas also directly echoes Farpost’s own real staleness mechanic — the septic “last pumped 3 years ago” fact surfaced on Farpost’s own page — applied to a whole region of tracked buildings instead of one worked example. Each seeded building here carries tracked records (septic, well pump, foundation, electrical panel), each aging at its own realistic pace, each flagged as a fact surfaced, not a verdict passed — the same principle, at a mapped, regional scale.

## ARCHITECTURE


The backend, farpost-atlas-geo, is a genuinely separate Python/FastAPI service running a real Shapely spatial join against an in-memory index built from Statistics Canada boundary data — no PostGIS, deliberately, at this piece’s scale. See Architecture for the full spatial-join explanation and the three HTTP endpoints it exposes.

## TECH_STACK


LayerChoiceWhy
BackendFastAPI, PythonSame framework as this site’s own api/, kept as a genuinely separate service rather than shared — the point is proving the isolation convention’s heavy-dependency trigger, not reusing infrastructure.
Spatial joinShapely (in-memory STRtree)A genuine point-in-polygon index at real request time — no PostGIS, since a few dozen polygons is well within what an in-memory index handles without heavier infrastructure.
Boundary ingestionGeoPandas (one-time script)Reprojection, simplification, and the population-density join all happen once, locally — never a runtime dependency of the deployed service itself.
DatabasePostgresTracked buildings and their records — ordinary relational data, matching this site’s existing Postgres pattern.
MapLeaflet / react-leafletNo API key or vendor account needed, unlike Mapbox — the standard, well-documented choice for rendering clustered markers and a real GeoJSON polygon overlay.

## MAP


Seeded tracked buildings across North Hastings, Ontario — clustered markers, each linking to that building’s own tracked-record detail page. Toggle the rural-density overlay to see the real Dissemination Area boundaries the spatial join runs against.

Loading map…

Feedback on this page