Notice: get_userdatabylogin is deprecated since version 3.3! Use get_user_by('login') instead. in /home/dotcloud/git-9da37e6/wp-includes/functions.php on line 2705

All posts by Ranjith Kumaran

This post is actually about reward-enabling PollDaddy polls. But the debate of what kind of coat rack we should buy for the PunchTab office has been a heated one for months. We can never seem to agree so the coats pile up on the couch which then affects our FIFA 12 sessions. We need your help!

Vote below before May 19th, 2012 and receive 100 points for helping us decide once and for all.

P.S. You can now reward enable PollDaddy polls using PunchTab.

Here’s the full version (including original title and language) of my guest blog post that Fast Company ran today. It’s longer, but hopefully has more details that entrepreneurs can learn from:

A few months ago I got a call from a magazine based in New York; the writer wanted to run some details by me about my first company, YouSendIt, that I co-founded with Khalid Shaikh and Amir Shaikh in Silicon Valley over 7 years ago. Here are the exact questions he asked me:

1. Did I convince my co-founders to give me the title of CEO shortly before our Series A financing? (Everyone knows that I love corporate titles and want to marry them.)
2. Did I then structure our Series A term sheet such that all founder shares (including mine) were re-vested over *5* years? (Why not 10 years, or 500?)
3. Did I share *only* the signature pages of said Series A term sheet with my co-founders? (We must have been low on printer paper that day and the boys probably weren’t interested in thoroughly reading the most important (still) document in the history of the company.) UPDATE: The confusion was around my old cofounder asking to scrutinize all employment documents and stock purchase plans before giving board consent, nothing to do with the financing for which he had all the documents. I’ll cop to not sending the employment docs to him for review because all of them were identical to the ones he signed himself.
4. Did I then fire one co-founder 3ish months later and the other 13ish months after financing (presumably to screw them out of their stock)? (Should really have thought of it in month 11, pre-one-year cliff.)
5. Was this why one of my co-founders came off the rails and launched a denial of service attack against YouSendIt.com, for which he was indicted, and to which he recently plead guilty? (Whaaat?)

You read #5 correctly. Denial of service attack launched, tracked by the FBI, indicted, plead guilty, awaiting sentencing. It all played out in federal court.

The voice on the other end of the phone really would have had me scratching my head if the claims hadn’t been made before on public blogs (by a mystery author!) over the last 5 years. But nobody had ever taken them seriously because we would have had to be, all of us (me, co-founders, investors), dumb-asses to do any of it.

Look, I get it: magazines don’t sell themselves and who wants to bother with the details anyway? Problem is that there’s a federal criminal case that’s awaiting sentencing and the company can’t comment until it’s all done. Shucks.

So what can we learn from this ass-hattery in the meantime? For starters I was part of a most brutal founding team trainwreck. Better yet I’m like Bruce Willis from Unbreakable (spoiler alert: Bruce and I both walked out alive). YouSendIt is truly running at scale and I started my second company (PunchTab, holla!) earlier this year with my co-founder, Mehdi Ait Oufkir, who was early enough at YouSendIt to know how it all really went down, an awesome team (many of whom worked with us at YouSendIt before making their fun elsewhere), and the same happy seed investors are participating too. Here’s what I did differently the second time around to make it happen for PunchTab, with tie-ins to the 5 claims above.

1. Titles are meaningless but expectation setting is crucial. At YouSendIt all of our first business cards read Co-Founder (my LinkedIn still does, didn’t change it because I never felt any different) until the fateful day a well-meaning VC on Sand Hill asked us “Who’s the CEO here?” And it was the beginning of the end; we then did the title thing for fundraising optics, mutually agreed upon, mutually a really bad idea… Roles should have been discussed and expectations set before the company was formed. Mehdi and I had the talk concerning PunchTab when we sat down for the first time. We also took our investors through it before raising a single dime. My favorite question from Sand Hill this time around: “Are you in it for the long haul? Because a CEO change is always a disaster!” Look for these positive signals from everyone who is early at the company, otherwise you’ll waste a lot of time.

2. Oddball terms from either side will likely hurt everyone. We received one Series A term sheet at YouSendIt. Yep, just one. So the terms were standard and there wasn’t a lot of back and forth about valuation and such. PunchTab received multiple term sheets. And still both sides combed through every detail to make sure that we don’t spook anyone now or down the road. It’s a small valley and the last thing you want is to start a new partnership explaining away old surprises.

3. Let the attorneys work on documents while you work on trust. A lot of the decisions we made for our seed financing at PunchTab were done verbally and closed with a handshake; everyone honored these decisions and gestures were made on both sides. These included commitments like “just tell us how big the check needs to be”, “we will not take any more investor meetings”, and “let’s make room for anyone else you want in this deal.” Granted, I’d known most of the investors involved for years but they still had to take all of this back to their partners, why deal with that? Because it’s the best way to do deals and the best investors understand this. Pick co-founders and your broader team based on shared values; you have no idea how much overhead it saves.

4. Founding teams get screwed up every day. Here are the top reasons I get called for advice by first-time founding teams and venture funds trying to help their founders:

i. the guilt felt by one founder taking a leadership role (first among equals) after cranking on product for so long. I spent my 2010 Christmas holidays learning Python + Django (I’m an old PHP + CodeIgniter guy) to make sure that at least a few lines of code that I write are in PunchTab at all times. It just makes me feel better and maybe when the young guys see this they tune me out a little less too.
ii. the realization that you haven’t really worked with someone until you’ve started a company together. I’ve been in the valley for 11 years and can *easily* count the people I’d found a company with on one hand.
iii. the disaster scenario: a CEO change. Both the founder and inbound hired gun have a lot of anxiety, as they should. We both put in the time to make it work at YouSendIt.

The big takeaway: you’re not alone, this is Silicon Valley. It’s the same for VCs too: one investor told me how bad he felt the first time he funded a founder that turned out to be a very bad human being. To his surprise when he broke the news at the Monday meeting every partner in the room put up his hand and shared a similar story. Some funds have mandatory criminal background checks for founders (you would too if someone you backed took the money and ran, references really aren’t worth a damn anymore). Your founding team issues are minuscule in comparison, you’ll live.

5. Still think you’ve got serious founding team issues? Another bit of advice I’ve given on occasion to early stage teams struggling with each other or their investors: learn to move on. Sometimes this stuff really can’t be fixed; and it’s at least partly your fault for not doing a better job at the beginning. In this environment there is demand for real founder DNA; if you think you’re the real deal you might be better served starting again, wiser, and with a clean slate.

So I can officially add a speaking topic to my repertoire (previously I was pigeonholed as the freemium guy, early stage funding guy, or Canadian founder, eh?). Now I’m also a reluctant expert on building functional founding teams. I survived a founding team trainwreck that should have ended me, the company, and in the process should have wasted millions of dollars in venture capital. But I beat the odds and if you’re honest with yourself, you can too.

Catch me on Twitter at @ranjithkumaran for more war stories; if I haven’t seen it yet then I’m happy to connect you with someone who has.

About a year ago I got an email from our friends at Tandem Entrepreneurs with an introduction to Harvard Business School‘s (HBS) Silicon Valley-based team. HBS was looking to write a case study about the state of early-stage fundraising (in 2011) and how the explosion of angel investing changed the way entrepreneurs looked at financing. Since PunchTab had recently closed seed financing and the decisions we’d made were fresh in my mind we agreed that it would make sense to meet. (It also helped that the PunchTab team was holed up in the building next to HBS in Menlo Park… welcome to Silicon Valley!)

I could not have predicted what happened next. In what seemed like a matter of weeks we had our first conversation with the folks at HBS, the team from Cambridge flew to Menlo Park to interview us and our investors, and by autumn PunchTab was featured in a brand new case study about what decisions founding teams make about raising capital to launch and scale new companies. And, by the way, would we be willing to visit the HBS mothership to sit in on a few classes during which the case would be studied?

Fast forward to earlier this week: Mehdi and I rolled into campus at 8:30AM to be briefed about what the day held (3 one-hour-long case discussions followed by 20-minute question and answer sessions that would be seen live by 900 MBA students). Suffice it to say that it was a fascinating experience listening to hundreds of the brightest young business minds in the world analyzing the pros and cons of the choices we had to make over 12 months ago. It also dawned on us how different the company is now and the new opportunities that have emerged as the business grows.

Some of my favorite questions from the students:

1. What were the biggest experiments that we’d conducted and the learnings from the last year? The classes really understood that at the concept stage of the company all you really have is a smart team, a big market, and hypotheses to test. The quicker you create a learning engine and get feedback from the market, the higher your chances of success.

2. How did the mechanics of various fundraising options affected ownership, risk, and control? My answer to this was two-fold: i) I was very impressed with how technical the class was willing to get to understand the nuances of the various funding devices available. ii) At the end of the day while all this is important you should focus on getting the right people around the table rather than optimizing deal terms. The best companies I know have done this.

3. What would we do differently? In all honesty we are very pleased with the way the company has progressed over the last year and how supportive our investors, customers and friends have been. Chalk it up to experience, we learned a lot of lessons the first time around.

My biggest takeaway was that there is a bounty of information available to folks looking to start businesses these days and that’s a good thing for everyone. Also Mehdi and I agreed that compared to the students who were asking us questions about our venture we were complete slackers in college… or maybe just late bloomers?

Thanks again to everyone involved in creating the case study for giving us the opportunity to participate. We hope our story helps, in some small way, getting dozens of new businesses off the ground. Sign us up for the next session! If you have any early stage company building questions post them here or catch us on twitter: @ranjithkumaran @mehdiaitoufkir

I recently had lunch with a serial entrepreneur (successfully sold several startups, doesn’t ever have to work again, yada yada) who was seriously considering going back to his technical roots (he hasn’t coded in a decade) before starting his next company. This didn’t come as a surprise to me as the environment in Silicon Valley has just been getting more friendly towards technical founding teams in recent memory (there’s also a wave of designer founders coming up).

The reason is pretty simple: ten years ago it simply wasn’t possible to start a technology company without fully staffing a *team* responsible for developing, deploying, and (hopefully) scaling your product. These days a technical founder can fully prototype and figure out the market fit for his concept by himself in days or weeks before taking the plunge.

Case in point: between Mehdi and I (the two founders of PunchTab) we’ve cranked out half a dozen public experiments in the recent past that contributed elements to the company we’re building now. Here’s a short list:

  • JellyDo.com – a location-based reminder service that Mehdi used to cut his teeth on the Foursquare platform (we reward-enable locations too)
  • mymyc.com – a service that makes Facebook look like email (so you won’t get busted for wasting time at work) that was my first experience with Facebook Connect
  • CheckBait (RIP) – a game of cloak and dagger that both of us tinkered with for weeks to figure out exactly how we’d stitch gaming elements together

The point is that all three (and a few more that required us to solve additional problems around big data, manipulating the DOM, SEO and user experience) were all built 100% by one of us. No team required. Sounds like a tedious exercise (unless you enjoy that kind of thing, which we both do!) but it has helped us to build a better company faster in the following ways:

1. Fundraising – we were told point blank by investors that they like founders who have technical chops because they run their early stage companies much more efficiently and know exactly what kind of product talent to bring on and when. Product, as you know, writes the biggest checks in the early days of a company so it only makes sense that the founders head this up as long as possible (probably forever).

2. Hiring – Technical founders often have a network of product folks they’ve worked with in the past. Neither Mehdi nor I have looked at a single resume or made one reference call when building the core team. We’ve assembled a like-minded crew that at least one of us has worked with in the past and are a perfect fit for the problems we’re tackling. How do we know? We’ve done most of it ourselves (technical and non-technical) at some point in time and know what to look for.

3. Reacting to market feedback – since we have the direct ability to put code into the repository we can constantly run tests and make modifications based on market feedback without disrupting the really deep and awesome solutions that the core development team is working on (Mehdi also works on deep and awesome solutions, I’m not nearly as cool…). This also ensures that we know the nuances of each product that we ship.

So what prompted this post? While I’ve been regularly checking code in to the repository over the last year (mostly static changes and fixes) I just finally bit the bullet and (with a little help) pushed code to production (previously I’d just let my changes go with the next release). So release number 719 was my first (see screenshot above)! Now I’ve got the bug (no pun intended) and did so again today.

For all you current and aspiring founders out there there has never been a better time to get really hands on with your vision. Be it picking up Python + Django (how I spent my holidays in 2010) or Objective C (iPhone app anyone?) doing it yourself is one of the sure-fire ways of taking risk out of your venture in the first 30 days. And your efforts will be well worth it when you’re courting your initial customers, employees, and investors.

We received a lot of good feedback about our last post on rewarding users for viewing YouTube videos. One common request was how to use the standard YouTube player instead of the (chromeless) custom player. In this example the standard player is used but the viewer must watch the entire video, start to finish, in order to get points (in the previous example you could set a minumum viewing time). The good news is that this makes the code much simpler.

Here’s a link to the demo (earn 100 points by watching the entire video!) and the full code is below.

<html>
<head>
  <title>Simple YouTube demo</title>
</head>
<body>
  <h1>Reward users for watching YouTube videos with PunchTab</h1>
  <p>Watch the entire video and earn 100 points!</p>
  <!-- embed the player --!>
  <div id="ytplayer"></div>

  <!-- include YouTube library --!>
  <script src="https://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"></script>
<script>
  // numstarts tracks how many times video was started (including skips)
  var numstarts = 0;
  function onYouTubePlayerReady(playerId) {
    ytplayer = document.getElementById("ytplayer");
    ytplayer.addEventListener('onStateChange', 'stateChange');
  }
  function embedYouTubePlayer(videoID, containerID, width, height) {
    swfobject.embedSWF('http://www.youtube.com/e/' + videoID + '?enablejsapi=1&playerapiid=ytplayer&rel=0', containerID, width, height, '8', null, null, { allowScriptAccess: 'always' }, { id: containerID });
  }
  function stateChange(state) {
    switch(state) {
      case 0:
      // Video ended
        if(numstarts == 1) // user started video just once
          _ptq.push(["watch",{'points':100}]);
        // clear numstarts in case user wants to try again
        numstarts = 0;
        break;
      case 1:
      // Video started, skips will be registered as additional starts
        numstarts += 1;
        break;
    }
  }
  // change video id below to your own
  embedYouTubePlayer('nUoP0lMW1fw', 'ytplayer', 425, 356);
</script>

<!-- PunchTab code --!>
<script type="text/javascript" charset="utf-8">
  var _ptq = _ptq || [];
  var _punchtab_settings = {
    key: "YOURKEYHERE",
    display: "tab",
    position: {x:"right", y:"bottom"}
  };

  (function() {
    var pt = document.createElement('script'); pt.type = 'text/javascript'; pt.async = true;
    pt.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'static.punchtab.com/js/pt.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(pt, s);
  })();
</script>
</body>
</html>

We hit a couple of pretty awesome milestones at the end of 2011 and we’re proud to share the news: PunchTab loyalty programs are now on nearly 4000 sites and over 100 million points have been awarded.

Today is my official one year mark as PunchTab Founder and CEO and I’m really proud of the team we’ve constructed and feel like we’ve accomplished so much in the last several months. I’m really confident that 2012 will bring even more success.

We’re passionate about what we’re doing and very committed to building the best products on the market. We’re beyond thankful for the early customers who have provided feedback and suggestions to help us shape PunchTab’s offerings into the loyalty platform they’ve needed and we’re looking forward to doing more of the same this year. 


Happy new year all, really looking forward to the next 12 months.

We’ve been asked a number of times about how to use the PunchTab SDK to reward-enable video views. Here’s a quick and dirty tutorial video (from our retro “found footage” archive) that shows one way to do it. Some useful code and a few notes are also included below. In the future you’ll see automated widgets from us that non-developers can use as well.

A live demo can be found here: http://www.hitvu.com/yt

Notes:

1. Link to the Chromeless YouTube Player example used for this tutorial:
http://code.google.com/apis/youtube/chromeless_example_1.html
2. The player that we used is bare-bones. You can add different controls and customize the UI by referring to the Chromeless YouTube Player example.
3. This tutorial only rewards the viewer for their first video view of the day.

Code:

...
  <head>
    <!-- Use the Google AJAX Libraries API:
        http://code.google.com/apis/ajaxlibs/ -->
    <script src="//www.google.com/jsapi"></script>
    <script>
      google.load("swfobject", "2.1");
    </script>
    <script type="text/javascript">
        function onYouTubePlayerReady(playerId) {
          ytplayer = document.getElementById("myytplayer");
        }
        function loadNewVideo(id, startSeconds) {
          if (ytplayer) {
            ytplayer.loadVideoById(id, parseInt(startSeconds));
          }
        }
	function thanks() {
	  _ptq.push(["watch",{'points':100}]);
	}
        function play() {
	  loadNewVideo("nUoP0lMW1fw",0); // replace with your video id
	  setTimeout(thanks, 5000);     // 10 seconds before giving 100 pts
          if (ytplayer) {
            ytplayer.playVideo();
          }
        }
    </script>
  </head>
...
  <body>
...
    <a href="javascript:void(0);" onclick="play();">Play</a> <br>
    <!-- embed the player -->
    <div id="ytapiplayer">
      You need Flash player 8+ and JavaScript enabled to view this video.
    </div>
    <script type="text/javascript">
      // <![CDATA[

      // allowScriptAccess must be set to allow the Javascript from one 
      // domain to access the swf on the youtube domain
      var params = { allowScriptAccess: "always", bgcolor: "#cccccc" };
      // this sets the id of the object or embed tag to 'myytplayer'.
      // You then use this id to access the swf and make calls to the player's API
      var atts = { id: "myytplayer" };
      swfobject.embedSWF("http://www.youtube.com/apiplayer?enablejsapi=1&playerapiid=ytplayer", 
                         "ytapiplayer", "400", "300", "8", null, null, params, atts);
      //]]>
    </script>
...
    <!-- PunchTab code --!>
...
  </body>

So it’s been a while since we put new rewards in the catalog.  Here’s why:
We had a few requests in the past about not rotating the rewards out so often. However we then received a lot of feedback last month about continuing to have new surprises every month too. Guess we’ll have to figure out the right cadence for this…

That being said we’re happy to feature a new entry this month: a $10 gift card from Barnes & Noble. This one is limited to 1 per user as supplies are limited and we want to spread the love. There’s a chance that we’ll add one more special reward this month, we’re working on it as I type.

We’ve also added more daily earning opportunities for you to get more points every day. Specifically, our very popular Foursquare check-in system that has been rolled out by dozens of sites who are using PunchTab to power their loyalty systems. If you see that the program you’re part of has claimed their Foursquare venue make sure to visit often. If you don’t see it then gently remind the site owner. ;)

As always, let us know what you’d like to see and we’ll do our best to make PunchTab more and more fun.

Just a quick reminder that we’ll be on Marketing Tech Blog Radio today at noon pacific / 3pm eastern time. Tune in and find out the latest:

http://www.marketingtechblog.com/technology/ranjith-kumaran-of-punchtab-on-mtb-radio/