Vocabulary, mental models, values, hiring, and firing

Humans are unique in their ability to communicate with one another through the use of language – both through the spoken and written word. Coupled with the ability to express an idea in words, the inclination and desire to communicate it to others is an important part of creating successful things.

In other words, helping others understand what you’re thinking is a critical part of doing anything. For one thing, it helps get everyone on the same page as you, with respect to whatever it is you’re thinking about. For another, it gives everyone a concrete and tangible set of things they can talk about, and in turn, tell others about.

Most importantly, expressing something clearly, introduces a specific and common vocabulary that everyone can use, and know that everyone understands in a similar manner. This greatly helps in ensuring that everyone has a common mental model about the thing at hand, and from their can agree on the shared values about what everyone considers important.

As an example, this is extremely important in growing your organization. You may very well want to hire A-players, and tell everyone that that is your goal. But what does that actually *mean*? For one thing, people may have different ideas about what it means to be an A-player. You may have a very vivid idea about it in your mind, but if you want to use it as a benchmark to qualify the people you want to hire, you’d better put it in words.

This was very apparent in a recent situation at work. I was working with a brilliant engineer, who just didn’t fit into the culture we wanted to espouse as a company. I thought everyone knew what that was (excellence, what else?) but obviously different people had different ideas about what it really meant. I knew, in my gut, that this super-smart engineer didn’t fit in our organization, but I seemed unable to do what had to be done about it, because I kept justifying to myself about how he was really good at writing code. Months went by, with detrimental effects on the team, the morale, the output, and on our customers, as we tried to fix the problem by having multiple discussions with the concerned engineer.

Finally, one day, over a couple bottles of wine, we discussed what our values were. Not in vague terms of greatness, but in actual specific tenets. We didn’t have to go particularly far down the list to realize that our trouble-engineer didn’t fit in. The first one was: Delivery Focus – prioritizing the delivery of quality product to our customers every day. Once it became so obvious, we let the engineer go the following week.

Clarity came only after I was able to express it clearly. When you aren’t perfectly clear about it something, and you never are until you can express it in a sentence or two, how can you expect others to know what you mean?

I’ve since realized that this is why I like to read business books. It isn’t that they have particularly amazing insights and solutions to problems. But many of them do end up giving me new vocabulary to think about and talk about certain problems and possible solutions. It helps form and improve my mental models about the world. And then, being able to express things succinctly, and in unequivocal terms, help move things along.

I came to realize this through the unfortunate episode regarding an otherwise awesome engineer, but have since applied this idea to most aspects of our organization. We now like to over-communicate our ideas and plans, concepts and vision. It serves two purposes, it helps us gain more clarity, and it helps us help others understand what we’re thinking.

And it helps make better decisions about one of the most crucial factors that influence the outcome of any venture – the people you end up working with.

P. S. We articulated more than one value that evening, and perhaps they’ll be the topic for another post, another day. I do have to admit, thanks to the wine, we did have to discard a couple outright the next morning :D

Running a Clojure function periodically

I was working on collecting stats about our API servers, and needed to connect them to some kind of a visualization system. The idea, of course, is that measurement drives all future optimizations and improvements, so we need to be able to quickly see what was going on in our processes. 

We settled on using clojure-metrics to do the actual data collection from within our code, and then sending it all to the excellent Librato service for monitoring. 

One thing I wanted was to send a snapshot of all collected metrics every 30 seconds. For this, I had a function called report-all-metrics that I essentially needed to run every 30 seconds. It would collect everything from the metrics registry, and then connect to the Librato API, and send everything over. It would be trivial to write this in a custom way in Clojure, by wrapping it in another function that recursively calls itself after sleeping for the desired duration.

However, I figured I’d wrap ScheduledThreadPoolExecutor from the java.util.concurrent package and get the benefits of the runtime managing this for me instead. I ended up with a function called run-thunk-periodically which does essentially what I described earlier. Here’s the code:

Here it is in action:

And the output looks like this:

The idea is that while it works as expected, when there is an exception thrown, it tells you what is going on in the logs. Also, the thread-pool name is set appropriately, so you can identify the threads in a profiler.

Hope this is useful to someone!

Relationships, the jobless future, and Zolodeck

“The future is already here, it’s just not very evenly distributed.”

This quote by William Gibson might as well have been about the future of jobs. The idea of jobs as we have known them for the past few decades has gone away, it’s just not gone away very evenly. Make no mistake, jobs are changing, and you will be affected.

Here are some reasons why things are changing, and fast:

Organizations re-thinking people and teams

Forward thinking organizations don’t have clearly defined job descriptions any more. They don’t issue such descriptions to their hiring personnel, they no longer seek people that fit certain predefined molds. Just as there isn’t a job description any more, there also isn’t a well defined career path either.

Organizations, are instead, thinking of things that need getting done, and staff project teams to make them happen. And people are assigned roles on these teams, based on their expertise. Old experiences and long years doing the same thing over and over don’t count for much in this new world. And it makes sense, as knowledge, processes, and indeed expertise, all evolve at Internet-speeds. There’s more urgency than ever to get the best results possible, no matter what the project is. And hierarchies, positions, titles, and job descriptions, etc. just get in the way of getting things actually done.

This is why roles and expertise are the new black, and are going to increasingly define what you may be doing at any point in time.

Personal demand, influence, and branding

No one has expected companies to provide long, fulfilling careers and a nice retirements, for some time now. People have long realized that they themselves are the only ones that truly care about them, and have started to manage their own careers much like agents and PR companies manage movie stars.

Now that people don’t put much stock in job descriptions, positions, or titles, how do they form opinions about people? Specifically, how do they form an opinion about you? The simple fact is, if people don’t know you, what you’re about, what you know,  what you can bring to the table, why would they need you on any project?

This is why there’s been such an explosion of personal branding initiatives on the Internet – blogs, twitter streams, comments, open-source or pro-bono work, Q&A forums, etc. Massive amounts of content has been created by folks who want to share and demonstrate their expertise. You gather followers and follow other influencers, all so you can keep up with what you care about, and be heard when you have something to say. And when others go searching for experts in their fields, you can be found easily. And then you can be engaged on new projects.

Some jobs aren’t coming back

This past recession has been a brutal one for a lot of people, and a lot of folks are still out of their old jobs, waiting for organizations to hire back and fill the holes from all those they let go. Here’s an even more brutal truth – most of these jobs aren’t coming back.

There’s been a structural realization in the corporate world that a lot of people who were let go, simply don’t need to be hired back any longer. The organization has simply adapted to not have them around, and if recent profit reports are anything to go by, are doing just fine.

Moreover, as productivity continues to increase, and indeed, as software continues to eat the world, a lot of the jobs that were to be had by a lot of people will simply disappear, and a leaner, meaner service will take over. An example is laundry. In the Bay Area, there are a remarkable number of laundry services, often multiple ones on short stretches of street. A recent YC company called Prim is now charging $25 for taking care of your bag of laundry (and only $15 for additional bags). They’ll pick it up, and drop it off. If this model succeeds, all these smaller, independent laundry services will be run out of business, and in its place will appear Big Prim, the Walmart of laundry services. They’ll eventually have large warehouse-like “factories” where people can get jobs for perhaps little more than minimum wage, that just launder incoming bags of clothes as fast as they can. And in fact…

The robots are coming

Prim will eventually replace the people with laundry robots. It’s going to happen – make no mistake. If not Prim, someone else will, to run Prim out of business.

And so are people from all over the world

And once you realize this can happen to service jobs, which traditionally meant that people actually had to be physically present to do the job (not any more, thanks to robots), what chance do knowledge jobs have? IT work has shown us the way of these jobs already… lawyers, tax planners, accountants, architects, etc. are next… all these jobs can be done cheaper by someone living elsewhere. It’s just the reality, and better software services and faster Internet speeds are making this more and more possible and convenient, every day.

So the antidote is…?

Here’s what you can do about all this – you have to truly take charge of your career and your brand. You have to decide what valuable services you will provide, and you have to be damn good at them, if not the best. You have to make it so people don’t question themselves as to why they’re not just paying someone in Asia or Africa to do your job for much cheaper.

You also have to make sure that people know who you are and that you’re really good at these things. You’ve got to put yourself out there. No one else will.

You’ve also got to cultivate and grow your social capital, in other words your relationships with folks from within your various networks. This social capital is how you’ll be seen, and how plugged in you are will determine what projects you get on. This symbiotic support network will also be how you’ll know about the latest things in your chosen fields, or even if you should be diversifying your skills on to other areas.

In other words, these networks are going to crucial for you to thrive. And as they say, planting a sapling when you realize you need shade is a tad late. You should be planting today, and watering your garden, so you’ll have all the shade you need later on.

Networking isn’t a bad word, and doing it right takes back and forth, giving and taking (mostly giving), one relationship at a time, and year over year of disciplined effort. But it pays off. And it will be the only thing that can help guard against the uncertain, but inevitable future that is coming.

P. S. I’ve personally never been particularly good about taking care of my networks. That is the reason we started building Zolodeck, so we can keep in touch with our connections, and improve our relationships, one at a time. Hopefully, it will be one of those services that people will find valuable going forward…

Relationships, the Slow Web, and Zolodeck

I recently discovered the Slow Web movement, and I think in many ways, it reflects what we’ve been feeling here at Zolo Labs.

Most of us are on multiple social networks, have multiple email accounts, use multiple instant messaging programs, use multiple collaboration tools online like to-do lists, project trackers, file-sharing services, office suites… the list just goes on. Just as the number of programs and services we use now doesn’t seem to end, nor does the stream of incoming messages. Emails, tweets, inbox messages, photos, likes, tumbls. More and more, every day. And each day, our need to stay on top of it all just keeps on increasing. Everything is urgent, and everything is now.

Too many incoming streams!

Meanwhile, we were noticing something else… and that was that despite all this constant activity across all these mediums of communication, and despite how large our network was becoming (thousands of Twitter followers, hundreds of LinkedIn contacts, thousands of email contacts, hundreds of “friends” on Facebook…), no matter how many collaboration tools we used to work ever more closely with all these people, our actual relationships weren’t getting any stronger. In fact, we seemed to be deluged by all these streams of incoming messages and notifications, and not only are we falling ever more behind on keeping up with it all, but it seemed to us that our relationships with these very people are getting ever more superficial. The signal to noise ratio of all these thousands of messages has been on a steady decline, and it seems that this decline has strong co-relation with the weakening of our actual ties with our friends/family/colleagues/contacts/whoever.

It’s not just that there’s this co-relation, but there’s something rather more insidious going on. All these tools (the many social networks, the real-time messaging, online sharing and collaboration tools, etc) are, in theory, meant to make us feel more connected with one another. Instead, all we have is this false sense of security that we’re somehow closer to each other, simply because we’ve added each other as friends somewhere, and we’re sending each other all these notes, photos, tweets, and whatever else. After all, who hasn’t remarked that ah yes, I’m connected with that person on LinkedIn, or we’re friends on Facebook. And what does that really mean? Is there really a strong tie with that person? Or even an actual relationship at all? Or has our habit of adding everyone we meet, indiscriminately, to one social network or another, just become a more modern version of collecting business cards of everyone we meet? And adding all these people, while we think they increase the value of our “network”, they really just add to the noise of all this urgent buzz of notifications, updates, messages, shares, and the like.

Whatever happened to actually focusing on relationships? LinkedIn used to have a tag-line that read “Relationships Matter”. It now seems that since they can monetize resumes far better, they’ve given up all pretenses of caring about relationships between people. Their tag-line now reads “Be great at what you do”. Which is fine, every business needs to focus on what they care about, but somehow, we still think of LinkedIn as a social network… But how social are we on LinkedIn? It’s become more about personal branding, self aggrandizing, and self promotion, resumes, adding to your “connections”, and building your “network”. I’m not complaining, I hold LinkedIn stock, and I’m happy they’re focused on all this, and that they’re making more and more money every year. It’s just that they aren’t the guys who care about relationships between people any more. In similar fashion, nor is Facebook, or Google+, or any of the other “social” networks.

Then again, we tend to forget, that the task of building valuable, fulfilling relationships, is ours alone. No external, hosted service is going to magically do it for you. Not even Zolodeck, the new relationships manager that we’re building here at Zolo Labs. We started thinking about Zolodeck because of what we saw happening to our own relationships. As we moved jobs and so on, took our careers in new directions, moved from one city (or even country) to another, we noticed we were letting inertia and laziness weaken our bonds with family, friends, and colleagues. We saw this happen over the years, even as the sheer number of people we were “connected to” online continued to increase, often dramatically. What was the point?

The Slow Web movement is about everything the Fast Web is not. The fast web is about more and more, faster and faster, all about real-time, and about instant gratification. The Slow Web is about stopping, breathing, and smelling the roses. Zolodeck is about people, not about connections. It’s about relationships, not about real-time updates. Conversations are important, obviously, so we help you have great ones. But Zolodeck will not show you every notification from every connection you have. We’ll help you focus on the people you’re connected to, and help you strengthen your bonds the old fashioned way – slowly, and one at a time. You’ll see everything from a new perspective – and that’s the people-centric one – not the aggregate network centric one, not the status feed one.

You know this truth – it’s more important to have a smaller number of stronger relationships, that the thousands of people in your “network”. In the end, all we have are our relationships – our family, friends, co-workers, both from our past and our present, and the broader community that we’re a part of. We’re building Zolodeck to help you focus on this more human aspect of networking.

Six year founder vesting

I’ve always wanted to live in Silicon Valley. I grew up in India, in Bangalore, and we were always proud of the fact that we were the “Silicon Valley of India“. When I was young, I never really understood what that meant, but I knew it was something cool. My dad was also in the tech industry (embedded systems and avionics mostly) and so I grew up in a home full of conversations about science, engineering, and math. Still, Silicon Valley always seemed a world away, and I was happy just living in the Indian version of it.

Before working at my first startup here in the valley, I always regarded startups with some awe… I admired the innovation, the drive, the speed, and the fact that people took the risk and plunged in. And since we mostly only read about the successes, it was all very exciting. I was eager for my own adventure for as long as I can remember… Of course, within a few months of living and working here, I realized that my ideas were incomplete. There was still all the glitzy sexiness, but there was also the other 95% of the story – where startups fail for all manner of reasons. A lot of the times, the reason is plain poor execution.

But the biggest lesson of all was that it takes persistence to succeed. That there are no overnight successes, and the ones you hear about take years in the making. That the number one reason a startup fails is that the founders give up (the number two reason is that they run out of money, and then give up). The fact that most successes take a long time makes sense to me now – anything of value takes time to figure out, and anything truly ambitious needs multiple rounds of failures to learn from.

When we started Zolo Labs, we knew we wanted to build something valuable. Not just monetarily, but also something that moved the state of the art forward – if not for the world at large, at least in the space of productivity and business applications. We’re building software to support the future of work – that’s a grand thing to say, even if it is unclear what it might actually mean :-) But seriously, we do have a rather grand vision, and we’re fully aware that to realize even a portion of it, it’s going to take a fair bit of time. We’re believers in the lean way of doing things, so hopefully we’ll learn, iterate, and build our way towards our goals.

Who knows what meandering paths we’ll take on this journey, but we want to give ourselves time to get there. We’ve structured our own vesting accordingly – both Siva and I have set up our founder stock to vest over 6 years (instead of the standard 4), and have a 2 year cliff (instead of the standard 1 year). We believe we’re in it for the long haul, and want to put our (potential) money where our mouth is. This is unusual – almost no one I know is doing this – but there is at least one precedent that we know if, over at AngelList.

We’re also going to want to fill our company with folks that believe in our vision and want to help us make it happen for its own sake. We’re thinking hard about how we’re going to structure our ESOPs and think it’s likely to look very similar to our own. Obviously, we’ll happily give out more equity in the process, and pay people enough cash so they can work with us (rather than pay people to work with us).

Since this is our first go as founders, I figured we’d share our thoughts as we build out the company, and this is part of that series. Please drop us a note if you know others who’re using non-standard vesting plans, would love to hear about them.

P. S. We’re still pre-funded, so we’re not hiring yet, but we’re receiving inquiries about internships and the like – so if you’re interested in helping the cause while working on Clojure, Datomic, and Storm, drop us a line at @amitrathore or @sivajag!