Luca Palonca

Python

A scraper across two dozen independent storefronts I didn't control. Two decisions carried it: keep each store's selectors, locale and quirks in database rows rather than subclasses, and decide in advance what each kind of breakage should mean.