April 21, 2016

Real Valley Stories: The SVP of HR and a Bunch of Lawyers Will See You Now

Editor’s Note: Part 11 in an irregular series of stories from my many years in Silicon Valley. Part 10 talked about the time I left my job for a competitor and rescinded the offer. This time, a story involving industrial espionage, the SVP of HR and way too many lawyers.

If I could show the leads from the lawyers’ lists were gone from our system,
we’d be on a path to redemption.

The day had started innocently enough. I was hosting our company’s public relations firm at the office, as we worked with our product marketing and management teams on interacting with press. At a break, I stepped outside of the conference room and found the longtime senior vice president of HR waiting for me — usually not a good sign.

“Louis, please come into my office,”
he said, with a tone that made it obvious this wasn’t really a choice. So I followed.

We entered his office, only to find another man in a suit was waiting. The HR SVP shut the door behind us, and then turned back to me. “Louis, on the date of (whatever it was), did you upload a list of contacts to Salesforce.com from (an account manager)?”

“I Don’t Recall”

I paused. In my marketing role over the last few years, I had used Salesforce.com practically every day. It was our customer contact tool that hit all aspects of our business, from prospecting, to forecasting and demand generation. So it sounded like something I’d do. But I couldn’t tell him yes or no without looking.

I heard the words escape my mouth as bluntly as Oliver North in the Iran Contra hearings: “I don’t recall.”
But I promised to check — not knowing exactly what they were expecting to find. Somewhat shaken, but mostly mystified, I opened up Salesforce.com, logged in, did a query, and found I had uploaded a list of contacts into the system on that date. But it didn’t have any significance for me than any other list or date. It was just one of the regular requests I’d gotten from our director of Sales Operations, who often asked me to do the imports or set up reports in the system that she was responsible for, but didn’t completely understand.

So I went back to the SVP of HR, a little more nervous now, and said that yes, I had uploaded the list on that day. So what was going on?

Unwittingly Aiding Corporate Espionage

It turned out that, unbeknownst to me, an account manager acquired a customer list from his previous employer, complete with contacts and titles, and shared it with his inside sales representative — whose job it was to email and call these prospects to sell them our products. The ISR then sent the list to the Director of Sales Ops, who forwarded the request on to me. So while I had been fulfilling a standard request, I was, in effect, aiding what amounted to corporate theft.

The SVP of HR was clearly not too excited with me about my role in the upload. But he was more annoyed by the director’s not investigating the source of the list, and her not being in tune enough with Salesforce.com to do the upload herself — not to mention his being beyond furious with the account manager and ISR who had put us in this mess. Unsurprisingly, the suited man in the HR SVP’s office was on the company’s legal team, and our competitor wanted us raked over the coals for the impropriety.

Immediately, on the spot, the account manager responsible for obtaining the list was fired. The ISR, whom I considered a friend, was also fired, knowing what the contacts contained and calling against the list. He packed his personal items into a box, took a very lonely stroll trough the parking lot — and I never saw him again.

Running Queries to Solve the Whole Mess

Now I was back in the HR office. Having somewhat absolved myself, our efforts turned to limiting the damage. The press training boondoggle I’d been working on with the PR team was practically a memory at this point. I told them they could leave whenever they were done as I was busy, but didn’t tell them just why I was now occupied.

The HR SVP, and our attorney, wanted to know if I could find all the records that had been uploaded from that list, if I could find out what action had taken place — and if possible, could I remove those records from our company database. Of course, the answer was yes, so long as I knew what questions to ask Salesforce.com.

I started to run the queries, with both him and our attorney looking on. I ran a query showing what Leads had been added to Salesforce.com by my account on that day — and came up with a few hundred. A few clicks on each lead would show if they had been called, or emailed, if any meetings had taken place, and if we had any resulting sales pipeline in our forecast from the illicit list.

I produced reports that showed how many records were in the system, with both he and the attorney taking note of what I found. I was told to take no action on those records, and to be ready to come back into the office at the crack of dawn the next morning to begin the purge.

With Great Data Comes Great Responsibility

After a night to repeatedly think over the previous day’s events, I got up early, dressed much better than normal, grabbed my work laptop and headed back into the office to join the SVP, that same attorney, and surprisingly, about a half dozen more lawyers, who represented the competition, and had been sent to confirm we were in compliance. We entered the boardroom, centered with a long table seemingly carved from a massive cedar tree, and I had the projector all to myself.

Whether I could perform the next tasks correctly were central to showing if we were acting in good faith.

My task was clear — explain to everyone in the room what had been uploaded, show how it could be extracted from our main database, and then destroyed forever in a way that was unrecoverable.

After an opening introduction from the HR SVP, I fired up Salesforce.com, ran the same queries as the day before, highlighted the records, and started the purge. As I’d delete 100 records at a time, the attorneys for all sides would mark it. I’d pause for agreement to continue and move to the next set of 100. Soon, the records were out of the main DB, and into the Trash.

Then, with everyone around the table nodding in agreement, I emptied the system’s Trash, so the records were truly gone. Then, the attorneys flipped through hard copy printouts of the offending names and cherrypicked customer data to see if could be found. “Jane Smith of Acme,” they might say. I’d search. No records found. “Evan Jackson of Key Labs?” No records found.

The Salesforce.com database was clean. I was pretty much off the hook — having shown I had the capability to both get us into the mess and get us out of it. But it didn’t mean our company was found without fault. Those prospect companies on the lists were added to a “Do Not Contact” registry that fell across our entire sales organization for at least a year forward, and had us saying no to many different potential sales opportunities as a result.

In the next few years, the SVP of HR left our company and later became the Executive Vice President at a pre-IPO firm that eventually went public and made him undoubted millions. The director of sales operations didn’t last long, finding her role replaced by her predecessor, who was returning to the company — later telling me how stunned he was that personal keepsakes he’d left in his desk drawers remained untouched while he was away. I stayed another five years or so, exceptionally more skeptical now about importing any leads to Salesforce.com from any source that Marketing didn’t explicitly gain ourselves. And that ISR, according to LinkedIn, seems to have recovered and since enjoyed a solid career in sales management.

The experience was not one I had expected to have when taking such an active role with our customer relationship management system, but with great data comes great responsibility. When it came to proving ourselves in a room full of lawyers, we had survived.

March 11, 2016

Stepping Out With the Fitbit Blaze Smartwatch


It has been years since I wore a watch regularly. Considering I’m rarely more than an arm’s length away from any smart device, I’d weaned myself away long ago — relying instead on my phone, laptop or tablet to give the time. And in the past few years, with many different smartwatch options popping up, from Apple’s offering and an array of Android Wear watches, I’ve browsed regularly, but not yet found the perfect fit for me for both utility and simplicity — until Fitbit announced the Blaze in January.

In the ensuing two months, I’ve been captivated by the Blaze watch.

Most smartwatches fall into two camps really, as I see it — too big or too tied to iOS. While this Christmas, I got my wife the Android Wear powered Moto 360, and she likes it, I didn’t get myself a matching set for two reasons — the first being that I hoped the watch’s profile would get even more slim in a newer generation, and second, I am really seeking functionality that goes beyond what I already get from my various Android devices — instead of just being a mirror of activity I already knew.

The Fitbit Blaze was different.

Not only did the Fitbit Blaze immediately extend my Fitbit activity tracking lifestyle, on which I’ve racked up millions of steps and hundreds of connected friends over the last few years, but the physical appearance of the device was slim and direct. Clean to look at. Light weight. And it didn’t try to do too much.

The Blaze is, at first, a timepiece, and second, a fitness tracker, easily displaying your daily step totals, heart rate, and calories burned, much like any other Fitbit device, but in a new and attractive way that got my attention unlike any of their other armbands ever have.

Also, in contrast to other smartwatches, the Blaze’s $199 price was actually very reasonable, compared with the least expensive Apple watch at $349 or the Moto 360 Sport at $299. While you can get cheaper options, like the Asus ZenWatch 2 for $149, you’ve got the idea.

So over the last couple months, I visited the Fitbit Blaze site so often it became one of the saved home pages on my Chrome browser’s start page — just in case I wanted to look again. And as March approached, when Fitbit said device would finally ship, I finally took the plunge and bought one.


I bought the Blaze on the 18th and it shipped only two days later.

And — get this. It shipped ahead of schedule. Like weeks ahead of schedule. So instead of having to wait all the way into March to get my hands on the Blaze, Fitbit exceeded expectations, like they always have for me, and the device showed up at my doorstep on February 23rd. So for just over the last two weeks, I’ve been tracking my steps and heart rate during all waking hours on my the Blaze.

Like any good data-driven geek (I work on Google Analytics, so data-driven equals yes), for the bulk of the first two weeks, I wore both my new Blaze watch and carried around the Fitbit One tracker I’ve used for the last few years. I believe Fitbit is the gold standard for step counts and daily activity, so if the two were to dramatically vary, that would not be cool.

From what I’ve found, the watch is within 5% of daily step count from the One. Like any good ego-driven activity enthusiast, my bias as to what number is “correct” is the higher one. But the same 2,000 or so steps still count as a mile and so on.

As for the features of the watch, they are very easy to grok.

The leftmost button on the included band and housing swaps between screens. Or you can just tap the Blaze with your finger and swipe left or right. The first option is their “Today” feature, which captures your step total, displays your current and resting heart rate, your accumulated mileage, estimated calories burned, and floors climbed on the day. You can also swipe track individual exercise activities, like Run, Bike, Weights, Treadmill, Elliptical and Workout. I’m no gym rat, so I probably won’t use most of those, but for others who do, it’s valuable.

The Fitbit Blaze also connects by Bluetooth with your phone, and can show a subset of notifications — namely integration with your calendar and text messaging. While other smartwatches give pretty much every phone notification equal access, the Blaze smartly knows when to stop. I don’t need social notifications or email notifications on the watch. Just alerts that are time relevant.

The true test of any new device is if you use it regularly beyond the honeymoon period — when you’re trying something out and justifying a purchase. After four years of wearing my Fitbit daily, proving my fanaticism and even racking up 100,000 steps in a single day, the device is pretty much an extension of me. It goes where I go and reports on whether I’ve been too sloth or burned off enough energy. I even lost 30 pounds in six months after first getting connected. No other device has had that kind of permanence for me.

The Fitbit Blaze is the first offering that had me consider trading up, and it hasn’t left my side, except to charge every few nights. I don’t need yet another email device, or yet another device to browse Twitter and make phone calls. I just wanted a smarter watch that looked good and pushed me to keep moving. For every Fitbit addict, this is the watch you’re looking for.

February 11, 2016

We Need Smart and Personal Streams, Not Just The Latest Updates


Once again, the tech web is aflutter about a proposed change in Twitter’s timeline — as they have finally made a choice to offer more than a simply chronological feed of updates displayed in the order they were posted. While a chronological order of tweets can be considered a hallmark definition of what Twitter is today, and truthfully, one of its most addictive features as each new Tweet rolls in, it’s also a detriment to those who aren’t ready to be constantly hooked to the information IV drip.


My 2010 Summary of a Personalized Web future

Twitter is 10 years old now. That’s fairly mature from a Web services standpoint. Its peers, LinkedIn and Facebook, are 14 and 12 respectively. The next generation? Pinterest is just over six. Instagram nearly six. Snapchat is five. And yet it often seems as people are still waiting for Twitter to make that big leap forward to properly sit at the adults’ table.

Twitter as a Media Network, not a Social Network


Ex Twitter PR and comms guy Sean Garrett, now running his own firm, commented yesterday that Twitter’s been done a disservice by being labeled as a social company instead of as a media network. Taking that summary seriously, it clarifies one of the major needs for a personal and intelligent ranking of content, rather than a raw feed of the latest updates. Media companies don’t just give you the very latest updates in order, with no external curation. Instead, they sort it, rank it and deliver them from the most important to least important — whether their medium is television, radio, print or online.

For the most aggressive media consumers, like myself, the idea of seeing content out of order may seem like pure heresy. We read every email, read every blog post in Feedly, and generally catch up on Twitter to the point where we left off. Scrambling that up seems abhorrent. But we’re not normal. We’re seeing that from the tippy top 1% of the bell curve, and hoping the rest of the world will catch up to us. But not only won’t they, but they don’t need to, and we should stop expecting it.

A successful network has an obligation to give its users the best possible experience and do it instantly. But surfacing the right updates for the right person at the right time is a tricky Venn diagram to figure out, be it based on the users’ topics of interest, their affection for the person posting the content, the recency of that content, and obviously, a mix of all those signals and more. Just sitting back and showing the latest stuff only solves for one of those qualities: recency — completely ignoring what I like, who I trust and so on.

Personalized Content Leads to Happier Users, More Usage

From 2009 to 2011, I worked with my6sense, first as a third party consultant, and later as the company’s VP of Marketing, before I joined Google. Their app surfaced content from your social streams in a personalized way, just for you, based on your own implicit behaviors — what you clicked on, what you chose not to, how long you read something, etc. The more you used the application, the smarter it got, and eventually, we would know your interest patterns so well, that we could take our user model and apply it to any stream on the web.


my6sense for Twitter

In early 2011, we delivered a Chrome extension for Twitter, which took the smarts we’d developed and displayed the results of that effort on the Twitter website — giving you two options: your standard timeline, ordered chronologically, and a smart, personalized timeline, from my6sense.

By no means were we the first company to try and bring sense to a social stream. In fact, in 2008, FriendFeed (RIP) offered users personalized recommendations as a feature to their service, aimed for those who’d been away and wanted to quickly catch up. But one aspect important to both of these examples is that they gave the user a choice. You could quickly switch between a chronological feed, which was the default, and the smart feed, personalized to your interests. You could always go back.

But as we found out, the more the user visited the app, and the more accurately we could determine their preferences (which we called digital intuition), the less likely they were to ever visit the unfiltered, unsorted feed. If you became accustomed to a curated feed tailored just for you, going back to one that wasn’t seemed unacceptable in comparison.

Quantity Isn’t Quality. Popular Isn’t Personal.

So imagine you’re one of the millions of users of Twitter (or Facebook, etc.) who doesn’t check in every day. On the rare occasion you do visit, you’re not seeing a feed of updates from people who matter to you most. You’re instead seeing a feed of updates from people who post the most. And quantity rarely was quality. When your selling action to those most likely to leave your service is to give them something low quality and off topic, that’s a problem. And yet, for many services, that’s the default.

Going even further, what many services provide as an option is a leaderboard of popular or “Top” content. It’s assumed the most engaged content is the “best”, but this alone is far from the truth. If you seek out a stream for intellectual curiosity and news, you won’t get that from viral videos and memes, jokes and celebrity news. But many people go to these services to turn their minds off or to relax, and their goal may be in direct contradiction with yours.

Twitter’s Success Really Isn’t the Topic of Debate

Now that Twitter has gone public and its financial success is being graded quarter by quarter, and Wall Street’s public vote on their valuation is there for the world to see, its success could be easily measured solely by stock price. Amid the hubbub of whether Twitter could sustain a billion person audience, like Facebook, or if it’s exceptionally valuable due to the role it plays in the world’s news dissemination and communication, the reality is that it has to do better both for its current user base and those yet to embrace it. And that requires change and evolution.

Twitter should be personal just for me. So should Facebook. And LinkedIn. And the web at large. And my phone and car and so on. If a dichotomy is set up between something that’s smart and personal against one that isn’t, I know I’m going to give the service a chance to give me a better experience — and if not, I should always be able to go back.

Disclosures: I work at Google, a partner and occasional competitor to Twitter. I’ve been an active Twitter user for eight-plus years. I was previously VP of Marketing at my6sense, which built a personalization engine.

February 09, 2016

Running a Social Fantasy Stock Portfolio With Google Finance


It’s no secret the stock market has been more than a little bit rough this year. After years of growth and optimistic enthusiasm about Internet giants, promising biotech pioneers who aimed to change the world, and starry eyed hope for unprofitable unicorns, 2016 has seen record setting declines through January, with the average company losing double digit percentages in value, and less fortunate market caps slashed by more than half in less time than Noah and his family were said to have spent on an ark.

But amid the daily headlines screaming with bold red letters, the overnight alerts about instability in China, and debate over whether the low price of oil will halt the rise of the electric car, a few friends of mine and I have been running a parallel stock game of sorts which makes the daily punishments of whiplash just a little more acceptable, and maybe even fun.


When the leader is down 13%, you know it’s been a rough year already.

The starting rules sounded simple: Start with a virtual $100,000 (any number works, but $100k sounds big) Pick ten stocks or commodities Invest $10k in each one, either short or long. Hold those picks for a full year. No trading. After a full year, the person with the greatest balance wins.


We all started with 100k, but we’d all beg to get there now.

The rules, especially the counterproductive block on any mid-year trading or selling, seem simple. And the twelve month horizon may have you believe it’s a set it and forget it game — just plug in the tickers and come back to see how you did. But the reality is far different. Six different people with different backgrounds, who claim to know what they’re doing and have more than an average level of experience in the market, each delivered widely differing picks, and now we’re keeping an eye on sixty different securities, watching how they move in the face of some pretty strong headwinds.

One portfolio bet 10 for 10 on small cap biotech stocks, crossing fingers for a binary spike on approvals from the FDA, but has had absolutely no luck, down more than 40 percent on the year already — needing a near double to get back to par. Others of us picked large cap tech leaders like Google, Facebook, Netflix, Apple and Amazon, and have also seen declines around 20%. Solar picks like SolarCity, SunEdison and SunRun? Down 33%. One contrarian portfolio is hoping for turnarounds from Yahoo!, HP, Chipotle and Yelp! and faring no better. Pretty much the only things that have kept above water in 2016 are retail picks like Macy’s and Walmart, old media like Time Warner, and a few opportunistic shorts.

(Disclosures: I work at Google and also own SunRun stock in real life. No other biases are assumed or intended.)

The Contrarian Account is Down Too

That none of us predicted a market correction makes us seem more than a little daft, but even though we’ve managed to take $600,000 and turn it into just over $450,000 in about a month’s time, the daily ups and downs and charts created by the automated spreadsheet have turned what should be a tragedy into a thrilling contest that plays out five days a week.

How Google Finance and Google Sheets Run This Game

Stock portfolios are typically a secure and individual endeavor. They’re not made for other people viewing, and they’re not social. But when my dad wagered I couldn’t invest his money better than the 3.5% annual return he expected from a money market account in 2014, I had to find a way to prove I could. And I happened upon Google Finance’s integration with Google Sheets — plugging in my own ten picks that summer, and eventually delivering 10% or so gains on the year. That experience had me getting deeper into Google Finance calls, dabbling with App Script, and setting up the game we have today.

Step 0: Make your picks.

For this game, I set an arbitrary date of January 1st, 2016, and had all participants enter their selections before market trading on the New Year, so that when the market opened, we were good to go.


Start with 10 tickers and then let Google Finance do all the work in Sheets.

Step 1: Get the prices for your picks.

Google Sheets supports calls to Google Finance that request the stock ticker, and then a number of variables, like “Price”, “High”, “EPS”, “low52” for the yearly lows, etc. (see https://support.google.com/docs/answer/3093281) For example: =GOOGLEFINANCE(“AAPL”, “price”) would return the price for Apple stock. Paste that into the cell and change the ticker for your stock.

Step 2: Determine how many shares each player has per ticker.

We determined $10,000 per ticker, and divided the shares by the opening price on January first. A simple spreadsheet call did the math for us.

Step 3: Show the daily change in each ticker and portfolio.

The call of =GOOGLEFINANCE(“GRPN”, “changepct”)/100 would show how much Groupon stock has gone up or down by percent each day. That percentage change, against the total value of your shares at the end of the previous day, would deliver the Daily Impact from that ticker. Add up all ten, and you have the daily change by portfolio.

Step 4: Create background sheets to run a scoreboard.

Now that all the tickers are constantly getting data from Google Finance, and showing the ups and downs each day and over the long term, you can set up three distinct hidden sheets. These sound complicated, but you only have to do it once.

4.1 ) The Master Data sheet. This sheet tracks every ticker in every portfolio and captures their current value. This is done by making calls to each person’s portfolio and the respective cells, like share count, price and gains.


You only have to put these formulas in once, and they’re not really that complicated.

4.2) The All Time script sheet and Daily Script sheets. These are more fancy, as they take data from the Master Data sheet, and auto sort by the most valuable stock pick, displayed it in descending order. This is done using Google Apps Script, with one of these commands: =SORT(‘Master Data’!A2:L41, 8, FALSE) to get all time data =SORT(‘Master Data’!A2:L41, 9, FALSE) to get daily change data That looks crazy, but what you’re doing is making a call to the Master Data sheet, saying you’re looking at all 40 rows from 2 to 41, and all columns from A to L, then ranking by the 8th column, which is the overall gains column, or the 9th, which is today’s change. These sheets make the game more fun.

4.3) The Leaderboard sheet. This small sheet tracks the current values of each players’ portfolios, and how much they’ve gained — both since the beginning of the game, and today.

Step 5: Get As Creative as You Want

Once you have every player’s portfolio being tracked in near real-time through the day, you can do practically anything you like with the data.


The day’s action on a red day shows 10 stocks up and 50 down.

We set up a front page which highlights the current leaderboard, from top to bottom, and shows which stocks have done the best all time or each day. And for those who love to watch the CNBC ticker, we set up another page called “Today”, which captures the day’s action, including our total gains or losses on the day, and an eyeball look at how many tickers are up or down on the session.


Fun charts bring color and tell the story as the market runs.

We also set up a page dedicated for charts, to capture how we’re doing each month on the game — which requires some manual work on the last day of each month, but is trivial, and compares each player to another, showing how much we each need to improve to move up the ladder to the next slot.

And on each portfolio page, we got creative with the Finance API and made calls to 52 week highs, lows and how far each ticker is doing from the annual peak.

What Could Go Wrong?

With Google Finance doing all the calls in the background, and the tickers never changing, the game doesn’t need a lot of maintenance from the project owner — aside from the monthly data captures, and any new features you come up with. But the stock market is a tricky place, and you have to watch for complications.

What if a company gets bought or goes private?

Our answer has been that if a company gets purchased, we would ‘pay out’ the holder as if they owned real stock. An all cash transaction would pay out at the value of the deal, while a stock transaction would get equivalent stock of the acquirer. If a company goes private, the stock value is frozen at the last day it was traded.

What if a stock splits?

That’s a fairly easy one, actually, if you see it. For example, if Amazon is at $500 a share, and you have 20 shares, and it splits 5:1, you’d give the current holder 100 shares at $100 a share, and adjust the acquisition price to a fifth of the original.

What if a ticker changes?

That’s annoying, but we already encountered that with Broadcom getting acquired by Avago Technologies. The calls to $BRCM no longer worked. I tracked down the acquisition details, swapped out the calls to $BRCM in exchange for $AVGO and made sure the dollars matched.

What about dividends?

Look. This is a game, so no dividends for you. Sorry.

What about index funds and options?

Index funds are great if you’re trying to be safe, but games are about risk. And options are too tricky to set up, so no. Sorry.

I did the hard work of getting started. Here’s your template.

Practically all the Google Finance calls from Google Sheets can be found on this help center page: https://support.google.com/docs/answer/3093281. I leaned on Reddit a bit to find out how to pull in data on Bitcoin, and asked my colleague Steven Bazyl some App Script questions when I was getting started. But now I have a template that runs itself. If you want to paper trade by yourself or with some friends, you can absolutely take our template, and put in your own picks. And just maybe the market will turn around and we can talk about gains instead of losses!

Here you go: https://goo.gl/YdTalj Have fun and good luck!