“피드백”이라는 단어를 들으면 가슴이 철렁하는 느낌부터 먼저 듭니다. 잘한 점에 대한 피드백은 인색하고 부족한 부분에 대한 피드백(좋게 말해 constructive feedback)만 자주 받기 때문이라고 생각합니다. 저도 이 글을 읽기 전엔 긍정적인 피드백보다 부정적인 피드백을 훨씬 더 많이 줬습니다. 하지만 하버드 비즈니스 리뷰에 올라온 이 글을 읽고 제 피드백 방식을 바꾸게 되었습니다.

이 글에서 최고는 제각기 다른 모습을 띠고 있다고 한 부분이 특히 와닿았습니다. 호날두와 메시는 세계 최고의 축구 선수지만 각자 다른 방식으로 득점을 합니다. 이런 공격수가 되려면 수비나 헤딩을 못 한다고 그 보충 연습을 할 게 아니라 자신이 잘하는 부분을 극대화하는 것이 필요합니다. 단점이 없다고 최고가 되지 않습니다. 오히려 최고가 되려면 장점을 갈고 닦아야 합니다. 그러기 위해 우리는 서로의 단점을 고치기보다 장점을 더 길러줘야 합니다.

저는 이 글을 읽은 이후 매일 동료와의 협업에서 긍정적인 부분을 일부러 찾아 구체적으로 그 부분이 어떻게 저에게 도움이 되었는지 피드백을 남기고 있습니다. 제 적은 노력이 동료들이 최고가 되는데 이바지했으면 하는 바람입니다.

The Feedback Fallacy – Harvard Business Review

English and the impostor syndrome

I have been enjoying a writing guide by Steven Pinker, the best-seller author. Of all the lessons, I was most impressed by the argument that some grammar rules, which I studied to perfect, are overly correct; that a writer ought to strive for clarity even when that means violating some nitpicking rules. This point got me to ponder whether I would.

I started learning English as a second language since I was six-years-old. By now, I really don’t have a problem speaking, listening, writing, or reading. And I sometimes dream in English too.

Despite two decades of education, I still take extra care when I use English. I keep mentally noting my grammatical errors every day and make sure I don’t make the same mistake. I aim to be perfect because I think I am only borrowing someone else’s language. In this state of mind, there is no way I could intentionally break grammar. I now realize the ability to break away from rules is a privilege. Even when no one notices, I do and I will censor myself. This is the classic impostor syndrome.

When Money Meets Values

This past week, I couldn’t let go of how China threw its weight against the NBA and Blizzard. When the money and the values collided, the organizations’ knee jerk reactions were to give up their values. It was unbelievable how fast they tried to appease their Chinese fans.

This series of events reminds me that leaders need more than technical or management skills. We need values as our guiding principles. Throughout our careers, we will be put into a position where we need to make similar tough calls. And it’s not just international politics; we need to think about racial and gender inequality, global warming, privacy, and more. The choices we face may not be as visible. But the tradeoffs and the consequences will be just as real. It will be crucial for all of us to have values we can be proud of and base our actions on those values.

Check out this week’s newsletter here!

Recap over my month-long 1:1 experiment

I concluded my month-long 1:1 experiment with Korean engineers last week. Of 16 people that signed up, I ended up talking to 5. I learned three lessons.

First, this format scales linearly. Sixteen hours a month was the most I could spend without affecting my work or my personal life. I loved talking 1:1, but it is also very time-intensive.

Second, the attendance was poor. Many people (11 out of 16) didn’t show up, so I ended up wasting valuable opportunities to talk to someone else. I was so disappointed. I hope this could be solved by adjusting my availabilities and sending notifications.

Finally, most conversations revolved around these three topics: how to become a “Senior Engineer,” how to solve technical problems they face at work, and how to find jobs abroad.

I am planning another month-long experiment at the moment and will share it next week.

Changing Tide

About 2~3 years ago, most of rising Github repos were in Javascript or related to Frontend development. It was an exciting time to follow the nightly updates. So many projects to try and learn!

But no more. Most starred repos are now Go or wiki-like projects. I am not discounting these repos. I am just disappointed about the lack of movement.

Empathetic Persuasion

One bad habit of mine is to share materials to make a point instead of making a point myself. But my attempts usually weren’t successful despite the merits of those materials. I wondered why people didn’t see the “light.” But, recently, why sharing articles, reports, or some data rarely persuades anyone clicked in my head.

Persuasion and following commitment do not originate from our rational mind especially if the problem space is complex and the benefits and the costs are not obvious. Rather, they happen at the emotional level. So you change behaviors when you have others feel your pain.

For example, if I want to avoid slow review turnaround time and resulting big pull requests, the best way to persuade is to vividly describe how I feel that longer review cycles slow down my projects.

It is not easy to do, I know. I also keep forgetting this. But next time I feel the urge to share an article, I will take a step back and think about the pain I have at the moment.

English as Second Language Colleagues

Recently I was appalled to hear that my friend, who is a software engineer, was denied an internal transfer because his potential manager did not want a non-native English speaker on his team. As a native Korean speaker myself, it was unsettling to hear such a story. I thought that in this day and age, especially at Silicon Valley, we have figured out how to work together with those from different backgrounds.

I realize I don’t see many conversations around how this lack of fluency impacts some of us. I suspect that’s because most writers and speakers are already fluent in their languages. So we don’t talk about this issue and put the onus on the individuals.

We can’t expect people who spent most of their lives in different languages to understand all connotations and cultural subtext. It is not going to happen no matter how hard they try. Even some native speakers have a hard time communicating well. If we believe that communication is a two-way street, we have to meet in the middle.

Yes, I get that it makes communication more difficult. But we, collectively speaking, hired each of us because everyone was deemed qualified to do the job. Then, it is on all of us to create an environment where we all can be successful.

How? I admit I don’t have a great idea. But I will start by setting up 1:1s to build the relationship and the context. That will provide a sometimes necessary bridge for the lapses. If I notice how well or badly we communicate, I will share that too. And I will always try to remember that none of us is perfect. Language proficiency, or the lack thereof, is just another imperfection some of us have.

Promise.any and Promise.allSettled

One benefit of Javascript proposal process is that there are always new things to learn and to make things more interesting. Promise.any and Promise.allSettled are not revolutionary but they will enable a new, more concise way to code. You can read more about them from here.

A caveat I found is that Promise.allSettled will never reject. It does make sense but at first I found myself thinking, “so when does it reject and what does it reject with?” I am interested to see how this behavior will be typed in Typescript.

Don’t Just Link, Summarize

This came up during a meeting to review how we organize our work (basically JIRA).

In this day and age, everything is linkable; whether it be a Slack thread, a Zendesk ticket or a Google Doc. So in order to give “context,” it is tempting to just throw a link in a conversation. But you can do more than that.

I wouldn’t say linking does not have its own value because discovery is a real problem. However, every one of us is overloaded with information. We can’t be expected to go down every rabbit hole of links. So, help us out a little. Give us a link, and summarize it a little for us: What’s in it? Why do you think this context is useful? This will save us good 10-20 minute for every link and we will appreciate you going extra mile for us.

When there is only one single-line text input field in a form, the user agent should accept Enter in that field as a request to submit the form.HTML Spec

I was looking into a bug that an embedded form would die due to the security restriction when you press enter inside the input. It turns out this random behavior was causing the issue 🤷

(I concede that we should handle form submit properly though)