Brian Whittaker - In memoriam

Mr. Brian Whittaker was a great colleague that I had the opportunity to work with at McAfee. He was from the Aylesbury office. Today marks 2 years since the passing of Brian, and I have a few words to share.

When I joined the EWS team at McAfee in late 2010, Brian was already a very senior engineer. PN, one of the managers at that time, use to say, "For any given technology or programming language (that we were using), it is safe to assume Brian knows better than us". Specifically, if we ran into a problem that is unixy, a running joke in the team was to say "Well, man Brian", a reference to the Unix man pages being the ultimate source of information on anything in Unix/Linux. Brian could help with a solution for everything from a messed-up merge to process synchronisation problems. He maintained a fairly sophisticated build system for several years, created many useful utilities for the product and the engineering team and gave really useful feedback in code reviews.

For several years, the engineering team was also responsible for creating the Release notes for every release. And the team used to use Bugzilla at that time for issue tracking. Brian had written a utility that would parse comments from each bug that is meant for a release and create the HTML/PDF release notes. For doing that, to ensure that the comments that get into the release notes are unambiguous and easy enough for the customers to understand, Brian took upon himself the task of correcting the vocabulary, structure, and grammar of the bug comments. When we made mistakes that are not very obvious to us non-native English speakers, he famously quips "As my high-school English teacher used to say, …."

Brian also wrote the backup utility that the team had been using for well over a decade when I left McAfee. It was a home-grown Perl-based solution that handled daily/weekly backups of several TeraBytes of data.

When I first met him in person in 2013 during an official visit to the UK office, I was amazed at how he had organised this workstation’s desktop. There used to be dozens of small terminal sessions, each serving its own purpose (and only Brian knew which terminal is for what). You go ask him a question, he will get to the right terminal type in a few commands (at times obscure commands), and get the results that you had asked for. His work ethic/discipline is something that all of us could learn from.

Likewise, the build system that he created (along with AJ, SchCr, SiCr?) was extremely complex and sophisticated. At one point in the past, the set of Makefiles, triggered from a top-level make file used to generate 3 ISOs, 3 zips (patch install), and 1 source ISO.

By late 2019, Brian started to show signs of illness and needed frequent visits to the hospital. But his sense of commitment and nonchalance remained intact. I remember a specific incident where when a build failed for no apparent reason, I asked around and no one could figure out why. And Brian was in the hospital. While we worked around by creating a formal build off of our Jenkins, Brian was kind enough to login from the hospital to tell us that there is an intermediate IT-owned file server to which the build gets copied and that seems to be the point of failure.

I had the opportunity to meet him in person again in January 2020, just before the COVID-19 menace started. We (HB, SV, KSh, and I) had been to the UK office to transition a few products over to India. We had planned a few transition (a.k.a KT or TOI) sessions with Brian. But he was quite unwell by then and managed to share only a subset of what was planned (and that was of course quite useful). A few short weeks after we returned back to India, we were informed of Brian’s passing by PN. Though he was quite senior to us by age and experience, it was still a case of "gone too soon".

Brian, along with AJ, spent a significant part of his time improving developer/programmer experience (PX). And he was inspirational in many ways. A true "senior engineer", as the industry calls them.

PS: I could not find a LinkedIn profile for Brian, nor could I find any photos. I’ll share those if I manage to find any publicly available ones. Also, this is more of a "thought dump" than a proper blog post.

The McAfee Years

In my ~14 years of experience in the software industry, I have worked in 3 companies (currently in my third). Prior to my current job, I spent a little over 2 years at Motorola Solutions (July 2008 - Nov 2010) and a little over 10 years at McAfee (Nov 2010 - Jun 2021).

While I had made some awesome friends at Motorola, I did not spend enough time to experience growth. Nor did I have the opportunity to witness products/programs growing from scratch to being used by thousands of end-users. However, I had an excellent mentor in PRam and some excellent friends, some of whom I am still in touch via social networks.

On the other hand, I spent over 10 years at McAfee, grew in my career, along with a mature, awesome product. Also, I was witness to a new product line being started from scratch and growing into a well-received popular set of products. I joined McAfee in November 2010, shortly after Intel announced its intention to acquire it (but not because of that), and worked there until June 2021.

In those 10 years, McAfee moved from being a public company to a subsidiary of Intel, then a private company that was spun off from Intel owned by private equity firms, then again went public and then part of it was sold to another private equity firm…​.

In those 10 years, the team that I belonged to moved from being part of Network BU to Content BU, back to Network BU, to Cloud Security BU to Cloud & Content Security BU to Network, Web and Data Protection

In those 10 years, the team worked on Email and Web Security (earlier known as WebShield), then the product was renamed to McAfee Email Gateway, which was eventually EOL in 2016, with support until 2021. Meanwhile, the focus in the company shifted to Data Protection and the team started working on the Network Data Loss Prevent solution/product suite.

In those 10 years, as seen above a lot of things changed.

But what did not change was the team - the people that worked together. This team was spread across 2 geos - Bangalore, India and Aylesbury, England. Between January 2011 and December 2018, the team of 20+ had about 4 people leaving voluntarily. As of January 2020, more than half the team members had spent over 15 years in the same team.

I used to tell those who joined our team more recently - This is not just a team, this is like an extended family. Those words aren’t rhetoric. The team was highly cohesive, cross-functional, supportive of each other, and backed each other without anyone asking them to do so, and in most cases knew each other personally. Work wasn’t always great - We had our share of mundane tasks. But the team spirit was always high. And the seniors in the team were quite willing to share their knowledge and experience.

I have the great fortune of having some great mentors - AJ, PN, HB, SchCr to name a few. I made life-long friends - AKR, HB, ACh, SV to name a few. I also had the opportunity to help and guide several junior members - TK, AM, DT, DMR to name a few.

In simple terms, it is the people that I worked with that made this job really great. A lot of what I want to say in these blog posts will be as much about the team, as about the learnings and experiences. The managers, colleagues, and friends there were extremely supportive of my career transition from a QA Engineer, to an Automation engineer, to an SDET, finally to being the Lead Developer.

I’ll end this first post with an expression of gratitude: To AK, ACh, and AR for hiring me; HB, SV, AR for trusting my abilities to transition from QA to other roles; ACh, PN, and HB for giving me the freedom to try doing things differently and trying new things; AKR for being my partner-in-craziness for many many years in trying to create some excellent tools, utilities, and frameworks; SSut for being the greatest QA Engineer-turned-Dev-turned-Architect that I’ve ever met; KSh, ACh, PN, BuSen, and SShre for role-models being automation engineers. SchCr for the design skills that I learned from his code; AJ for being the most humble, yet supremely knowledgeable mentor that one could imagine; and PN for tolerating all my tantrums and guiding me and mentoring me from my very early days at McAfee.

To be Continued…​ :)

To protect against social engineering attacks, where ever names of people are involved, I’ve used initials (or a variant to avoid ambiguity) instead of the full/real names of people. But most of my ex-colleagues who read these posts will be able to understand who I am referring to. :)

PS: I was part of McAfee Enterprise, which has since become Trellix

Edit 1: The tenure at McAfee was incorrectly mentioned as June 2022 in the 3rd paragraph. Corrected the typo.

Going Static With Nikola

I started blogging around May 2006. I started with blogger, then moved on to wordpress and then eventually to self-hosted wordpress. This time around, when I decided to blog again, I have setup a static blog site built using Nikola - A static site generator written in Python. Nikola comes with a wide range of plugins and themes and helps us create beautiful websites and blogs with very minimal effort. And more importantly, Nikola is a Free/Libre Open Source Software.

Static Site Generators

Static Site Generators are tools that transpile contents written in some light-weight markup language like ReST, MarkDown, or AsciiDoc into HTML and CSS. They do this usually by using a templating engine behind the scenes. The templates of a templating engine define both the layout and the look & feel of a web page. These templates have placeholders and variables, CSS and the base HTML structure. A static site generator transpiles text from the input document into HTML by replacing variables and placeholders in these templates. Jinja and Mako are the most popular templating engines in the Python eco-system.

Most static site generators come with dozens of themes to choose from. Here, a theme is a collection of templates, CSS and possibly images. This site uses a common Nikola theme.

Why self-hosting? and why static?

A common question the several people ask me is why am I self-hosting when there are excellent platforms like Medium and even cloud-hosted wordpress. And some people go on to ask why I am using a static site when we can self-host something as powerful as wordpress.

The answer for the first one is simple. I want to own my data. And, I write blogs to share thoughts, opinions, stories and experience. I don’t want ads on my blog. The first point rules out blogger/blogspot and the last one rules out cloud-hosted wordpress.

The reason why I chose a static site is a little difficult to explain. But here it is anyway - My blog consists of several blog posts, comments for each of those and an about page. The only dynamic content in my blog is the comments section. Now, why would I want to have a sophisticated PHP + Apache/nginx + MariaDB ecosystem when about 95% of my web site is just HTML+CSS. All I need is a small sqlitedb for comments and some version control tool like git to maintain my blogs. So instead of setting up and maintaining something complex, vulnerable to attackers and sophisticated to use, I just use emacs + make + rsync.

Comments

Comments have become ubquituous in the modern web and so comments are an essential part of blogs too. Since this is a static web site, comments aren’t possible by default. But there is an amazing tool called isso that integrates well with Nikola. This amazing FLOSS supports comment moderation too. So that’s what is powering the commenting system in this blog.

Finally, if you are running your own self-hosted blog using a sophisticated tool and you want to move to a static site, feel free to reach out to me :)

The Hiatus

Hello again, after a hiatus of a little over 7 years and 4 months :) A lot has happened between this blog post, and my previous blog post made on the 18th of August, 2014. I got married, moved into a new home, nephews and nieces were born, made some very good friends, moved to a new company, and I could go on and on. But between work, life and everything in between, blogging wasn’t something that I was actively thinking about. But it has been too long a break and I am eager to get started with blogging again.

One big change is this new blog site. I’ve moved away from my old Wordpress based blog to this statically generated blogs. I’ll be adding the ability to add comments very soon and this will be just like any other blog going forward. And the experiences that the last 7 years have given me are worthy of dozens of blog posts. I intend to have a series of posts dedicated to my time with McAfee (now McAfee Enterprise, as of 2022-01-18). There will be posts on some interesting people that I had the chance to work with (some only remotely), some on the tools and techniques that I have learned over the years, a few on COVID-19 and its impact on us, a few on climate change etc.

So, please don’t give up on my blogging this time :) I do hope to stay more consistent and share some interesting, useful, thoughtful, funny articles in the weeks and months to come.