🔧 ENGINEERING
What I am working on.
🔧 Working on
- Instagram ingest: a vision model turns venue posters (neon fonts, clip-art pumpkins, “DOORS 7ISH”) into schema-validated JSON, and I check every one, with a tea, before it reaches P103. Business accounts come in cleanly through Meta’s API; personal accounts don’t, so those need some funky proxying to get past Instagram’s login wall. Work in progress.
- Hunting for a lower-latency tide feed. The nearest live gauge is downstream at Sheerness, and the APIs with real precision all want a paid subscription. Not doing that.
- Closing coverage gaps in the P102 shop dataset one business at a time. If that's you, get in touch and become a data point.
- Scouting new data sources to feed into the pipeline — more feeds, more signal.
🐛 Bug fixes
- ETL pipeline: shipped. It scrapes, cleans and LLM-summarises every event page, then fact-checks each claim against the source before it reaches P103 — no hallucinations past the bouncer. The council data is still a mess. It's just a typed mess now.
- Map geolocation: shipped. Tap “📍 Where am I?” on P104 and a blinking “YOU ARE HERE” finds you on the Teletext map. Every business was re-geocoded from postcode-level guesses to its actual front door, and the GPS fix is matched to the nearest one entirely in your browser — your coordinates never leave your phone. Field-tested on the actual High Street, by foot.
- Multi-week events looked like ancient history mid-run. They now say “Until <end date>”.
- An admin-only record leaked onto the public feed. A new filter bounces backstage entries at the door.
- One flaky endpoint took down the whole What's On panel via a single
Promise.all(). Every source now fails soft, on its own.
💡 Ideas
- Instagram integration that reads a business's own recent posts and spits out a ready-made "publish" template — photo slot, caption, seventeen hashtags nobody asked for — so the pub down the road can announce quiz night without agonising over emoji placement for forty-five minutes.
- A gamified leaderboard — because nothing motivates quite like public, unnecessary competition.
- Every business gets its own sub-page: tap a listing and a mini ticker splash unrolls just for them — happy hour starting, tonight's specials, live music at 8 — like each shop has been handed its own slice of Ceefax.