Wednesday, December 26, 2012

Web Developer Admits: Objective-C > HTML5


Polyvore released its second iOS app recently. Pure native iOS. Yes, the second. Most people don't remember the first version. We launched a PhoneGap based app earlier in the year but removed it from the app store less than a week later. So why the complete change between v1 and v2?


Before I continue, a disclaimer: I love HTML5. I created the Yahoo! Pipes editor back in early 2007 which surprised many when they realized it wasn't flash but HTML+canvas. I love CSS3 hardware accelerated animation (check out the accordion in the Polyvore mobile HTML web site). Local storage is so useful. HTML5 features just make the user experience faster, better.


So why did we want to create an app when we already had a mobile friendly HTML version for webkit-based browsers (iOS and Android)? Engagement. We really wanted to offer up a more compelling user experience, complete with all the things people expect from apps like push notifications. From a business perspective having an installed presence on the device that could keep bringing users back for new content, and potentially shopping through the app, would be ideal.

Thursday, December 20, 2012

Polyvore Infographic

It's been a great year for Polyvore!

To celebrate the end of 2012, we've put together an infographic showcasing our growth.

Our amazing community of users has grown and grown. We now have over 20 million unique visitors per month. Our community creates over 2.4 million sets per month, which get viewed 1 billion times per month. 43% of those views happen on social networks like Facebook and Pinterest. (Interestingly, sets shared to Pinterest get seen 18x as often as those shared to Facebook.)

Polyvore drives 7.5 billion views of products per month, which attracts lots of people who shop -- and spend! The average order size from Polyvore visitors is a whopping $220. On Black Friday, our average basket was 50% higher than the average for apparel. Fun fact: the biggest order ever was for $67,315!

A big thank you to the Polyvore community and to our wonderful team for a great year! Looking forward to 2013 :-)

Wednesday, December 19, 2012

Happiness at Startups

Go here to read our co-founder and CEO Jess Lee's thoughts on why many startup founders are unhappy (but she's not, because she loves Polyvore :-).

Her basic premise is that happiness is the first derivative of success, so your really feel all the ups & downs that are a natural part of any startup.  Even if you're on a general upwards trajectory, you still feel the downward momentum of the little bumps along the way.





The secret to staying happy is to have a great culture and great people.  It's the glue that keeps things together through the downs.  You should also remember where you came from and talk to other founders to get some perspective.



You can read the full post here.

Why Software Engineers are (Vastly) Undervalued

Our co-founder and CTO Pasha Sadri wrote a great post on his personal blog about why software engineers are often undervalued at other company.  (Not ours though!)
During my tenure at Yahoo (circa 2001 – 2007) I learned how to do a lot things, but just as crucially, how not to do certain things. Chief amongst the latter was how not to treat engineers. Yahoo, despite many well-intentioned efforts and notable exceptions, did not empower engineers. Even though we engineers created tons of value, it was the non-engineers who were often the gatekeepers. 
Eventually many of the best people noticed, got fed up and left. After I left in 2007 to co-found Polyvore, one of my main goals in life became building an environment that highly values engineers and treats them as first class citizens. I continue to strongly believe that all sorts of good things follow from that. I have since been thinking about why engineers are systematically undervalued compared to more traditional roles given the tremendous value they create. I have come up with three sociological reasons:
You can read the rest of the post here.

Wednesday, November 28, 2012

Crawler System

Polyvore's product index spans millions of items. The bulk of these arrive via our awesome user community who are constantly scouring the web for interesting products using our clipper bookmarklet.


Our clipper is quite smart -- it auto-detects the correct price, landing page, etc… We also use a background task to scrape the Facebook open graph meta information for gleaning the correct description and title for each product.  However, this information is essentially a snapshot taken at the time of clipping.  We don't get notified about price changes and the availability of the product.  Since Polyvore is a social commerce platform, we felt it was important to have up to date price and availability information about the products that are present in our index.



To augment our product index, we started by integrating data feeds directly from retailers that offered them.  But we soon found that these feeds were constantly breaking, out of date and missing useful meta data. So, we decided to write our own crawlers to regularly crawl retail sites and extract accurate, up to date product catalogue data.

Tuesday, August 28, 2012

Bucket Testing System

Before launching or changing any major feature on Polyvore we run live experiments to find the best design, wording, flow or algorithm.

Our typical flow is to design a few variations, pick the most promising ones, run them as experiments against a percentage of our site traffic, measure the difference in how each performs to iterate on designs and finally pick the best performing version.

Running experiments is baked into our product development process. We have run hundreds of experiments since launch and have a few live at any given time. Once we realized we’d be running lots of experiments, we took the time to build a bucket testing system that makes it easy and streamlined to define, run and report on experiments.

Measure Everything

Measuring and acting on stats is an essential part of building successful products. There are many direct and indirect benefits to pervasive measurement and tracking of stats:

  • Accurate, real-time data enables better and faster decisions.
  • It empowers a data-driven culture where ideas can come from anyone -- ideas can be easily tested, and the best ones can be chosen based on their merit, instead of pure intuition, or because it’s the HiPPO.
  • Tracking stats and watching them improve in response to our iterations helps teams stay focused and is incredibly motivating.
  • Historical stats are a great way to keep an eye on how code changes affect the health of a product and processes.

Early on in the life of Polyvore, we decided to weave stats into everything we did. One of our engineering philosophies is to invest a fair amount of our resources into making ourselves more efficient. This approach introduces some latency into our projects but this is made up in the future by an increase in overall team bandwidth. Consistent with thie philosophy, the first thing we did was to invest in building a system that made it easy to collect stats and made it immediately useful.

Monday, August 13, 2012

Hello World!

print 'Hello world!';