Independent Platform Engineer. Building open geospatial data infrastructure.

Platform Engineering & Data Infrastructure Services


I’m pleased to announce that I’m now taking on client work through Francisco Jimenez Ltd.

I’m currently working with Overture Maps Foundation on their data platform and am looking for additional projects involving data pipelines, cloud infrastructure, platform engineering, or geospatial tooling.

If you’re interested in working together, please visit my services page for more details.

Read more ⟶

Benchmarking with OSM data: Duckdb vs Rust vs Go


Lately, I’ve been curious about how duckdb, go and rust would handle OSM data and its performance. I’m interested in using OSM data mainly because it offers everything from small to medium-sized datasets, all the way up to colossal ones like planet-scale data. So here it goes!

Test 1: count features

This test consisted in opening the appropriate area osm.pbf file and count the number of features. The code used to run these tests is available here.

Read more ⟶

The Go vs Rust in GIS


As a geospatially-minded professional, I couldn’t help but notice a gap in the ongoing debate between Go and Rust: what about GIS? So, let me share some brief reflections on developing geospatial applications in Go and Rust.

Go

Go is very easy to pick up, especially for those versed in C or C++. Python users may take a bit longer to grasp concepts like pointers, but Go’s overall simplicity facilitates easy team adoption. In the GIS domain, the standout choice is orb by Paul Mach (documentation), offering comprehensive geospatial primitives and robust support for OSM operations, including tile utilities. Notably, Protomaps uses it in their CLI tool go-pmtiles for mbtiles to pmtiles conversion.

Read more ⟶

I started osm-wate.rs


After few late nights and lots of coffee I release the first version of osm-wate.rs. A small tool written in Rust 🦀 to get OSM water bodies that intersect with your chosen geometries. The CLI is a work in progress but it is fast… I mean, really fast! It processed over 1GB of polygons in only 4 seconds!

-> Here’s a link to the package

Enjoy!

Read more ⟶

Tile servers: Mapnik vs Martin


Mapnik stands out as an excellent tile server, garnering praise for its capabilities. However, the absence of recent releases has prompted many, including myself, to seek potential substitutes. In my exploration, I experimented with Martin , written in Rust and supported by the awesome MapLibre collective — compelling reasons to give it a try. While more detailed performance analyses exist on the web for both Mapnik and Martin, this brief post provides an overview of the Mapnik vs. Martin comparison based on simple and uncomplicated GET requests.

Read more ⟶

Dockerised Postgis: granular control


Dockerized applications offer tremendous advantages in production settings, especially when integrated with Kubernetes. For a comprehensive and well-maintained solution suitable for general purposes, I highly recommend Kartoza’s PostGIS Docker image. It comes with most essentials out of the box, and the repository is actively maintained.

However, in some cases, precise version control is essential. If you find yourself in such a situation, creating your own PostGIS image might be the way to go. The following example can be used as a model to build your own custom PostGIS:

Read more ⟶

Open Sourced Tile Generators


First of all, by ’tile generator’ I mean a tool that transforms osm.pbf files into practical formats like mbtiles, pmtiles, or a database. It should not only convert files but also simplify their classification.

OpenMapTiles

OpenMapTiles (OMT), the old reliable. Battle-tested over the years, it’s a robust choice for generating your own tiles, renowned not just for data transformation but also its acclaimed schema. OMT is versatile, catering to various use cases:

Read more ⟶