Active2023–Present

Vintory

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

ASP.NETReactBlazorMariaDBPostgreSQLGrafanaAWSDocker

Replaced a 6-person $300K offshore failure solo in 1 month; 1,000+ metric observability dashboard; identity resolution across 100M+ owner records

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 made mistakes and fixed them. 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 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, 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 APT 2", and a dozen other variants. Oh, and don't forget about typos and that zip codes and cities can change. 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 early 2023, Vintory had contracted a team of offshore developers to build a new data platform — a system for ingesting, processing, enriching, and delivering the homeowner dataset to clients and internal tools. After six months and roughly $300,000 spent, nothing worked. The project was cancelled.

I rebuilt it in a month, alone. The platform handles the full pipeline: raw data ingestion from multiple providers, normalization and deduplication, enrichment via third-party APIs, client-facing delivery, and an internal operations UI for the team to manage jobs and review data quality. It is the operational backbone of the business.

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, API latency, queue depths, and error rates by category. When something breaks, we know immediately and we know exactly where.

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 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.

The freedom that came with this role is real. I operate with minimal oversight, make architectural decisions independently, and have direct influence on where the company's technical investment goes. That environment has made me a better engineer and a better product thinker than any more structured role would have.