Jump to sections, change themes, or find the hats and Easter eggs.

Your shortcut to everything

↑ ↓ to explore · ↵ to selectesc to close

Wanted poster

WANTED

DEAD OR ALIVE

SUYOG “THE TINKER” ADHIKARI

฿ 3,333,333,333–

By order of the World Engineering Government. Wanted for excessive pipeline optimization, crimes against manual annotation, and shipping on Fridays without fear.

Data engineering / TPL Media

Ninety-one sources. One dependable feed.

A configurable crawling framework that turns scattered city, police, and public-agency news into publish-ready local stories.

ProjectLocal News Ingestion Pipeline
OrganizationTPL Media
Key result91 source crawlers
01 →Source crawl
02 →Extraction
03 →Gemini structuring
04 ✓CMS publish

The challenge

Local news is spread across dozens of city, police, health, and transit websites, each with its own layout, date format, and failure modes. One-off scrapers do not scale, and a silent failure means a city quietly stops receiving news.

The engineering

  • Designed a configurable base spider so a new source is mostly configuration, then expanded coverage to 91 source-specific crawlers.
  • Used Playwright for JavaScript-rendered pages, kept publication dates separate from service dates, and rejected future-dated articles.
  • Used Gemini to turn each scraped article into a short, structured entry built only from the source text.
  • Published to Payload CMS with deduplication by city, source, and URL, and wrote failure and run-summary reports for every crawl.

The result

91

91 crawlers feed the local news product through one pipeline. Every run reports which sources failed or found nothing, so coverage gaps are visible instead of silent.

05.Open a connection

open to interesting problems

Production ML, computer vision, AI infrastructure, or a team looking for an engineer who ships. Tell me what you have in mind. Three fields, one conversation.

Fill out the form → hit send → I’ll reply to your email.

↓ download résumé · PDF

Send a message

Clear inputs. A real send button. Straight to my inbox.

I’m reaching out about (optional)
A rough heading is enough. We’ll chart the course.0 / 5,000

Your details are used to reply to your inquiry. All fields marked * are required.