The problem with musical chairs

You walk into a room. In that room are your coworkers. Some are good friends. Most are not.


You look around the room and see chairs all around. And in the middle is a table with a set of speakers. A person walks in and announces to the whole group that there is a critical need for everyone to sit down in the room. ‘But first some music will play and everyone will circle the room.’ they say kindly. ‘Then when the music stops every one in the room is each personally responsible for finding themselves a seat. It is most important that everyone has a seat and through cooperation we will accomplish that.’ and with that last statement they exit the room.

Somehow this sounds vaguely familiar to you. But you shrug your shoulders and wait.

The music begins, a bright marching chorus filled with horns and stringed instruments. You and the rest of the group begin awkwardly circling the room.

About a minute after you start circling you suddenly notice something odd. There appears to be fewer chairs than people. You count in your head again. No, you are sure this time. There are 10 people but only 7 chairs.

You tap the shoulder of the person in front of you, James from the Widget Office. ‘James. James, there are not enough chairs…’ James seems to ignore or not hear you. So you tap harder, visibly making James flinch under your stiff finger. ‘JAMES’ you say with a strong voice over the music. ‘There are only 7 CHAIRS. But 10 of US.’ James quickly glances back with a fearful look on his face and and waves his hand at you dismissively.

You feel confused. James seemed irritated and maybe a little scared with your information. You look back at Selma from the Counters Team. She is looking at you with a confident smirk. She heard your interaction with James. ‘Well, I don’t know about you. But I will have no problem finding MY seat. Maybe you should focus on your seat rather than worrying about others’ she snaps at you. Then she looks off into the distance with her confident smirk.

Now you are really confused. Why would we be doing this? Why is everyone ignoring the problem in the room? If it is important that everyone finds a seat and there are not enough seats, then we should be focusing on getting more chairs rather than marching to the music. What happens to those left standing?

As you look around the room you realize what is happening. Some people look you in the eyes with concern. They see you understand and their eyes are almost a warning. Some look at you with coldness. You can almost feel them counting you as one of the unlucky 3. And the rest stare straight ahead looking at no one. They are focusing on being ready for when the music stops.

The music builds and builds. Its volume increases and you feel the climax coming. Then suddenly, it stops…


Failure is not always a surprise. Sometimes it is seen well ahead of time. Integrity is calling out risks even if you may not be the one left standing. The difference between a leader and a follower is the ability to ask for more chairs when the time comes. Even if it means pausing the music. The leader is concerned with the group success and not just the odds of personal failure.

And always count the chairs.


Effort vs Credit

In life, your effort will be judged by your peers, superiors, and dependents.

Sometimes there is effort you can make which is somewhat impossible for your superiors to fully grasp. Maybe it is too technical. Perhaps they are too busy. Or it may just be your inability to communicate the value. But you know why the extra effort is valuable. You know that someday someone is not going to run into a problem because you decided to do things right. You know that you might not even be around when that time comes. Which presents every technical contributor with a problem. Do I only commit the effort that will be recognized? Or do I hold myself to a higher standard and judge myself first?

Your boss is just a single factor in what affects your life and you will have many bosses in this modern world. My opinion is you always treat your effort in life as a reflection of how you want to be seen. Even if there is no guarantee anyone will ever see it. Not because you get credit from those above you. You do it because that is the person you want to be.

The funny thing about integrity in your work is that it does not go completely unnoticed. Your peers will see it. If you have subordinates they will pick up on it. And as it bleeds into your personal life, your family will see it as well.

There are a lot of things that can rot away at our integrity. Unrecognized work, wasted effort from poor communication, random events, and much much more. Sometimes it is hard to remember why you should do the right thing when the wrong thing wins.

In life, your effort can win more than credit.

It can make a better you.

NOTE: It seems some see this post as a rant about my current position. It is not in the slightest. In fact this post is all about letting go of trying to get recognition for things you can’t and instead focusing integrity first. Just to be clear this post is about my developing philosophy and not me complaining about the wonderful role I am in currently.

Cloud, Coding, Speaking

Bring the popcorn

I have been traveling around this year speaking on automation and how it is a positive evolution to technology engineers. I love nothing more than inspiring engineers to push themselves into fun tools and patterns for making themselves more valuable.

This week and next I will be speaking at both VMworld 2013 and PuppetConf 2013 on automation and the project that has consumed my time for the last year, Project Zombie. If you are even slightly curious what the vCHS automation team has been up to and what the result of that work is, you owe it to yourself to catch one of those sessions. Here is my schedule over the next two weeks:

PuppetConf 2013

Time: Friday 8/23, 10:25am
Title: VMware vCHS, Puppet, and Project Zombie

This will be a 25 minute long highly compressed story of how vCHS built a custom framework alongside Puppet to manage automation (Project Zombie). I will also have special guests join me on stage.

TIme: Friday 8/23, 11:00am
Title: Automation Generation: Or Why Skill is the Answer to Scale.

In this session I will be covering automation and why it is a positive evolution for engineers in technology

VMworld 2013

Time: Wednesday 8/28, 3:00pm
Title: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

This will be the longer version of the Puppet Keynote on Project Zombie. Nan Liu will join me for this and we will cover in-depth what Project Zombie is and how we approached DevOps automation at scale. Nan will also be announcing a very cool thing for the automation community during this session

I am completely thrilled that I get to share some of the work we have been doing and I am looking forward to catching all the other amazing sessions at both of these events.
If you do attend a session, please come by the front after and say hi.


Project Zombie

Commentary 3.0


This blog has bounced around between a lot of different things as I have adapted to what my career has placed before me. Today I start a new iteration. And in this iteration I am going to focus much more on whatever strikes my fancy as a personal blog. In the past this has been in enabling the virtualization community through comments and code. Now my focus is more open-ended. Much less working for months up to one big post and much more openness about what is on my mind.

Some will find it less useful to them. But time moves on.

Cloud, Coding, VirtualAppliances, VMware

VMware & Puppet : One More Step Forward

I wake up everyday committed to not doing things the same old way. That is why my title has that funny word ‘Automation’ in it. I am tasked with finding a way to make what is fragile, expensive, risky, and complex; easier to manage.

While most of what I am working on at VMware is not ready for the light of day. There are some things that have come out of our work that would have a greater benefit being in the public space. If you are even an infrequent reader of this blog (which given my posts lately, is everyone) you know that I am a huge fan of PuppetLabs. More than that I am a huge fan of automation using DevOps-style toolsets enabled by community development.

Right now I belong to an amazing team of crazy talented engineers. I rarely go a week without seeing something that makes me wish I was capable of doing a backflip. I am proud to announce that today some of that magic is now being put in a place for everyone.

Today VMware and PuppetLabs are releasing the first set of modules for managing VMware environments. This brings a bunch of new features for the first time:

Management for the vCenter Appliance /w

  • Complete initialization – Just point as a VM that was deployed from the OVF and it will standup vCenter.
  • Datacenter and Cluster configuration – HA, DRS, and more. The one caveat being EVC (but coming soon)
  • ESXi Host – Grab and add ESXi hosts to clusters and manage them through Puppet. Something that *might* align nicely with another tool called Razor.

Management for vShield Manager

  • Complete initialization – Just like the VCSA, point Puppet at your deployed vSM appliance and watch it complete the setup and stand it up.
  • Association to vCenter – Bind the vSM to a vCenter automagically.
  • vShield Edge Deployment – Point it at a resource pool and easily deploy vShield Edges to vCenter.
  • vShield Edge Configuration – Control the firewall, NAT, load-balancing, and more using Puppet config. – Note: We are actually adding more this now so this may be in flux.

With the features above you may now deploy out VCSA and vSM appliances and automatically configure them into vSphere clusters with firewall, NAT, load-balancing and more. You can carve up the ESXi nodes into any number of clusters or config. And this is just the beginning.

The other great part of this is that we are today releasing all of these modules under the Apache 2.0 license and submitting to the Puppet Forge. We strongly believe that VMware admins that have not played with Puppet need a way to start. And even more importantly there is a great number of brilliant people that can add to this work and make it even better for the community as a whole.

The modules can be found on github:

If you want an awesome technical walkthrough. Then read the blog on this release from one of the main authors, Nan Liu:

I want to thanks the team behind these modules for the amazing amount of work they accomplished in a crazy short amount of time:

  • Randy Brown
  • Shawn Holland
  • Nan Liu
I cannot emphasize enough how this is just the tip of the spear. There is so much more to be done in the realm of automation for cloud uses cases. And before this year is up, I am personally hoping we can deliver some amazing technology for everyone in cloud.

Cloud, Coding, Tools, VMware

Stuff to see : Puppet, PEX, and more

I know it has been a while since i have posted. I have been deeply engrossed in my work here at VMware and hopefully will have some extremely cool things to show for it later this year.

But I am coming out of the basement for a couple of cool things in the month of February.

First I will be doing the keynote for the Toronto VMUG next week. Go here to register and view the great sessions and more that will be available. I will be presenting on Cloud + Automation and giving my perspective on why this is such an awesome time to be diving into automation.

I am also going to be co-presenting a session at VMware Partner Exchange 2013 alongside Nigel Kersten (CTO PuppetLabs) on some exciting new stuff from VMware and PuppetLabs. This is a must-attend session as we will be presenting some extremely cool never-before-seen stuff with a live demo :). The session info is: ‘VPN1298 – Next Round of Cloud Configuration Automation Using Puppet and VMware’ and it takes place at 2pm on Wednesday.

I also have some forthcoming stuff for the community as a whole in the next couple months around some code my team and I have been working on. This year is going to be a busy one for VMware cloud and automation.



Next Level : 5 Rules for a Rookie Tech Leader:

At this point in my career something weird has happened. People look at me expecting me to answer questions. They expect me to hack my way through the jungle of technology and find a path to business value. They expect me to lead. Or in other words: at sometime in the recent past, I transferred from a contributor – to a leader.

But, I am not an executive or a PhD. I am not a battle hardened veteran of a dozen product launches. I am not on any boards, I have not written any books, and I do not walk into a room with every single person knowing my name.

What I have done is build a reputation for executing where it is difficult. I have demonstrated my passion for technology and my love for problem solving. I have shown that I love talk to people about tech as much as building tech. And through all this I find myself in an interesting position. There is more riding on my shoulders than ever before. But more than that; there are really good, hard working, and intelligent people that are looking to me to help them achieve success. Which means I can now fail more than just my family or myself. Which is a much more serious place to be.

Out of this I have been trying to ensure that I am not just the Special Forces style engineer. I do not just drop in, kill all the problems, and then zip out with a quick helicopter extraction. I have to build value that lasts. I have to enable others around me while still delivering my unique technical value.

Out of this I have been thinking about the core principles I want to adopt in this process. After rolling these around in my head for a month or so I have decided to share them.

5 Rules for a Rookie Tech Leader:

#1 – Create places to live not a mansion

An interesting aspect of technical leadership is the ability to take credit for progress (and if honest, failure also). Because of this, you naturally approach every project or challenge with this in mind. And some leaders develop the habit of staking out real estate in the technical mind-share. They become the gateway to anything they are an *authority* on. Worst than that – they make a habit out of squashing up and coming tech stars that would even have the slightest chance of challenging their rule. Value for them is using the newly cleared trail they blazed to build a mansion and live there. And then expand this out as much as possible to somehow make them invaluable and irreplaceable.

This is an unnatural and poisonous place to be and many of you reading this can probably think of people that fit this role exactly. A person who develops into this role is as valuable as a growing tumor on your lung. They changed from being a person that drives execution to a person that controls execution for his or her own purpose. This is not who I ever want to become.

Instead I want to be the person who builds homes in tech for others. I want to make the challenges easy to consume for those behind me. I want to look back and see people living in their own resident value that I helped break down the walls and make possible.

To avoid this pattern in my own work I will focus on a few key rules:

  • I will publically (!) inquire and listen to people about their viewpoints and ideas.
  • I will accept ideas that are honestly better than my own.
  • I will plan everything I build to not require myself around to run it.
  • I will recruit people that can do what I do and add value to the company.
  • I will NEVER take credit for work that I did not do. Instead I will ALWAYS credit the true contributors.

#2 – Success is more important than your ego

I have worked with people who would actively try and kill a good idea or project that did not have their name on it. An extension of the mansion-dwelling tech-Nazi in the rule above is the glory hound. When it is all about you then it is really hard to be about anyone else. And I am not going to argue about why community is better than going solo or why building a tribe is about you giving and not you getting. I am arguing that you are actually killing your own reputation and growth with this pattern.

In the end you are as valuable as the sum of you effect on your company. So if you contribute several key projects but then turn around and kill off many other good ones because you did not think of them first; you may actually come up in the red as a value to your company. And do not be deceived that people around you, under you, and above you are not aware of this.

I will support a project that is valuable but may not have my name on it just as much as my own. I will applaud good ideas and get just as excited as if they were my own baby. I will bleed genuine enthusiasm and encouragement for those around me. I will have my value in the black.

#3 – Give out more praise than advice

Short and sweet: just because you are in a position where your opinion matters, that does not mean your opinion actually matters. You should listen and respond with any and all advice that is appropriate. But stay away from the dangerous zone where people come to you with good ideas and all you do is tell them how you would make it better. This can quickly change to a point where nobody wants to go to you at all. People want good constructive feedback. But deep down inside they want validation that what they did was worthwhile. And they deserve both. Wrapping advice on the project with honest positive feedback on all the incredible good value they created is a great way to balance this out.

I will give out honest praise on beautiful tech and avoid trying to become the advice machine.

#4 – Knowing how doesn’t mean you have the know-how

Do not get too confident that you know the way. Technology changes so fast that anyone who thinks that they have the patterns down for approaching any problem is an idiot. You need to approach everything by utilizing everyone around you. Your job as a leader is making sure the goal is reached. Sometimes that means a lot of reaching into your own tool chest of experience. But, sometimes that means pulling wisdom out of individuals around you and propping them up into a place where they can do what you cannot.

I will be honest with myself on what I do and do not know. I will continuously develop my own skills while utilizing the skills of my team and peers.

#5 – Keep your promises more than your schedule

People look to leaders and see what they have done. They know about your success before. They know what others say about you. You can destroy all of this by being a flaky and irresponsible person in the day-to-day interactions with your teams.

Keep your promises. Do not make promises you cannot keep. Even in the small things. When people see that you care about your interactions with them, you built true trust in a relationship. Why should people trust you in the big projects or designs if you cannot keep a lunch appointment? Respect is a two-way street and you can destroy your own by stepping on everyone else’s.

Part of this is learning to manage demands on your time. The other part is consciously thinking about others and how you affect them. There is no more valuable a leader than one that people WANT to follow. No matter how rock star you are, if nobody wants to join the band – your leadership career will never grow.

I will manage the demands on my time. I will keep commitments I make. And I will sincerely apologize when I realize I let someone down and not just sweep it under the rug.

These are the rules I want to live by as a tech leader. Only time will tell how well I can stick to my own advice. I hope this was useful to someone else in my position.


Cloud, Coding, Commentary, Distractions, Life/Work

Hello Again : My life up to this point

This post is a catch-up for all the stuff I should have written about but didn’t in the last few weeks. For those that don’t know, I recently moved from EMC over to VMware into a brand new kind of role. Right now I am caught in the trifecta of learning a new company, meeting new teams, and trying to help bootstrap my own with recruiting and design work.

Which results in my blog getting a lack of attention.

But, all that is going to change. My new mission with this blog is to just start dumping from my brain a combination of what I am playing with and what I have discovered along the way. I am working on tools and special things for the cloud community at large. But these will take a bit of time to see the light of day. So my new post will be titled: “Nick’s Distractions” – and will be a summary of mildly interesting topics that distracted me somehow during my week.

So here is my first catch-up:

Project Razor:

Razor has exploded way bigger than I expected. Funny how solving personal problems can result in public acceptance. The current forks are over 50+ and watchers are almost 200 on the github repo( This is just awesome, as I had always envisioned Razor as being truly powerful when it becomes a part of an open community that contributes 99.99% of the code and design.

Now for the updates:

1. I was lucky enough to be able to do the short Razor session at PuppetConf 2012. I ended up redoing my presentation the night before to better fit the audience. I ended up doing a live demo and preso at the same time. PupeptConf has to be one of my favorite audiences to speak to, ever. You can actually watch the whole presentation, which is a GREAT way to get to know Razor right here:

2. Another secret trick I have been working on with Razor was actually announced during the keynote at PuppetConf by Dan Hushon. I had spent about two months trying to figure out a way to do Microsoft Windows provisioning with 100% Razor deployment and all the same ease and power as you would get with Ubuntu or Centos. While it is still in private alpha until I get a pull request up, here is the video showing the Windows magic happening. This includes full control of the Windows version, language, and everything in between.

3. There was a major update right before PuppetConf which updated the REST and CLI API’s for a much more consistent control of Razor.
The Wiki got a major update so if you haven’t checked it out go peruse the new Wiki:

4. There is also a nice new install guide:

5. Razor is going to be used by RackSpace to qualify hardware for their OpenStack efforts:

6. Turns out Cisco’s demo of deploying their OpenStack + Puppet at OpenStack Summit including using Razor (Dan Bode from PuppetLabs co-wrote the Puppet->Razor control). Can’t find the video at the moment.

Random stuff:

1. If you haven’t played with it before: AntlrWorks( is an awesome GUI/IDE for using the Antlr lexer/parser generator(

2. In exploring Basho’s Riak software I discovered some interesting constraints around getting a list of keys or range of keys. Here is a very good thread I found around this including how to handle it with secondary indexing and good design approaches:

3. Here is a very cool post on Twitter’s Storm project: (thanks to Clint Greenwood for showing me)

EMC, Life/Work, VMware

Change of pace : My next career experiment

Every year I get a little older and a little wiser. And the one thing I am realizing about myself is that I thrive on challenges. My natural element is breaking problems down and creating answers. I live for that first 5 minutes after success when you can look back and see a pattern of effort paying off.

Which is why I look back at my time at EMC and feel so good about what has happened. I have made a great many friends. I have worked with people that have influenced me greatly. I have made my small dent in the technology world where I could. And beyond all that I have had a blast doing it all.

And it would be very easy to stay comfortable and contribute where I am. But, I have been presented with an opportunity to move the ball in a way I have not before. Life is a sequence of opportunities, challenges, and empty-time in between. It is how you handle each of those moments over a long period of time that shapes who you become. This new change for me is both a major challenge and an extremely important opportunity to shape who I become.

Which is why I am announcing that I have accepted a position with VMware as an Automation Architect in Cloud Infrastructure and Services. This position presents some very unique challenges and I am joining an amazing team of rockstars. I have very specific challenges in this role that I am chomping at the bit to attack.

The sad part of this story is that this means I will be leaving EMC. I find it hard to put into words how much my time here has meant. How do you leave a a company full of great people where many of those people have been critical to your development and great experiences? I leave with a head full of incredible memories and friendships meant to last.

But life is about opportunities, challenges, and empty-time between. And when presented with the right challenge you have to make the choice to abandon the comfortable and take on the unknown.

I think Ralph Waldo Emerson says it best:

All life is an experiment. The more experiments you make the better.

Thank you to all at EMC who have been friends, supporters, and mentors. And a special thanks to Dan Hushon. Without his exceptional leadership in the last year; I would not have accomplished 90% of what I did.

Wish me luck.