I usually don’t talk publicly about most or all of what follows, and I’ve never done a post like this before - mainly because I don’t think anyone else will (or should) find it interesting or useful. In fact, if you’re reading this, you should probably just stop and go read something more important; believe it or not, there’s quite a bit of that out there. Go watch a TED Talk or read something insightful.
In my career, one of my close-held tenets is that transparency is important, and it breeds not only external accountability but also self-accountability. Teams often seem more compelled to abide by statements they’ve made publicly, live up to standards they’ve set transparently, and strive for progress in openly-communicated metrics - even if nobody else is actually paying attention to what’s being made transparent. I’m writing this as a bit of an experiment to see if I can instill some of that same psychology in myself; a hope that if I post a retrospective of the past year and some thoughts on the year to come publicly, I’ll feel more of a need to keep it in mind than when I do the same in a Google Doc that disappears from sight and mind. And, perhaps, that this will be a renewed impetus for me to stay focused on my goals and the big picture rather than being lost in the minutiae of everyday life.
This started out as a really rough year for my team (Release Engineering, mostly a tooling/automation team that also manages a few internal services and provides internal consulting for all things Cloud and CI). At the outset of 2018 (or was it the tail end of 2017?) we were both reorganized from a team of four to six and lost two of the original four to another part of the company. The two new members of the team have been great and had worked closely with us in the past, but it’s been tough losing both two valued colleagues as well as quite a bit of deep knowledge of our services and projects. We’ve tried to backfill one or both of the open positions, but suffered both internal bureaucratic issues as well as difficulty finding qualified and interested local Atlanta candidates (not a requirement that I’m a fan of). We hired one contractor that seemed very promising but didn’t work out, and since then we haven’t been able to get the hiring process rolling again for a variety of reasons.
The past year also saw some architectural, policy, and viewpoint changes that resulted in the soft deprecation (or at least a stop to new uses) of a number of the “off-the-shelf” services that my team manages (GitHub Enterprise and Artifactory in favor of centralized, corporate installations and HashiCorp Vault in favor of other alternatives). I try my best not to fall into the sunk cost fallacy, but it’s tough when a service is slated for retirement right around the time you get it stable and operable.
The biggest positive out of all of this, though, is really getting to realize how lucky I am to work with a bunch of brilliant and truly caring people. I think we’ve handled the technical and staffing changes remarkably well, doing our level best to exceed expectations even in the face of major changes. When our on-call rotation dropped to four people (a week at a time), some of the amazing folks on our SRE team volunteered to augment their already-taxed schedules by jumping into our on-call rotation too. A number of the people I work with - myself included - also had personal or family issues this year, and it truly brings me joy to see how supportive everyone is of each other and how sincere our management is in caring for the well-being of their employees and about their personal lives and work/life balance. The people I currently work with are one of those rare groups who say the best thing about the job is the people they work with, and mean it. I feel incredibly lucky to be part of such a group.
On another positive note, one of our most visible projects over the past few years has been tooling for an internal Jenkins-as-a-Service to allow our fifty-plus development teams to independently create and manage their own Jenkins environments using self-service tooling (with all of the important bits like backups, monitoring, etc. baked-in). The project was developed to help them migrate off of a few gigantic and ancient shared Jenkins instances which were constant sources of pain and development delays. This year saw a resounding success for us on this project, with by far the largest legacy Jenkins instance - I believe somewhere around 40 teams and a few thousand jobs - finally decommissioned and over fifty team- and individual-specific Jenkins instances running.
For me individually, the beginning of 2018 also included my promotion to lead on my team, something which I’m very grateful for and humbled by. For the most part - especially on a four-person team - it just means a lot more meetings, questions to answer, being a first technical point of contact, and other glue work. It’s been a challenge to balance additional demands on my time on top of development work, especially on a team that’s already short-handed, but I think I’ve done pretty well. I do, however, hope to find more time next year to spend working closer with the teams that we support as well as similar groups across the company.
Finally, I went to the AWS re:Invent conference last month. It was my first large-scale technical conference, my first conference whatsoever in the last six-plus years, and the first time I’ve traveled for my current employer. I wrote up quite a bit about the experience in another post, but I think it’s worth repeating as it really got me thinking about what my company can do to raise our profile in the industry and give back a bit more.
The past year was a mixed bag for my open source and personal projects. While my GitHub commit statistics make it look like I did a lot, the vast majority of it was work on obscure personal projects of mine that are of little use or interest to anyone else.
I did, however, have some moments that I’m proud of. When I moved in June I switched from Comcast Xfinity internet to AT&T Fiber, and became unable to continue testing my small xfinity-usage project, a Python screen-scraper for Xfinity bandwidth usage information. It only has six watchers and twenty-nine stars on GitHub, but apparently is useful enough that someone else took over maintaining it. This is the first time I’ve handed off a project, and it’s a pretty amazing feeling to know that - no matter how simple and small it is - someone found enough value from my code to take over keeping it healthy. I also stepped back a bit from my most popular project, awslimitchecker and was very happy to see a bunch of community contributions. The project is up to 100 forks and almost 20,000 downloads per month (though I imagine many of those are single users downloading daily in timer-triggered jobs), and I’m absolutely giddy to be able to say that the majority of significant changes came from contributors. awslimitchecker is a rather esoteric utility, nothing shiny, but I’m incredibly happy to see others getting value from my work.
My really big project of 2018 was the conglomeration of hardware and software that has become my home automation and security system. I’ve written quite a few posts about it, but it’s worth noting as the project exposed me to a number of fun and interesting technologies including Z-Wave wireless, HomeAssistant for home automation, and my first real experience with machine learning (for object detection from security cameras). It also became a scary showcase of how much time and money I can spend on a project if it comes together piece-by-piece over a year, and how awful the hardware and software design can become when it grows organically.
I rarely say anything about my personal life online (even on twitter it usually stops at restaurant/beer/recipe recommendations and dog/cat photos) and it feels awkward to do so, but there’s been a lot of change this year so I probably should. The beginning of 2018 saw me still reeling from my divorce in April 2016 after five years of what became a toxic marriage and still living in the apartment that my ex and I rented along with her sister who came to Georgia to get a new start away from her own troubled relationship. In June I finally moved out of that apartment to a rented house in Decatur which has been absolutely wonderful, aside from some issues with the house. It’s in a safe and very dog-friendly neighborhood and has a fenced yard, an amenity that my dogs have never had before and absolutely love. I’ve spent a lot of energy and money on the house, and a lot of time debating how much to improve a rental, but it feels like home (for now) so I guess it’s all worth it. It’s probably a fairly large house for one guy, two dogs, and two cats, but the cats don’t seem to be complaining about having their own bathroom and sharing the back bedroom with storage space. My wonderful dog Sita (photo below) turned three this year and she’s finally calmed down enough to be left out of her crate around the clock like her older brother, and everyone’s much happier because of it (though my couch, their normal resting place, has been thoroughly ruined).
The latter half of 2018 has largely been about taking it easy, collecting myself, and enjoying a less stressful life. I haven’t been terribly productive, but I’ve spent a lot of time relaxing and enjoying the freedom from responsibility that’s come with living in a house with just me and my fur-babies. I also both finished paying rehabilitative alimony to my ex wife and paid off 100% of my personal debt, both very financially liberating events. I’ve been a lot looser with my money and budget this year than usual, but I suppose that after supporting someone else for the better part of seven years I can’t begrudge myself that luxury.
I really haven’t had much of a social life to speak of lately, between moving and growing apart from the few good marriage-era friends I had. But it’s been a year about finding my footing in life again and focusing on my self, so that will change with time. I’ve finally started to make an effort at getting more exercise, and while I haven’t been great at setting a routine (being sick for two-plus months didn’t help), I think I’ll continue to improve on this in 2019. I also did a lot more hiking in the past year, something I really missed and greatly enjoy, as does Sita. I also followed through on my desire to cook a lot more, and found much more joy and relaxation in cooking when it’s just for me as opposed to being the only cook in a household of two or three people. I only got up to New Jersey to visit my parents twice and it was really difficult to see them so rarely, but 2019 should afford me a lot more ability to travel.
One thing that I definitely struggled with personally was trying to actually relax, and strike a balance between productive-but-relaxing activities versus “lost time” watching movies or TV. I’ve always been predisposed to staying busy and often find it difficult to really relax; in the latter half of 2018 I noticed that I often had very productive days or very lazy days and a poor balance in between. I suppose some of this was my emotional exhaustion from the past few years, finally feeling that it’s OK for me to have unproductive evenings/weekends and then feeling the need to get a bunch of things done. I think some of it also has to do with the sloppy way I’ve been using Trello to manage my personal time: what started as an actual Kanban board has turned into a twelve-column monstrous list-of-lists. And most of the activity on it happens only in the “Today”, “Tomorrow”, and “This Week” columns. I’ve experimented with different ways to manage my compulsive ToDo list-making for years, but I think I need to apply more of what I’ve learned in my career to managing my personal backlog.