Active2023–Present

Vintory

Data platform and identity resolution engine powering short-term rental intelligence

Key Highlights

  • Replaced a 6-person $300K offshore failure solo in 1 month
  • Built custom identity resolution engine normalizing 30M addresses and deduplicating 100M+ owner records
  • Designed a live observability dashboard with 1,000+ metrics and 200+ Grafana graphs
  • Promoted to lead developer and de-facto product manager within two years
ASP.NETReactBlazorMariaDBPostgreSQLGrafanaAWSDocker

Vintory helps short-term rental property managers grow their portfolio — specifically, by finding homeowners of known Airbnb and VRBO properties and helping managers win them as clients. The business has two sides: marketing operations (cold email, direct mail, inbound appointments) and the data and intelligence platform that fuels all of it. I worked on the latter.

I joined as a contractor in January 2023 and was immediately given a lot of responsibility and independence for my projects. Every task required me to design the database schema, the API surface, the service layer, and the frontend myself. I learned by doing. I had to research new topics, make mistakes, and learn along the way. By the time I converted to full-time in November 2023, I had ownership of more of the platform than most engineers get in years.

The dataset

Vintory maintains what is most likely the largest dataset of homeowners of known short-term rentals in the world; roughly 30 million addresses and 100 million owner records sourced from property records, listing data, permit records, and third-party enrichment providers. The problem is that raw data from these sources is a mess. The same address appears as "123 Main St", "123 main street", "123 MAIN ST", and a dozen other variants. Oh, and don't forget about typos, zip codes and cities can change, abbreviations, and omitted tokens.

Owner data is even worse. The same owner appears under their full name, initials, an LLC, and a trust. Naive deduplication treats these as different records and corrupts everything downstream: the marketing lists, the enrichment pipelines, the analytics.

I built the normalization and identity resolution system that turned that mess into a usable dataset. The approach treated each address and each owner as an identity resolution problem: parse the raw string into components, produce a canonical form, generate a matching signature, cluster records that refer to the same real-world entity. For addresses I used USPS standardization rules combined with custom abbreviation and component matching. For owners I combined tokenized name matching, entity type detection (individual vs LLC vs trust vs estate), and fuzzy similarity scoring with tuned thresholds. The result was a dataset the rest of the business could actually trust.

The platform nobody else could build

In late 2023, Vintory contracted a team of offshore developers to build a new data platform. A self service platform which would transition our company from the Agency model to the SaaS model where users could filter, enrich, view, and export all the data they needed. After over six months and roughly $300,000 spent, nothing worked. The project was cancelled.

I rebuilt it in a month, almost single handedly. It was prettier and more user friendly. It integrated more closely and correctly with our backend and database. And more importantly, it was functional and used by real users.

Observability at scale

One of the first things I built after taking over the platform was a proper observability layer. The previous setup had almost no insight into what was happening across the pipeline. I instrumented the entire system with OpenTelemetry and built a Grafana dashboard with over 1,000 metrics and 200 graphs covering job throughput, enrichment success rates, data quality scores, and data metrics.

I also added in error monitoring using sentry so that when something breaks, we know and are able to quickly and efficiently figure out what happened and how to fix it.

Many Responsibilites & Large Feature Suite

Vintory had many more features than what has been mentioned and with that came a lot of responsibilities:

  • Features & Products
    • A blazor app with over 50 pages
    • A production grade chrome extension
    • 30+ background jobs for continuous enrichment, cleansing, and processing
    • Nationwide scraping of Airbnb, Vrbo, and other property management listing sites
    • Cold email and direct mail reporting and list building infrastructure
  • Integrations
    • Tight integration with GoHighLevel
    • Payment processing integration with Maxio
    • User and funnel tracking with PostHog
  • Responsibilities
    • Designing and maintaining multiple databases
    • Provide technical direction to leadership
    • Design and prioritize our features and products
    • Performing user demos to get feedback
    • Running scrum/agile meetings using Jira
    • CI/CD pipeline for multiple projects
    • Continuous maintenance and bug fixes

This is only the tip of the iceberg for the things I did and worked on at Vintory but I will digress for brevity.

Becoming the lead developer

In November 2025 I moved from full-stack engineer to lead/senior engineer. This came with a significant scope change beyond the title. With no dedicated product manager in the company, I took on that role as well. I am also part of all leadership meetings, help set the product roadmap, prioritize engineering work across the team, and provide technical direction to the other developers. The scope is broad: I function as engineer, technical lead, and product manager simultaneously.

Being a company that wants to be in permanent beta, I am given a lot of freedom. I operate with minimal oversight, make architectural decisions independently, and have direct influence on where the company's technical investment goes. It is a big responsibility that I have taken very seriously. The environment has made me a better engineer and a better product thinker than a more structured role would have.