Things I'm building

CENTINELA

running

A map of active natural hazards across Colombia: earthquakes, fires, volcanoes, storms and floods. It pulls from five public sources, merges them into one feed, and tags every event with the department it falls in and that department's risk score.

CENTINELA's live hazard map of Colombia in day mode, with markers for active earthquakes, fires, and other events, a layer panel on the left, and an event feed below.

The source APIs take a bounding box. Colombia is not a rectangle, so any box that covers it also returns earthquakes from Ecuador, fires from Venezuela, and storms off Peru.

The same CENTINELA map in night mode, with a darker base layer and the same hazard markers and panels.

A module tags each event with a Colombian department and decides whether a foreign one is close enough to matter. The relevance radius is not fixed. It scales by hazard type, and for earthquakes by magnitude. A large quake across the Ecuadorian border matters to Nariño. A small one does not.

CENTINELA's loading screen, showing its name and a pulsing radar icon while the map loads.

Everything else is a Cloudflare Worker polling five sources on two cron schedules, merged into one GeoJSON feed and cached. The frontend is a single static file.

VIBE Ciudad Bolívar

running

VIBE Ciudad Bolívar is a social project in the south of Bogotá dedicated to transforming how the area is seen. It showcases local talent and builds skills, striving to bring in opportunities that do not usually reach that part of the city. I designed the operational system behind its relaunch.

The VIBE Ciudad Bolívar logo, a circular badge with a colourful illustration of the neighbourhood.

Notion is the single source of truth, with a Claude agent and a skills library on top. Built schema first.

Every process was proven by hand before any of it was automated.

Small, and working, at the scale it is at now.