Young Reacts #130

My wife started her summer internship last week. I was excited about her getting real work experience as a UX researcher. But I was also nervous for her because the introductory period could be scary and stressful. But thanks to her caring mentor, who actually spends time providing the context and listening to her questions, she is adjusting without much trouble. He provided a detailed plan for the summer in advance and checks in with her at the end of every workday. I am thankful for what he does to help my wife succeed and want to replicate the kindness for others in the future.

Photo by Jessica Lewis on Unsplash

Software Engineering ⚙️

15 Things You Should Know About Product Managers

This article made me empathize with product managers more deeply. All of us engineers work with product managers one way or another, so maintaining a productive relationship is key to our own success. Let’s not set our partner up to fail.

The case against normalized caching in GraphQL

I agree with the author that rich GraphQL clients force UI developers to know too much about the domain. But I don’t agree with the author’s solution to use browser caching. In an enterprise environment, GraphQL subscriptions enable the UI to react to data changes correctly and promptly.

Introducing Handsfree.js

This library enables JS apps to understand hand gestures, facial expressions, and poses. It’s impressive what Javascript can do these days.

People ❤️

I Want to Hire Someone My Team Said No to on the Debrief: Ask the EM

Even though most companies are not democracies and decisions are to be made by certain individuals, relationships and trust are important. To keep the hard-earned trust, try understanding where differences come from. Disagreements are signs of possible misalignment.

Surviving IDEO

Bad culture hurts real people and turns the abused into abusers. This is a story of ex-IDEO employees.

Inclusion and diversity matter

Snowflake and Medium are among the latest companies to get publicly hammered on I&D issues. I get that most executives do not have the background to navigate the complex inclusion issues at work. But these issues create serious retention and hiring problems, so they better figure this out soon.

Business 💸

Colorado Excluded

Colorado started requiring all job postings for Coloradans to contain salary ranges. To avoid noting their salary range, some companies decided to exclude Coloradans from their candidate pool. For example, one Twitter job posting says, “Roles listing ‘Remote US’ as a location are not currently available in the following states: Colorado, Iowa, and Louisiana.”

Young Reacts #129

I don’t have much to add this week. Hope you are enjoying the long weekend!


Software Engineering ⚙️

Clarity on Flow’s Direction and Open Source Engagement

The Facebook engineering manager of the Flow team provided the new direction for Flow, a Typescript competitor. In short, the goal of Flow is to support Facebook engineers, and the open-source community’s needs won’t count. I applaud the bravery to say “no” publicly, but it’s really a time to get off Flow if you haven’t already.

OpenSLO

OpenSLO is an open-source project to create a common interface to define SLOs, or service-level objectives. While the idea looks interesting, I am skeptical about its value; what problem do centralized SLO definitions solve without consistent measurements between vendors?

People ❤️

Don’t Let Employees Pick Their WFH Days

The author gives two reasons why companies should decide when to work from home: the challenge with the hybrid model and the risk that flexible schedules can put women at a disadvantage. I strongly disagree with the second argument. That risk should be a call to improve how we promote and grow employees equitably, not a reason to take away the flexibility from families.

The Elements of Self-Reflection

I read this article as a pre-read for an I&D workshop, but the article is broadly applicable. Of the three abilities discussed (openness, observation, and objectivity), I see openness as my biggest area for improvement. It’s been difficult to be honest with myself about my values as I conflate mine with others’.

Business 💸

SPACS, EXPLAINED

Many late-stage startups are choosing to go public via SPAC rather than IPO. I wanted to understand better how a SPAC, or a special-purpose acquisition company, works and found this article quite informative.

The Cost of Cloud, a Trillion Dollar Paradox

This interesting analysis argues that the economics works against cloud in a scaled environment as the negative impact on the operating margin hurts the market capitalization.

Young Reacts #128

After 2 years in my current role, I started considering what my next steps should be. I could (without any guarantee that I could achieve them except the first):

  1. continue in the current role
  2. switch to an IC role in a different field/team
  3. switch to a more senior IC role (staff+) at another company
  4. switch to a manager role either here or at another company

Ideally, I would have defined my career north star and planned my next move. But I couldn’t figure out what my north star is and, thus, couldn’t decide what to do.

In the last week’s mentoring session, my mentor suggested I instead focus on the next 2-5 years. That timeframe was far more manageable. I looked back at what I enjoyed in my career. After some deliberation, I’ve set a 5-year goal to lead an engineering org at a startup. I will start pursuing the fourth option.

Photo by Federico Di Dio photography on Unsplash

Software Engineering ⚙️

Introducing WebContainers: Run Node.js natively in your browser

During the last week’s Google I/O, a company called StackBlitz introduced a new way to run Node.js using WebAssembly in a browser. This approach has a couple of benefits over running Node.js locally or in the cloud:

  • The server is much faster to boot up as we don’t have to wait for provisioning.
  • The server is accessible even without internet access.
  • NPM installations are much faster with its customized npm client.

This demo video does a good job introducing the concept.

Typescript Performance Tips

In my project, I have an 80k-line-long autogenerated Typescript file that makes my editor crawl to a halt whenever I open it. I’ve learned recently that simple tweaks in Typescript definitions could result in a big performance gain. So I started learning how to improve a Typescript project’s performance.

Docusaurus V2 is in Beta

Docusaurus, one of the most popular doc site generators, has announced its V2 beta 3 years after the initial conception. With V2, Docusaurus switched its positioning from a documentation site generator to a doc-site focused single-page application site generator. People are already adopting the tool in droves.

People ❤️

Addressing the challenges of partially distributed engineering teams

Come September, and my org will start operating in a partially distributed fashion. Some will be in the office, and others, including me, will be remote. We’ve been able to operate well in a fully distributed setting. But we will need to step up the effort to a whole new level; we need to change how we run meetings, share context, and provide visibility.

A fun anecdote: when a colleague joined a meeting from the office, he found out that the meeting room device neither shows “hand raises” nor opens links shared on the chats. He had a harder time in the meeting as the only onsite employee than the others.

Hiring vs nurturing managers

As I prepare to become a manager again, it sometimes frustrates me that the internal opportunities are few and far between. This article explains the tradeoff between outside hires and internal promotions from the org’s perspective.

Safe Spaces, Brave Spaces and Why We Gon’ Be Alright

I learned this new idea called a brave space. A brave space is a space for learning and accountability. It is a step beyond a safe space in that some amount of discomfort will be encouraged to be honest and learn from.

Whenever a sensitive topic comes up at work, I am terrified that I will say the wrong thing and be judged forever without a chance to redeem myself. Can I be more open to sharing in such a space if discomfort is expected?

Business 💸

Coinbase is launching a media arm

Companies realize that they do not need to go through the press to speak to their customers and fans anymore. Politicians learned that a while ago, and companies are catching up.

Young Reacts #127

For the last couple of weeks, I rarely wrote code and instead focused on the bigger problems: crafting a vision and driving cross-functional projects. Unfortunately, I started losing the sense of progress as these complex projects happen over multiple quarters, not in hours or days. So I spent last Thursday and Friday coding a bit, and I felt so much better afterward.

If I want to tackle important and difficult problems, I need to learn how to stay motivated without daily dopamine hits from coding. I will bring that up with my manager tomorrow and seek advice.


Software Engineering ⚙️

GraphQL WG Notes – May 2021

I went to my first industry-wide working group meeting last week. I was both excited and nervous about being in the same room with the folks like Lee Byron and Benjie Gillam. Being recorded didn’t help either. But the great news is that the group fully recognized the problem the nullability proposal tries to solve and advanced the proposal to Stage 1.

Announcing Rome Tools, Inc.

Rome, started by the creator of Babel, plans to be the one toolchain to solve all your frontend development needs. Now it has a backing company. It’s unclear how they plan to make money yet.

People ❤️

Strategic Prioritization Using Even Over Statements

Prioritization isn’t about a choice between the good and the bad. It’s about a choice between two different good options. If we aren’t ruthless, we will end up with a wishlist, not a priority list.

Is it a bad job or just a bad day?

Until I got my green card recently, I never had the liberty to quit whenever I wanted. So I am struggling with what conditions warrant a job change. “🧩 The Future Alignment Lens” from the article helped clarify my thinking, especially this question: “Am I spending my time on activities (coding, designing, selling, etc.) that I want to master?”

Caring Makes or Breaks an Engineering Organization

The term “caring” seems to be the equivalent of “engagement.” But I prefer the former since it is much easier to picture what it means. We need to see if we care about our company, co-workers, and ourselves.

How angry Apple employees’ petition led to a controversial new hire’s departure

One can’t insult half the population and expect to have no repercussions. One must own up to it or own the circumstances.

Business 💸

South Korean internet giants battle for top spot in web comics

Webcomics in Korea has been a source for many compelling IPs; many hit movies and TV shows such as Along with the Gods, Kingdom, or Sweet Home are based on webcomics. Creating a new IP used to be a risky investment. But the open webcomics platforms turned it into a business opportunity.

Young Reacts #126

I mentioned a few weeks ago that I wrote a vision document for a cross-functional effort. I had a chance to get feedback on the vision from my org’s VP last week. I sought tactical advice on how to socialize, but he instead gave a thought-provoking perspective; he asked why we UI engineers still need to be responsible for setting up the correct data access. Why can’t our backend engineers who own the domain do it?

Trying to answer why, I could find several practical reasons why we couldn’t make that big jump in the next one or two quarters. But I never envisioned what the ideal state should be, and I appreciated the nudge. This conversation reminded me of the article Director to VP Engineering: what is expected and how to prepare? which emphasized the longer time horizon executives operate at.

Software Engineering ⚙️

Thinking in Relay

A key difference between Relay and Apollo, two most popular GraphQL clients, is that Relay uses Fragments to describe the data requirements. Apollo, on the other hand, is far more lenient on how you fetch and use your data. I’ve been learning Relay to prepare for the query level nullability proposal.

Sucrase: An alternative to Babel that allows super-fast development builds

I tried moving my app to Vite.js recently and couldn’t finish migration due to a bug in Vite’s monorepo handling. I am hopeful that Sucrase could provide an easier migration path by working with my existing webpack config.

Solving a Mystery Behavior of parseInt() in JavaScript

This article wasn’t useful but still fun to read. When parseInt gets a non-string input, it first converts the input into a string and then parses it into an integer. That explains why parseInt(0.0000005); returns 5.

People ❤️

Being Experienced Doesn’t Automatically Make You a Great Mentor

I’ve been asked to mentor a colleague on his technical skills. This article reminded me that I shouldn’t pretend to be the expert on everything (when I do that, my frustration over my lack of knowledge comes out).

Business 💸

96% of US users opt out of app tracking in iOS 14.5, analytics find

When users opt out of app tracking, many platforms will have a hard time retargeting and measuring performances. The previous opt-out number was around 30% and now it’s 96%. How will Google and Facebook ads perform after more users upgrade to iOS 14.5?

What Roku and Google are fighting about: Video codecs, voice search and millions of eyeballs

Roku and Google have been feuding publicly over the availability of Youtube TV on Roku devices. The article explains the likely motivations for both companies.

What Is an Entertainment Company in 2021 and Why Does the Answer Matter?

The answer: Create/tell stories, Build love for those stories, Monetize that love. And you need to meet your fans where they are: comics, TVs, theaters, phones, or even metaverses.

Young Reacts #125

A colleague asked me last Friday if I have any memo-writing tips for him after reading my memo. It was a major milestone for me. I had not read or written a memo before joining Netflix, so it took a while to get used to our memo-writing culture. After two years of reading many and writing a few, I am glad to have someone who wants to learn from my memos.

Unfortunately, I didn’t have a great tip to share. I talked to many others who care about the topic, put a lot of time synthesizing the conversations, and distilled it into two pages. Some flair may help but the clarity of the writer’s thinking ultimately decides the quality of the writing.

Photo by AbsolutVision on Unsplash

Software Engineering ⚙️

RFC: Query Level Nullability

I co-authored a new syntax proposal to GraphQL, which the main author will present at this month’s GraphQL Working Group. This will be my first meaningful open-source activity.

corepack will be part of Node.js by default.

In this vote, Node.js Technical Steering Committee decided to include corepack as part of Node.js. corepack is a library to enable package managers other than Node.js to work “natively.” This change will allow newcomers to experiment with yarn or pnpm much easily.

Localization vs. Internationalization

I learned last week that internationalization is different from localization. Per W3C, internationalization practices are “design and development practices which allow such a migration to take place easily in the future but which may have significant utility even if no localization ever takes place.”

People ❤️

Changes at Basecamp

The founder CEO of Basecamp publicly posted a blog on a list of policy changes. The most controversial was the ban on political discussions. I said this when Coinbase implemented the same ban, but I will repeat this: silence is a privilege and a political act.

How to Mentor Someone Who Doesn’t Know What Their Career Goals Should Be

I read this HBR article to prepare for mentoring at work, but I learned something more important: our career paths are no longer linear. The term “career path” is outdated as everyone needs to make their own path.

Young Reacts #124

Even in this virtual working environment, I choose to go to most all-hands meetings. The presentations are recorded and made available after, and I can watch them at 2x speed later. But I go to join the live Q&A at the end. If I miss the live Q&A, it’s cumbersome to ask questions and get an answer on a presented topic.

I will suggest to my VP that speakers prerecord their talks and make them available for a week before and host a live Q&A session.

Photo by Gabriel Benois on Unsplash

Software Engineering ⚙️

Product Vision vs. Mission

I’ve been on a strategy kick. I am creating a vision for a large cross-functional project at work to align and excite my partners and build a coherent roadmap towards the vision. Then I was confused by how abstract the vision should be. This article clarified that the vision should describe the future customer experience. The examples linked from the article also helped explain the difference (I particularly liked Asana’s and Airbnb’s).

Understanding TypeScript’s Popularity

At this point, every JavaScript project seems to be migrating to TypeScript (except Facebook with its Flow language). Even Chrome Dev Tool is now in TypeScript. An engineer on the TypeScript team recounts the language’s history and points out two key enablers: emphasis on incremental value and close collaboration with the rest of the ecosystem.

JavaScript Labels and Returning Early

JavaScript labels with the break statement are like the goto statement in C. It was fun to learn about this feature in JavaScript. But I don’t recommend using it in your code. goto statements are notorious for their bad readability.

People ❤️

The Feynman Technique Can Help You Remember Everything You Read

I read a lot. But I find it upsetting that I don’t retain as much as I would like. The author says we need to recall and summarize after reading to make it stick. Copy-pasting the highlights doesn’t suffice.

“Asynchronous” Working In 2021

Even though I don’t use recorded video messages for 1-1 communication like the author, I agree 100% that video recordings are great. It’s been great to rewatch the recordings to ensure I understood everything and follow up with action items.

Director to VP Engineering: what is expected and how to prepare?

It was interesting to read how these leadership roles differ. Two differences: a VP plan over a longer time frame of 2-5 years and a VP should not be domain-focused but business-focused.

Business 💸

Amazon 2020 Shareholder Letter

Jeff Bezos sent out his last shareholder letter as the CEO of Amazon. In addition to the current mission, Earth’s most customer-centric company, he shared two new missions: Earth’s best employer & its climate pledge.

Young Reacts #123 – The Discovery Problem in Your Career

My wife and I got our first COVID vaccine shots last week, and I got very emotional. I finally see the light at the end of the tunnel. I pray that the light doesn’t fade due to a variant or a bad policy. Stay safe and sane through this last stretch.


People ❤️

The Discovery Problem in Your Career

“If a tree falls in a forest and no one is around to hear it, does it make a sound?” In a corporate setting, I don’t think it does. Our work needs to be understood and built upon to make an impact. Even if we feel uncomfortable, we need to promote our work.

How to take good meeting notes

In a similar vein as the article above, we need to make sure the decisions in our meetings not get lost. The way to do that is to take notes and share them widely. Plus, the notes will become more important as we shift towards remote work. The post is a good step-by-step guide for note-taking.

From Vision to Values: The Importance of Defining Your Core

Without a strong vision, it’s easy to get pulled in many directions with nothing to show for after years of work. I am seeing that at work, so I am pushing us to define what we want to be in 3 years.

Customer Inspired; Technology Enabled

I used to believe that product managers own why and what, and engineers own how. That tended to make me give lots of feedback to proposed projects but not propose ideas myself. This post asserts that product managers should provide constraints, not requirements, and leave what to engineers.

Business 💸

Introducing OpenSearch

AWS renames its fork of ElasticSearch to OpenSearch. It will rename its hosted service to Amazon OpenSearch as well. This feels like a big middle finger to ElasticSearch. In the midst of this, are ElasticSearch users and its open-source community winning?

Federal investigators looking into breach at software code testing company Codecov

Hackers hacked into a SaaS vendor to access its customers’ credentials. Considering that code testing usually happens in an isolated environment, I don’t think the impact will be high. Regardless, it’s a good reminder that every layer of our software stack is a potential vulnerability.

Young Reacts #122 – Return to the office

Netflix has announced that most of us will be expected to be back in the office after September 6. We finally see the light at the end of the tunnel.

An interesting fact: during the pandemic, my team has become much more distributed. Before the office closed, only one worked out of LA, and the other eight were in Silicon Valley. When we return to the office, only two will be in the Valley, and the others will be in LA, Georgia, and Canada. We are even hiring in Mexico City. I doubt I need to be in the office at all.

Photo by Dane Deaner on Unsplash

Software Engineering ⚙️

Eagerly discerning, discerningly eager

I’ve been working on an internal API and gotten contradictory feedback at times. This article clarified why. An API needs to serve two types of developer users: those eager to solve their problems and move on and those who want to dig deep.

Sending gifts to future-you

I shared this article before, but I read it once again as my organization is updating our strategy bets for the next couple of years. It will be important to have a forward-looking perspective.

Announcing TypeScript 4.3 Beta

Like a clockwork, Typescript 4.3 is here. I like these quality-of-life improvements: @link tags for better documentation, an explicit override check, and #private methods.

People ❤️

Cut down on reports with the 5-15 method

A 5-15 method is to write a weekly report that takes less than 5 minutes to read and less than 15 minutes to write. It discusses wins, roadblocks, and plans. This looks like a lightweight tool to share more context with my colleagues.

Some rough notes on running learning circles.

I used to run a learning circle three years ago where I met the most interesting people in the industry and learned to articulate my thinking clearly. I’ve been thirsty for that kind of opportunity and am thinking of starting a new one in my organization.

Business 💸

Google’s FLoC Is a Terrible Idea

I researched more about FLoC I shared last week and found this scathing criticism from The Electronic Frontier Foundation (EFF). The EFF points out that FLoC will aid fingerprinting, expose more information to websites than a user needs, and opaque ad targeting.

Supreme Court sides with Google in Oracle’s API copyright case

This old lawsuit over Android’s use of Java API was finally concluded this week with Google’s win. This lawsuit paves a clear path for businesses such as Amazon’s DocumentDB (which maintains API compatibility with MongoDB).

Young Reacts #121 – My 360 Feedback

I had gotten feedback from six people last week, and I’d like to share them here and what I plan to do about them.

The positive feedbacks:

  • I care about business goals and provide valuable feedback on our projects to meet the goals.
  • I maintain strong relationships with partners. My partners trust me to deliver what I committed.
  • I bring new technical ideas from my participation in working groups.
  • I promote the voices of the newer and the less vocal colleagues.
  • I reflect on my work often and make necessary adjustments.

The constructive feedbacks:

  • Pursue more opportunities to share ideas and lead in our product domain. Two shared this feedback. I provide plenty of feedback on others’ ideas, but I don’t proactively develop new ideas.
  • Better communicate what I am working on. As I spend more time on working groups, I’ve failed to communicate my lower bandwidth to my product partners.
  • Pay more attention to the details and the user flow. I see this related to the above feedback. I’ve rushed features as I have less time, and it shows.

I haven’t talked to my manager about all this feedback, but here are my current takeaways:

  • I’ve leaned heavily into engineering-focused projects, such as feature flags, so far. I should start focusing more on my product domains and suggesting new projects (say, implement a no-code tool for admin tools).
  • My partners have been very supportive of my “extracurriculars.” So when I don’t have time for that, I need to say so. Once we hire a new engineer for my squad, this conversation will get easier.
  • Keep being empathetic and introspective. Maintaining my emotional capacity will be key.

Software Engineering ⚙️

Announcing the Deno Company

Deno, an alternative server-side Javascript runtime, has received funding and formed a company. The announcement snipes at the Node Foundation and then shares its vision for web-first abstraction layers, where web developers can reuse their skills in other domains.

GraphQL Mesh

GraphQL Mesh is a library that automatically generates a working GraphQL API based on other strongly typed APIs such as gRPC. It’s not just GraphQL Mesh; many tools try to solve the pain point. But I am a huge skeptic. The main benefit of GraphQL is in providing an excellent client developer experience, and these tools seem to optimize for the wrong audience, the graph producers.

The Complete Guide to useRef() and Refs in React

I wasn’t aware that updating a reference doesn’t trigger a component re-rendering. That one nugget was worth my time reading the article.

Business 💸

Implications for cookiepocalypse

The situation is complicated and fascinating.

Third-party cookies have been used to track users across websites, but they will be sunset next year on Chrome (other browsers already blocked them). This change, known as cookiepocalypse, has pushed the Adtech industry to start “fingerprinting” users with other signals and store the user identities on their ends, not on users’ devices. Users won’t have any control over their identity at this point. So Google is coming up with a new, less bad solution called FLoCing, which has its own privacy and business concerns.

More companies announce the office reopenings.

More than 25% of the US population are fully vaccinated, and more companies announce reopening plans. Amazon, Microsoft, and Google will eventually require everyone to be back in the office.