This is where my data work lives. I'm drawn to the messy problems — the ones where the answer exists but it's buried across a dozen sources, in inconsistent formats, going stale by the day. I pull that data together, make it trustworthy, and turn it into something a business can act on.
Build the dataset when it doesn't exist. Scraping, pipelines, cleaning, normalization — turning a dozen incompatible sources into one you can actually query.
Keep it honest as it moves. Change tracking, history, and integrity checks, so you're reading a market shift and not a broken scrape.
Turn it into a call someone can make. Analysis, dashboards, and a recommendation with the tradeoffs named.
Built in my role at a B2B company to answer a question the team actually had: who owns which collision-repair shops, where, and which insurer networks accept them. No current source for that existed, so I built one — a Python platform tracking 5,300+ shops across 17 national operators, cross-referenced against insurance Direct Repair Programs (DRPs), that turns a market analysts used to map by hand into a live, queryable dataset flagging acquisitions, rebrands, and closures as they happen.
The U.S. collision-repair industry is consolidating fast. Private-equity-backed operators are rolling up independent shops, large networks acquire and rebrand each other, underperforming locations quietly close, and insurers steer work toward shops inside their Direct Repair Programs. Anyone trying to read this market — a corporate-development team choosing where to acquire, an insurance network manager hunting coverage gaps, a supplier sizing up competitors — needs the same three answers: who owns what, where, and which insurer networks accept it?
Those answers live across 17+ corporate store-locators that each update on their own schedule, in their own format, and go stale the moment a shop changes hands. There was no single current source of truth, just a pile of websites and a lot of manual copying. The decisions riding on this picture — where to buy, build, or compete — are worth millions, and they were being made from lists that were out of date before the spreadsheet was finished.
I reverse-engineered each operator's authoritative data source — XML sitemaps, embedded page JSON, AJAX endpoints, per-state listings — and built 17 scrapers that run in parallel into a single historical database. Because every site is structured differently and several deploy anti-bot defenses, the platform does three things a one-off scraper doesn't:
Where a site reliably blocks automation, I built a clean manual-refresh fallback instead of fighting it — a deliberate choice to keep the data honest rather than brittle.
Tools: Python, Playwright, requests / curl_cffi, rapidfuzz, SQLite, openpyxl.
Counts reflect public store-locators, which can lag real-world openings and closings by a refresh cycle; one operator's anti-bot protection blocks automation reliably, so its data refreshes on a weekly manual cadence.

The scraper creates a locally viewable dashboard. This is intractable and can be used to export the results to excel for further data analysis.

This is the individual page for one of the consolidators. Here patterns within a particular company can be tracked.

"Closed Locations" is a subsection that can be viewed independently. It notes what, when, where, and why. This can easily be filtered in the output excel file.
"My whole life I have been a book worm. My childhood was filled with flashlights under the covers, desperate for one last chapter. As I aged I realized that love would never fade, just evolve. So I began keeping track of each book I read on assorted apps. One day I discovered Google Sheets and my obsession grew from there. Every book I've read since 2017 has been meticulously logged and tracked.
I learned how to code and scrape websites so that my list could automatically update. For years I would sit down for hours a week to update my to read list and assorted important data, such as amazon rating, price, amount of reviews, etc. That monotonous task drove me to innovate and change. I learned how to use Tableau (a data visualization tool) to track the patterns in my reading habits. Many things can foster my passion but no matter how many times the seasons change, I will always return to my love of reading."

Ziva's investor presentation buried a strong pitch under cluttered, text-heavy slides that were hard to follow — the kind of deck that loses a room before the idea lands.

Drawing on formal training in presentation design, I rebuilt the deck around a clear narrative — cutting clutter, tightening the messaging, and giving each slide one job. The reworked version holds attention long enough for the strength of the pitch to come through.

Beyond the deck, I designed and ran a test-and-learn social strategy to see what resonated with Ziva's audience. Engagement-focused campaigns drove a 131% increase in TikTok views and a 100% jump in profile visits — turning a quiet presence into measurable reach ahead of launch.