2014 was a great year. Hell, 2013 was too.
I worked with the best people I have met in my life. Some were friends before I worked with them. Some were friends after.
I wrote near a hundred of thousand of lines of code. I argued in front of whiteboards of detail 40 feet long. I beat myself up about times I was too harsh to those that were just ernest in their effort.
I spoke with passion about things I cared about in front of thousands of people. They listened and responded in kind. I found kindred spirits.
I met women and men that do the daily work. That make the magic happen though they don’t get the twitter followers or the acclaim to show it. I personally dealt with trying to resolve how to make things fair to them. Why do people follow or care about me when I am nothing compared to them?
I reconnected with my heroes. The men and women who built the foundation on which I stand. I got reinvigorated by the passion that we can be better than we were. The way we work on things, the way we communicate, the very way we look at the world of technology can be better. I am inspired.
I met great engineers. People who are leaders and innovators. Selfless, sacrificing, dedicated, and honest. People that get less credit but are valued above the gold of a good marketing campaign.
I work for a company that is a group of patient and persistent thinkers. I miss the company full of brothers and sisters at the same time.
I discover–in all the long hours of work and effort my daughters and son grew older. My world changed around me. I did good and bad at the same time.
2014 was a good year.
2015 will be better.
For those that aren’t up to speed – Vagrant now supports Docker as a Provider via plugin. If you are running on a system without native Docker support Vagrant will bootstrap a box that is native and proxy Docker commands into it. Rather slick if you ask me.
Problem is there appears to be a bug with a recent release of the vmware_fusion provider plugin which is breaking this functionality with VMware Fusion. By default the Docker provider uses a box hosted on Vagrant Cloud called mitchellh/boot2docker. This box is a lgithweight VM with an ISO mounted that is used to live boot. The bug has something to do with mucking up IDE/CDROM binding for Vmware Fusion VMX files. I didn’t dive into the bug for details.
I did search for workarounds and found some. But they were all a bit specific and fragile. Instead of using them I decided to use the built-in magic that Vagrant already provides with their Docker provider that allows you to select the box you want to use. So instead of using the currently broken mitchellh/boot2docker (on vmware_desktop) we will select a different box.
We need a box with native docker support. An Ubuntu box would serve nicely but you can use your flavor of distro. There is the option to choose a box with a built-in docker stack. I chose to use Vagrant’s Docker installer functionality to automatically install the latest Docker. This takes a little longer upfront but ensures I have the new hotness.
I uploaded my setup to Github here: https://github.com/lynxbat/boot2docker-fixie-example
The instruction from the README:
git clone email@example.com:lynxbat/boot2docker-fixie-example.git cd boot2docker-fixie-example/docker_container vagrant up
This will bring up the vagrant host VM (box-cutter/ubuntu1404), build a Docker image, and then run a container exposing port 80 and mapping to the host vm on port 8080. Then after the container comes up just run:
To open up the Apache2 default page in your browser (host_vm:8080). This is apache2 running in a container on top of your host VM. Hopefully this example helps someone else in getting Vagrant and VMware Fusion working again with Docker while the bug is being fixed.
PS – there is a weird bug where you get this:
Stderr: 2014/06/12 13:49:01 Get http:///var/run/docker.sock/v1.12/containers/json?all=1: dial unix /var/run/docker.sock: permission denied
If you run ‘vagrant up’ a second time it usually fixes itself.
Sell the vision well and the doors will open. Very few good ideas get to happen without someone selling the idea to someone. It is the vision of it. The story that is told. The belief in something better that greases wheels. As a recent boss loved to say:
You can do anything you can justify
One of my favorite things to say is: execution is all that actually matters. Say what you will do (sell it) then do it. An inability to move from point #1 to point #2 in my personal belief is the greatest skill gap in technology today. It is one thing to think of great ideas. It is more important to think of realistic ways to make that idea become reality. It is interesting to see how experience matters here. Sometimes those with experience in the pain of execution not happening are wise enough to be ready the next time around. Specialized skills in organizing others, communicating across disciplines, translating the vision to implementors, and the ability to persistently push to deliver are what make amazing executors.
The tail end of sell and execute is ownership. Breaking the ice on a new idea and making the impossible possible comes down to awareness that everything changes. The same skills that are awesome for selling and execution may not translate to supporting and growing. In the execution phase the pain of missing skills or missed concerns can be smoothed over with super-heroic effort. But long-term growth and stability comes from feeling pain. You cannot properly fill a hole in the armor if you do not know it exists. Growth is the addition of people, pieces, and process that make something small and shiny evolve into something large and powerful. Growth happens out of pain. In sell and execute we focus on what is possible and ignore the pain. With growth we focus on the reality of now and the steps needed to permanently solve pain and allow for so much more.
Growth can lead to stagnation. Laying down roots and becoming a tree people can depend on is important. But a tree cannot change location easily. Changes will be required and some of these changes require large effort. They will look scary to the big tree that has grown up. Which means someone needs to sell the reason why change is important and set a vision for where to go next.
Do not attempt to execute before you sell. Do not grow before you execute. The grower looks to the seller. The seller to the executor. The executor to the grower. And so we iterate towards the impossible again.
Interesting new focus from Intel. Seems like something fun to be a part of this year :)
It has been amazing. That is the only way to describe it.
Project Zombie was an experience filled with amazing challenges and people. And for me this season is over.
I will be leaving VMware soon to take a position at Intel as a Principal Cloud Architect. I will be focusing on helping them develop some amazing new things in distributed automation, DevOps, and more.
This is not just a big deal for me. I will also be moving the Weaver clan from our home here in Texas. We will be settling into Portland Oregon area and starting a brand new adventure. We recently took a trip to Oregon over Spring Break and fell in love with the state. My family is excited to start exploring a new part of the United States.
The team will go on without me. I am proud to have been involved during this period of building out vCHS. And I feel lucky I was able to help assemble this mutant army of coding cloud zombies. The greatest part of this transition is knowing that the team will easily fill the small void I leave behind because of how awesome they are at what they do. The team culture of strong collaboration, ownership in what you do, and thinking out of the box was something brought by each member and it will live on.
I have been in the EMC/VMware family for over four years. And it is not without some sadness I move over to Intel. I have nothing but good memories and wicked skills thanks to the amazing opportunities I had as a part of this family.
Only thing I can promise is you will see more from Nick Weaver.
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.
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.
This is the video recording from my PuppetConf 2013 keynote on VMware vCHS and Project Zombie.
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:
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
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.