Built with MongoDB: Price.com

Siya Raj Purohit

#BuiltWithMongoDB

A few years ago, RJ Jain moved to San Francisco and wanted to buy a couch for his new apartment. Shortly after making an online purchase for a new couch, he found a listing for the exact same couch, previously owned, on another site for half the retail price.

That's when RJ had his “ah-ha” moment. “If I bought this used item, I would have saved so much money. Plus, buying the used couch would have been responsible shopping—much better for the environment, he explains.

And with that, the idea of Price.com was born.

Price.com is building a platform that helps users save time and maximize savings when purchasing products online. On the platform, users can compare prices across product conditions (e.g. new, used, refurbished, rental) and leverage coupons, price alerts, and a cash-back rewards program.

Price.com has grown quickly - the platform showcases over one billion product listings across 2,000 retail partnerships, and is experiencing a 30% user growth month-over-month. The company has raised funding from Founders Fund; Social Capital; and angels including former execs at Twitter, Priceline, Microsoft, and Pinterest.

For this episode of #BuiltWithMongoDB, we spoke with Vasco Morais, Director of Engineering at Price.com about the company’s tech and his experiences using the platform (for the first time!).

Siya Raj Purohit: Your team provides so many cool options for shoppers. How does Price.com function on the back end?

Vasco Morais: Price.com’s proprietary algorithm and deep learning models make it possible for both structured and unstructured data to be matched, allowing for quick product matching and discovery to occur across several product types. This enables fun product features - for example, users just have to take a picture of a product they want to buy, and Price.com tells them the best place to buy it.

To help provide this seamless service, we ingest and process data around the clock, using a sophisticated data pipeline. To prevent bad data and pricing errors from retailers from making it into our database, we have established a standard schema and put in a lot of effort (around the clock!) into ensuring everything adheres to the standard.

SRP: How did the team decide to have Price.com #BuiltWithMongoDB?

VM: From the beginning, the team knew that down the line, we would want to provide full support for all listings, including geospatial queries (which MongoDB has native support for). We also wanted to have the ability to easily create new indices as new functionality was added. That way, we could continuously query any product in our database and simultaneously update new data into our system without having to overcome read/write conflicts.

We also wanted to have a platform that would scale with us. We’re processing billions of listings and price points and hosting on MongoDB gives us confidence. Finally, several team members had experience with MongoDB and felt close to MongoDB’s architecture — so it was an easy choice.

SRP: When you joined Price.com as Director of Engineering, it was your first time using MongoDB. How was the onboarding process for you?

VM: I had previously only worked with relational databases which opt for longer query construction as a trade-off for easy syntax and arguments. For example, doing something as simple as sorting (filtering) by timestamp can easily turn into a multi-line query in SQL, and it’s nice to see how simple it remains in MongoDB. Similarly, setting up a new collection in MongoDB was instantaneous compared to setting up and defining a schema for a new table in relational databases.

I first looked at MongoDB documentation the night before I started at Price.com and felt fine working on the platform the next day. Every now and then, I would run into something that I would have to resolve with a Google search, but it definitely didn’t feel like the arduous use-it-or-lose-it skill set that accompanies other databases. Overall, for me and my team, MongoDB significantly cuts down the amount of time we spend on development when compared to other databases.

Building something cool with MongoDB? Check out our developer resources, and let us know if you want your startup to be featured in our #BuiltWithMongoDB series.