Be Kind

Be Kind

Throughout our professional lives, we work with many people. Inevitably we will discuss and debate our projects. How one treats their colleagues when they disagree says a lot about their personality. A little kindness goes a long way - I learned it in a not-the-most-pleasant way.

The year was 2006. I was a senior engineer at Google. My main project was gUnit and gMock, Google’s C++ testing framework that was open-sourced as Google Test.

Google Test had just one developer working on it full-time - that was me. However, since 20% time was still a thing, it got many volunteers contributing. These volunteers helped themselves and fellow Google Test users by fixing sore points they encountered.

One sore point back then: it was sometimes hard to see the test results from Google Test’s output. Both Google Test and the user-written code print to the terminal. Without highlighting, it could be tedious to find the most important information: which test cases have passed, and which have failed.

One engineer decided that he would fix it. He sent me a patch to add colors to Google Test’s output: normal output would still be in black-and-white, “OK” would be in green, and “FAILED” would be in red, for example. His patch would also make Google Test print an ASCII-art banner for the overall test result. I tried it and really liked how much easier it became to tease out the high-level information, so I approved the change.

At the time, Google Test was already widely used within Google. With a large user base, any seemingly innocent change could break someone’s experience, as it’s impossible to test a change in all environments that the framework might be used in.

A couple of days later, I received complaints in the internal Google Test user mailing list: the new feature’s implementation relied on ANSI color escape sequences to add colors to text. Most terminal types support such sequences, but not all of them do. Some Googlers were using a terminal that didn’t support colors, so with the new feature, their test outputs looked garbled, with the color escape sequences printed as random-looking characters.

Obviously this was annoying. I treated user feedback seriously, so I replied immediately that I would implement a fix soon - I would make Google Test check whether the terminal supports coloring and only use colors when the answer is yes. I thought that it would make the users happy again.

However, a very senior engineer (let’s call him X; I forgot whether he was a principal or a distinguished engineer) replied to the thread, demanding the feature to be withdrawn. Mr. X thought that it was a mistake to use colors. He said that it was childish and unprofessional to use ASCII art. I have forgotten the exact words, but I remember that they were blunt.

This was a bit unexpected. Most Googlers I worked with had been kind and respectful. Even when they disagreed with someone else’s opinion, they would acknowledge that the other opinion had merits.

Well, maybe the tone was unintentional. After all, email is such a low-bandwidth medium that you cannot really tell whether the person is angry or just trying to be funny.

The feature’s contributor remained silent. I suspected that he might’ve felt uncomfortable speaking up given the large gaps between his level and X’s. Since I was the project’s gatekeeper, I felt that I was responsible to defend the contributor. Regardless of the technical merit of the change, I believe that we all should be grateful to volunteers who put in extra effort to improve a shared tool. I didn’t want the contributor to feel unappreciated.

So I tried to explain to X why we thought that adding colors was helpful. He was unconvinced.

Then, I saw something that I never thought I would see at Google: X wrote an angry reply to the email thread. In the message he said something like “If you really like colors, why don’t you get a knife and cut your own arm so that you can see some color.

Such vivid language was totally uncalled for and unexpected. How could a technical discussion so quickly escalate into such a personal attack?

I felt awful. I was deeply hurt.

I was just at the beginning of my career. X was 3 or 4 levels above me. His technical expertise was widely recognized and appreciated. Perhaps I had been wasting too much of his time by not agreeing to do what he demanded right away? His time must be far more valuable than mine. Should I just yield to him now?

But I was just trying to do my job. I had the best interest of Google and the Google Test users in my mind. Surely I couldn’t produce a great product if I just followed the loudest voice or the highest ranked person.

I was conflicted.

Then, some unexpected help came. Another Googler (let’s call him Y) chimed in. Even though his level was also below X’s, he stood up to defend me and the author. He said that the colors made the tool more usable, and people should be allowed to have some fun (alluding to the use of ASCII art) in the work they feel passionate about.

This meant a lot to me. I felt that my effort was appreciated, and there was value in trying to do the right thing.

In the end, we reached a compromise: Google Test would still use colors when they are supported, but a user could disable the behavior using an environment variable or a flag.

Confucius has a saying: Don't do unto others what you don't want done unto you. I definitely loathed being spoken down to at work. Therefore, I shall never do that to my colleagues, no matter their levels. I will be kind to others.

At the same time, I really appreciated Y’s unexpected support. Therefore I shall do the same: I will support colleagues when they are bullied at work.

Being kind to others also helps ourselves. If we are fair and kind, people will work with us and help us in return; when there are opportunities, people will be more likely to give them to us. It is a win-win.

I was inexperienced when this incident happened, so I didn’t quite know how to respond appropriately. In retrospect, I could’ve done better. I shouldn’t have let the incident pass quietly. I should’ve reported it to HR - not to get revenge, but to prevent other coworkers from being bullied by X later.

What X did was toxic and needed to be stopped. Sure, he was a brilliant engineer and the company benefited greatly from his technical contributions, but that was no excuse to be mean to coworkers. Such behavior is bad for the company: it leads to bad decisions; it hurts people’s feelings and in turn their wellbeing and productivity; if people sense that some coworkers are more equal than others, they will more likely jump ship when given the opportunity.

Talent is important yet replaceable. Culture, on the other hand, is much harder to fix if ruined.

Disclaimer: at Google, at least in the earlier days, the overall culture was that we should ignore people’s levels in technical discussions and the best idea should win. This particular incidence was an outlier. The vast majority of my experience at Google had been very pleasant.


Yeap I can relate to this. I am sorry this happened to you. Thanks for the writeup.

Eugene Kirpichov

Mobilizing humanity's talent to build a regenerative green economy | Systems nerd | ex-Google

10 个月

Sorry to hear you had that kind of interaction :( This is really abhorrent and IMO should be a zero-tolerance fireable offense. I wish I could say "I didn't think Google ever hires people like that" but I know that it does, and I've seen some really shitty behavior even from some former direct colleagues. I also still remember a very senior engineering leader who interviewed me at a company called Transas, back in Russia. The interviewer spent *the entire interview* doing nothing but mocking and demeaning me. I left the interview quite shaken and self-doubtful (I was too young to understand that this was really not about me - and, by the way, he wasn't even right!), but also thoroughly determined to not let anyone I care about make the mistake of joining a company that lets anyone get away with such behavior. It wasn't just me - every single person I know who interacted with him in any capacity thought that he was an awful, disgusting person. Incidents like this stay in your head for a long time. It's been 15 years but still, every once in a while - I'm not proud of it - I look up his name and wonder "what happened to that jerk".

Rui Wang

Engineering Lead

10 个月

Thank you for sharing your story!

要查看或添加评论,请登录

Zhanyong Wan的更多文章

  • 3 More Things I Wish I Had Done Differently in Google Test

    3 More Things I Wish I Had Done Differently in Google Test

    Only through constant reflection can one become a master of their trade. If one thinks that their work is already…

    5 条评论
  • How to Compensate for the Top 3 Google Test Mistakes

    How to Compensate for the Top 3 Google Test Mistakes

    Google Test is Google's opensource framework for writing C++ tests. It's used widely inside and outside of Google.

    17 条评论
  • End-to-End Ownership: The Differentiator in Career Success

    End-to-End Ownership: The Differentiator in Career Success

    Throughout my 20+ years of work experience, I've observed a powerful predictor of career growth that transcends job…

    20 条评论
  • Wiki considered harmful for documentation

    Wiki considered harmful for documentation

    TL;DR: as a means of internal technical documentation, wiki is inconsistent, misleading, and unmaintainable. Migrate…

    10 条评论
  • How to Review Code

    How to Review Code

    I’m a software engineer. I review a lot of code almost every day.

    9 条评论
  • Birth of Pump - a Google Mock Story

    Birth of Pump - a Google Mock Story

    In my post yesterday, I gave an example of building Google Mock (aka gMock) from first principles. I mentioned that…

    4 条评论
  • The most useful skills I learned at Google

    The most useful skills I learned at Google

    Two years ago, I left my Tech Lead Manager post at Google, where I built my software engineer career for 17 years. I…

    13 条评论
  • Crush - episode 9

    Crush - episode 9

    (Continued from episode 8) For two hundred million years, I worked diligently, steadily rising in priority within the…

    4 条评论
  • Crush - episode 8

    Crush - episode 8

    (Continued from episode 7) Space After the ethical issues of digitized life were resolved by legislation, research…

  • Crush - episode 7

    Crush - episode 7

    (Continued from episode 6) Before retiring, I made a decision and didn't tell anyone except Lao San. A week before the…

    1 条评论

社区洞察

其他会员也浏览了