Sitting next to me at this high-topped table at Google's Mountain View campus, a German, sitting across from me, a Pole, and to his left, a hacker from Portugal. With my usual flagrant disregard for the adage "not to discuss politics nor religion in polite company," I ask some pointed questions about the crises and challenges facing the European Union. It's October of 2016 and the discussion is about to become heated.
A non-trivial aspect of my job for the past year at CloudBees has been communication. To claim that this is a new change in my career would be to fundamentally mis-attribute the vast majority of what makes good Software Engineers and Engineering Managers good. Communication in my job as a "Technical Evangelist" (or as my business card states: "Community Concierge") is many orders of magnitude more involved than it was an Engineering Manager, and what makes it very challenging is the size of the audience. As an Engineering Manager the audience is typically less than 20 people throughout an organization where the spoken-word is the primary means of communication. By conservative estimates more than a million people use and interact with Jenkins as part of their work, the primary way to reach them being written English in some medium or another.
The longer I have been working from home, the more important and involved my breakfast routine has become. With colleagues in various timezones around the globe, it can be difficult to find time in the middle of the day to leave the house or make myself a decent lunch. A hearty breakfast however, can stretch from mid-morning all the way to an early dinner (5-6pm).
For years Vim has been both my editor and "IDE" of choice across all projects, spanning multiple platforms, toolkits and programming languages.
In some form or another, I have been a systems adminstrator for various Jenkins instances for over eight years. While I wish I could say that has imparted some deep, hard-earned, wisdom upon me, truthfully, it's been about the same as managing any other application: a constant battle of system dependencies, monitoring challenges and upgrades.
"It's better to be on the ground wishing you were in the sky, than in the sky wishing you were on the ground." One of the many sayings that gets told and re-told in the aviation community, has been gnawing at me for the past couple of years. When you're flying regularly, it is certainly a truism. When you're not flying regularly, or at all, it rings false, deafeningly false.
Arriving for Thanksgiving this year, in my luggage I had four cookbooks that I borrowed from a classmate along with a couple of my own. Each book contained a number of recipes for soups, appetizers, salads, casseroles, entrees, cakes and cookies, all from Germany and almost exclusively written in the german language. Keen to my desire to cook german food, my wife decided that the Friday after Thanksgiving would be my time to shine. On the yellow notebook paper, which listed the meals planned for the next few days, the heading for Friday simply read "German Day."
I remember the first time that I experienced "burn out", the manifestation of not physical but mental exhaustion that is alluded to but often not described in the tech industry. I had completed my first semester as a Computer Engineering student at Texas A&M and was an absolute wreck. It was after dinner on a Friday, I had picked up some McDonald's, Double Quarter Pounder with Cheese, not because I liked it necessarily but because my friend Bill had told me it was the cheapest and most calorie dense thing on the menu. He was a junior and wore a calculator watch for purely practical reasons, so I trusted him on these sorts of matters. I finished my abomination of a meal and decided "if I don't get the fuck out of this town, I'm not going come back next semester."
Mid-way through last year, Lookout's investment in JRuby started to really take off. Having struggled with the harsh realities of MRI, we finally had a platform that gave us a way to grow our technology without having to throw out vast amounts of existing Ruby code. After an exciting weekend at JRubyConf EU 2014 and eurucamp I started hacking on a brand new project, one that I hoped would bring Ruby into harmony with the rest of the JVM ecosystem: JRuby/Gradle
Over the past year, I've spent a lot of time hacking in the Gradle ecosysgtem which, for better or worse, has earned me a reputation of knowing Gradle-y things within Lookout. Recently, my colleague Ron approached me with a Gradle problem: using the shadow plugin (a great plugin for building fat jars), he was having trouble excluding some dependencies from the produced jar artifact. I figured I would emulate Mr. Haki's Gradle Goodness series and post one of my own.