Young Reacts #45

This week, I have 7 1:1s with strangers to talk about their careers and mine. I feel fortunate to have these opportunities to give and learn. Hopefully, some will evolve into long-term, mutually-beneficial relationships.

person holding piece of paper with phone a friend written text

Photo by Dustin Belt on Unsplash


People ❤️

Thriving on the Technical Leadership Path

I read quite a bit about and now have my own opinion of how to what makes a senior engineer. This article goes beyond and describes the next steps a senior engineer could follow.

Software Engineering 🌐

A product manager’s​ perspective on technical debt

You can think of tech debt as how you think of financial debt. Just as you would sometimes finance your investment via bank loans, you can pay for your product bets using the tech debt. It’s apt that the VP of Product at Capital One write this article.

dunglas/vulcain

A very cool project to leverage HTTP 2 features (multiplexing and server-push) to solve many problems GraphQL aims to solve: over/under fetching, and the n+1 problem. The project also reuses HTTP caching, which GraphQL can only use with predefined queries.

Pick your poison

Whatever architecture choices you make, GraphQL or REST, or Javascript or Typescript, remember that you will face unique challenges specific to you and your team.

Business 💸

The rise of the global first startup

I got two things that changed my thinking on remote work. First, Silicon Valley may have the best engineering talents, but the good ones are everywhere. Second, remote work is getting more accessible, thanks to the new tools. I hope to work in a completely remote environment to get better at remote work in the next few years.

State of Play: Six Trends Revolutionizing Games

I always thought games are the worst kind of software to develop due to a marketing-driven, fixed deadline, and the inability to verify ideas. But contemporary games work more like SaaS products, which could remove some of the pressure.

freeCodeCamp/chapter

Meetup users came out hard against the service’s plan to charge them, which was expected. But I am still surprised that the disgruntled users are now building open-source alternatives. This series of events shows how easy and cheap it is to start new services.

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.

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.