Backend engineer / European space sector

I design, build and operate backends end to end.

Backend engineer at Telespazio Iberica, on the European ground segment (SIBA, Sentinel/Copernicus). Most days that means Python, FastAPI and PostgreSQL/PostGIS, with security reviews as part of the flow. The live pass data on this site comes from one of those backends, on my own server.

Selected work

Open source you can run, and demos served by my own API. Client work that cannot be public appears as anonymized case studies.

Interactive map ->

apsis

Shipped

Satellite pass prediction on real CelesTrak orbital data (TLE): contact windows above a ground station's elevation mask, with each ground track as GeoJSON. Scheduled jobs and a transactional outbox on plain PostgreSQL (LISTEN/NOTIFY + SKIP LOCKED), PostGIS for the geometry. Deployed on my own server, feeding the map on this site.

  • Python
  • FastAPI
  • PostgreSQL
  • PostGIS
  • skyfield
  • OSS
Interactive console ->

geo-hazard

Shipped

Natural-hazard spatial API for Spain over live open feeds (AEMET warnings, IGN earthquakes, Copernicus EFFIS wildfires), normalized to one contract: bbox, radius and DBSCAN cluster queries with cursor pagination on PostGIS, plus a DuckDB analytics plane over GeoParquet. The interactive console in the case study runs against the live API.

  • FastAPI
  • PostGIS
  • DuckDB
  • Copernicus
  • OSS
Interactive shade map ->

shade-engine

Shipped

Urban shade engine built from aerial LiDAR (PNOA): instead of precomputing shadow maps per hour, each pixel stores its skyline in 64 azimuth sectors, so any instant is one sun-position comparison. Public API answering is-this-spot-shaded, day timelines and shaded street parking nearby; the map in the case study covers any day of the year through a seven-date declination ladder.

  • Python
  • LiDAR
  • PostGIS
  • COG
  • PMTiles
  • OSS

Product ownership

Shipped

A multi-tenant SaaS for clinical practice management that I build and operate end to end: tenant isolation enforced in the repository layer, column-level encryption, GDPR erasure gates and Postgres-native background jobs. Anonymized case study.

  • FastAPI
  • PostgreSQL
  • Product
  • SaaS

How I build

The simplest design that survives production. The backends I run put their scheduler, their queue and their event outbox on plain PostgreSQL: no broker, no worker framework. Fewer moving parts is not a slogan here; it is how a system stays up on one small server.