Transcript from Interview
Why DevOps as a career?
I find it's a very interesting intersection between automation and control, which is something that I've always liked in an industrial setting, electronics, and computer software development services. So, I think it is right in the middle, so you can do a little bit of development and a little bit of control and automation. You can also try to innovate on those and have good operational practices as well. At the same time, you can learn a lot about the systems that are beneath your application. It's a position where you can enjoy every single aspect that your team is doing.
What have you been up to at CBRE?
The first thing I've done is try to understand what the team's culture is doing, what has been done in the past, and to not just try to come and cut your way through the culture or group.
Also, I've been learning about what we are doing as a product and for whom are we building these products. What's the end goal of what we are doing? For example, I might think there are very good technical solutions that are fantastic and ideal, but for the end user, I can't offer a command line query for reports. I might think that is a perfectly fine solution, but maybe nobody else is going to think like me.
So, since I've been here, I've been poking around on our current approach to automation. I'm trying to figure out which parts we can keep on using, which parts may be improved, and which parts need to be redone.
The other thing I've been doing is a little bit of dissection. I've been grabbing the correct layout of all our systems and have started to divide them into sub-systems that can be analyzed, operated, automated, and tested individually without affecting the rest of the systems.
I've been trying to figure out which areas have the quicker, low-hanging fruit as an opportunity to have the best returns for what we are doing.
And, I'm seriously focused on all of us having a good quality of work and life. So that's also a very important in my mind. I don't want people to wake up in the middle of the night to solve something that is not even an issue.
Does being a DevOps engineer require people and business empathy?
Yes. First of all, you need to understand that, when there is an issue, you are going to be the person caught between the issue and the people suffering from the issue. So, you need to be able to understand how the issue is impacting others.
When the site is down, what does it mean for the business? Because it could happen, at one point, where you have multiple issues on the table. You have to figure out which ones to tackle first, and that triage process sometimes depends on empathy. Knowing which part of the business is more affected by an issue requires this empathy.
On the other hand, like I mentioned before, there are solutions that are very good from a technical perspective, but they take a long time to deploy or to put in practice. They are not practical when what you are trying to do is solve someone's problem as quickly as possible. So, you need to understand where the line is drawn between the perfect solution and the solution the business needs. Just do what the pieces need first, and, at one point, you can start improving these pieces. You can later make it technically superior. But, the first objective is the business needs.
What are some of the other characteristics that you look for in a DevOps Engineer?
Definitely curiosity. You can't just see a problem and say something is wrong. You need to ask yourself why and how the problem is happening. Someone who feels the urge to read the documentation.
You also need to be a little scientist who does all these experiments with new tools that you might find could help you and help your operation. At the same time, you need to have cautiousness and discipline to know when to keep your fingers on the track pad and not on the keyboard.
Also, you need some sort of structure, and you need to control the urge to use shortcuts.
Furthermore, you need to know that, at some point, you are not capable of solving every single problem. You need to know how to rely on others. Go seek the master or guru of a certain area so that you can solve a bigger problem.
One peculiar thing about technology is that it changes every day. If you read tech news, you see all these new technologies every week. So, you need to discern which ones deserve your attention and which ones can be left to the side for the moment. Stay updated, but keep things practical and down-to-earth. Try not to distract yourself from what you are doing. It can be very challenging and tiring to try to keep up with what is out there.
How do you curate through that noise and keep up with best practices?
The simplest paths are often the best paths. If something requires a lot of steps, it might not be a best practice. I mean, they can be complex, but they don't have to be complicated.
It's also always nice to hear what peers are doing. You can share information and calibrate yourself with them in mind. One thing I do, from time to time, is that I go have breakfast with DevOps guys in the Seattle area. We just get together, and everyone brings two topics to talk about. We put them on the table. We vote on what we are going to talk about. So, with that process, everyone is voting on what the collective consciousness is among the DevOps engineers there. You might find in these discussions that you have been very wrong in your practices.
What are some of your favorite resources?
There are certain institutions that I look to, like the ACM.
There are also certain authors that have set very specific or very good procedures to follow. I recently learned about Thomas Limoncelli. I've read a couple of his books. The first book of his that I've read was Time Management for System Administrators.
Any conferences or meetups that you like to go to or follow?
There are a couple of container summits every year in the US, and those are interesting to see. I've been at one in NY.
The other things I've gone to are the Unix System Administrator groups, and I go to the Seattle System Administrators group. I've been going to the PuPPy group and the Erlang Users group. I'm not a big Erlang developer, but I think many of the ideas behind the Erlang world can be translated somewhere else.
What languages and tools excite you?
I like Python a lot, and I think it's a fantastic language for general and specific purposes. But, I also realize that the way to solve some problems in Python isn't necessarily the best way to solve a problem. There are probably thousands of programming languages out there, and it doesn't mean all of them are good. I think there might be a list of ten languages worth paying attention to. Python is probably in the top of that list.
I'm also curious about Erlang, because my previous orchestration of software I worked with was in Erlang. For many years, I've been a Linux fan. Little by little, I've been starting to look at Linux as a pragmatic choice, but not the best choice. So, I've been looking into other kinds of Unix, for example, FreeBSD. The first time I tried FreeBSD, I could not believe that I had never used it or taken it seriously. It's a fantastic operating system. I've also been working with some experimental systems, like Plan 9.
From an abstract perspective, I'm interested in how to get any installation to a point where it goes on autopilot. It's always in my mind. How can I get this to work robotically? Like, how can I make it be smart enough that it knows to rebuild a server? Or that it needs to expand capacity?
What do you like to do outside of work?
I am a ham radio operator.
Oh nice! What is your handle?
It's KD2JMR. To be honest, I do it because of the technical challenge. I have always been drawn to it since I was a teenager, but I got my license last year. I am very happy to get it, and I'm excited to be more involved in the community. Plus, you can be useful in emergencies. It's nice to be there.
I enjoy cooking. I enjoy just going out walking, strolling, reading, music. But, I have to admit, I'm not really a socialite. I'm an introvert. A lot of the activities that I enjoy are reflective. Reading by myself. Listening to music by myself.
I do like to be with others, especially if we have this overlap in our inner worlds (those who are also introverts).