Saturday, March 3, 2012

Staying Connected: Company Update Emails

About a year ago one of Gnip's employees pulled me aside to ask some pointed questions. This person had noticed a few things happen in the office, and let his imagination run wild to the point of believing Gnip was being acquired. In reality, that was no-where on radar.

We talked for awhile about how he'd gotten so far down that mental path. Why he didn't simply ask about it earlier if it was bothering him. What had changed in us organizationally, as a result of our team growth, such that there was such a disconnect between his concern and reality. So on and so on.

What fell out of the conversation is something that I've completely embraced; a bi-monthly (every two weeks) update email to the entire company. I literally start mine with "what's on my mind..." and then a bulleted list of stuff that is on my mind. When I remember to, I also forward it directly onto the board of directors.

My calendar reminds me every couple of weeks to send it. I never spend more than 5 or 10 minutes composing it (usually 2-3). The feedback I receive after each one is incredibly useful, and clearly indicates it's being digested.

The update emails give everyone on the team a view into what's on my mind; with frequency and regularity. They're light, so I don't have to prep for them. They're honest. They're transparent.

Of course face to face 1on1s or all-hands are better, but they're not always possible with people traveling and people out sick. They also lack regular rhythm and frequency.

When I used to manage smaller teams I sometimes did these, but they weren't as useful as they are as the team grows. In smaller teams everyone's simply closer and more connected to what's going on so you don't necessarily need them.

If you're responsible for larger teams and groups of people, I'm now convinced these are imperative (assuming you can't get the frequent/regular face-time which is preferred). If you're the CEO of a growing company... they're required!

And one more thing; they have to be real. They can't be overwhelmed by corporate communications crap.

Thursday, March 1, 2012

Gnip is one (leap) year old!

Yesterday (leap day!) was Gnip's four year anniversary. It's been a wild ride to be sure. It took awhile to find the groove (Bijan Sabet coincidentally just posted on this topic), but patience and persistence paid off.

Here's a small flickr set of various shots over the past four years; I wish it was more comprehensive, but it's all I could scrape together with limited time.

Here's a memorable, roughy chronological, timeline. I should do a product timeline at some point, but this one's more nostalgically motivated. Tissue please!

  • Meeting Eric Marcoullier while offic'ing out of Foundry Group's joint.
  • Two weeks later shaking hands at Amante Coffee across the street from Foundry's office. "Let's do this!"
  • Wandering the streets of San Francisco for a few months pitching prospective employees, customers, partners, and investors.
  • Sitting in a "desk for hire" office with Eric, mowing through architecture on a whiteboard.
  • Waking up at 2am at the Moser Hotel to a party that took over the entire floor of the hotel. We had an investor call/pitch at around 8am the next day. That was the last $100/night hotel I stayed at in the City.
  • Incorporating Gnip, Inc in the offices of Ropes and Grey in SF with Eric.
  • Our first meeting with Pivotal Labs (who built Gnip 1.0)
  • Our first hire, who we parted ways with only a few months after he started. I learned a valuable early-hire lesson there; make damn sure your early hires are generalists and that they carry the same energy/passion for the challenge you're solving as you do.
  • Offic'ing out of Pivotal Labs SF. Designing/building software w/ pivots.
  • Realization that the cloud was the future.
    • Me to a traditional hosting provider: "I need 10 instances please."
    • them: "when"
    • me: "now"
    • them: "how about a few weeks?"
    • me: "please close my account." (we fired up our first Amazon Ec2 instances that evening and had a dozen running within hours).
  • My introduction to pair programming and TDD. One of the most beautiful moments of my career.
  • Our second hire.
  • Our third hire.
  • Our first "office" (still my favorite office of all time) in an old brick house behind a pharmacy.
  • Our plucking of a pivot out of Pivotal to be a Gnip employee.
  • Eric's and my first fight. We were wandering around the adjacent neighborhood yelling at the top of our lungs about him pulling a feature from the next day's release because it wasn't "ready." We lowered our voices as one of our employees was approaching us on his way to his car to leave for the night.
  • Sitting on the office porch working.
  • Sitting on the office porch watching people walk by.
  • Sitting on the office porch drinking.
  • Our first paying customer.
  • The morning a woman from the adjacent office stormed into our office screaming at us about how her car was blocked and she had to go pick her kids up.
  • The proximity of the bathroom to _everything_ else going on in that first office.
  • Accidentally cutting the trunk-line ethernet cable to the office switch and killing dev for 30 minutes.
  • Internal battles around who was going to wash the dishes each day (I won an award for being best dish washer).
  • Watching the team write disk i/o drivers/protocols for Berkley DB. Moments of "we're going too far here" flashing before my eyes.
  • Realizing the technical challenge in front of Gnip was going to be much bigger than I originally thought. When you're bursting very fat pipes left and right, you know you're doing something challenging. More. More. More.
  • Realizing the fragility of the Social Publisher ecosystem.
  • The realization of how immature the overall commercial data marketplace is.
  • Watching Publishers accept the pain they were suffering, and that they didn't want our medicine.
  • Aiming our guns/product at the consumers of social data.
  • Crystalizing the fact that our "white-hat" approach to the market/business was required for success.
  • Realizing that Publishers need direct, transparent, relationships with the consumers of their data (regardless of how poorly utilized that relationship actually is/was).
  • Returning from a family vacation to my partner, Eric, having to convey some heartbreaking news to me (which he did like man; truly exemplary moment I learned a lot from). One of the most amazing engineers I've ever worked with, without warning, approached Eric while I was away and explained how it was going to have to be "him or me." One of us would have to go. Very sad, eye opening, strengthening moment.
  • Realizing that "only hire the best, most senior, industry leading engineers" actually doesn't work. Too many cooks in the kitchen becomes a real problem. Jr/Sr balance across a team is critical for various reasons. Team dynamics & appropriate team growth to name two.
  • Moving to our 2nd (current) office.
  • Putting computers on wheelie chairs and rolling them down the alley to ur new office.
  • Setting up a real dedicated VoIP telephone system.
  • Getting dedicated bonded T1s for connectivity.
  • Realizing we needed to "reset" the company because the market wasn't turning out to be where we were expecting, the software we built wasn't going to work in the new world, and we needed to adjust the culture significantly.
  • "resetting" - letting go nearly half of the company in a product/people shift.
  • Moving back to RoR and raw Ruby to start the new architecture.
  • Having the first person in my career hand me a resignation letter.
  • Getting my hands all the way back on the keyboard full-time. Joyous.
  • Knowing we were finding the groove (1.5 years later). Refining the mission.
  • Rebuilding the team.
  • Rebuilding the software. Gnip 2.0 was born.
  • Seeing first glimpse of a potential, tangible, competitor.
  • Eric leaving the company.
  • Me taking on full responsibility as CEO.
  • Looking my new partners in the eye (Chris Hogue and Rob Johnson) that night...
    • me: "we'll get back together tomorrow morning after we've slept on this, and if any one of us thumbs down the situation, we dissolve the company. I can't do this without you guys."
    • chris/rob: "ok"
    • 12 hours later back on the porch
    • me: "so?"
    • chris/rob: "let's do this!"
  • Rob making sure I got on the phone w/ every single customer we had at the time to re-up our commitment in the wake of Eric's leaving.
  • Being approached by a firm re: acquisition.
  • Killing a major deal that was underway because it would've taken us down the wrong product path (even though there was plenty of money coming along for the ride). "Hi, I'm the new guy, and we're going to back out of this deal." Fun.
  • Landing the "Twitter deal."
  • Gnip 2.5 was born. Long live Java.
  • Dealing with unbelievable inbound demand from customers.
  • Hiring our first non-engineer/engineering-manager; a sales guy.
  • Hiring a finance person. 
  • Approached a company about buying them.
  • Acknowledging we have a competitor.
  • Scaling the team in ways I'd never done before.
  • Headcount 10.
  • First time losing a customer.
  • Approached another company about buying them.
  • We no longer have a "splat date."
  • Now able to see what true demand looks like, the way it looks, the way it feels, realizing that the dreamed potential is actually starting to take shape and become real.
  • Realizing we needed more experience in the room.
  • Hiring a COO.
  • Headcount 20.
  • Having large numbers of customers is a massive undertaking, and having them means your business runs very differently in ensure they have everything they need to be happy.
  • Realizing we completely destroyed our 2011 revenue goals.
  • Keeping the product direction focused on what our current, and prospective, customers are demanding from us, while keeping an eye on what we believe they're going to want/need next.
  • Ensuring we don't chase every bright shiny object that catches our eye.
  • First line of C goes into production. What's old is new again.
  • Realizing we need to address bandwidth challenges by changing our hosting environment.
  • Landing our 2nd major premium publisher.
  • Landing our 3rd major premium pub.
  • Landing more premium publishers.
  • Realizing that after 3.5 years, the commercial social data ecosystem was actually gaining some steam. Real money was exchanging hands and a marketplace and industry were manifesting right before our eyes. All the players in the system (from Publishers, to middle-men, to Consumers) were participating and starting to understand their roles and value-adds. Dollar amounts were coming into view. Behavior patters were becoming clear (and expectant). Real market dynamics were kicking in.
  • Realizing Gnip is growing out of its 2nd office.
  • Headcount 35.
  • Realizing our growth trajectory means we are going to need a bigger office.
  • Realizing our bandwidth requirements put us in rarified air.
We've built an amazing product that our customers love. We've built amazing software that blows my mind everyday. We've assembled a team of humans that do uniquely amazing things as a group. Every single day. I've built friendships that will be with me forever.

I am happy, and I everyday I can't wait to get into the office to build more value for our current, and prospective customers.