Young Reacts #91 – Engineering Isn’t A Demotion

Right before the long weekend began, I had a chance to chat with a colleague who has been at Netflix for more than seven years. I have been struggling with giving some feedback to my manager and thought she would understand my predicament. So we chatted about my foster cats for a couple of minutes, and I straight-up asked her, “how do you give feedback to the manager new to Netflix?”

Then we discussed the power imbalance and how it makes reports feel awkward about giving feedback to their managers. She also suggested that our HRBP can be an excellent person to talk through my feedback. But the most memorable advice was when she pointed out that my manager is likely going through an imposter syndrome phase, and that he’d appreciate any signal about his contribution so far. So if I can give feedback with positive intent to support him, the conversation will go well.

This chat was such a stunning colleague moment. It was a neat coincidence later that day when our CEO at an all-hands emphasized the importance of positive intent.

Photo by Kelly Sikkema on Unsplash


Software Engineering ⚙️

A year with Spectre: a V8 perspective – V8

I read an old article on Spectre I collected a year ago. Then I found out that we still don’t have a proper hardware-based fix for Spectre since the fix will negatively impact the performance too much.

Chrome Content Optimization Service Runs on Go – Go Dev

I didn’t know that Chrome also had a server component for performance optimization. Today I learned.

People ❤️

If Management Isn’t A Promotion, Then Engineering Isn’t A Demotion – Charity Majors

I am 100% behind this article that engineers become managers because they need the powers to fix the problem and that engineers should have information and opportunities necessary to tackle big problems.

One additional note, I have an allergic reaction when managers refer to themselves as “leaders,” since that implies that the others (usually the reporting engineers) aren’t expected to lead.

Business 💸

Facebook complains, Apple responds: iOS 14’s big privacy change gets postponed – Ars Technica

Apple pulled back from deprecating IDFA (identifier for advertisers) in September. But the deprecation will come next year. It’s not clear to me how hard Facebook will be hit; it still got its logins. But I am sure other lesser networks will be decimated.

Also, here is an article on how precisely we are tracked, down to our names, addresses, and daily movements.

Epic, Apple and the Platform Wars – Paradox Podcast

I stumbled upon a podcast from a Swedish mid-size game publisher on Epic lawsuits. The gist was that the publisher sees the lawsuit as the battle between two closed ecosystems and that they prefer the future where there are multiple competing ecosystems. It was the first take I heard from the industry insiders.

Tailwind CSS: From Side-Project Byproduct to Multi-Million Dollar Business – Adam Wathan

I rarely hear opensource success stories but here is one, hitting $2 million revenue.

Young Reacts #90 – npm v7 beta

A few days ago, a college student asked me if there is anything I wish I learned sooner in my career. I thought I’d share my answer here too! 🙂

  1. I am solely responsible for my career. I need to keep learning and looking for new growth opportunities. Sometimes take new responsibilities opportunistically.
  2. I need to be able to look at myself in the mirror. That means empathy, inclusion, honesty, and integrity.
  3. Everyone will go through ups and downs at some point, so cut some slack. I will need it too.
  4. I don’t need to know/understand everything. While that is valuable, it is impossible. I need to let go and trust others to fill the gap.
  5. Be skeptical with higher-ups (especially the executives). If the upside (say, the company is getting sold) is big enough, they will screw me.
  6. My network matters. I am not good at expanding, let alone maintaining it. But my few connections already have opened up opportunities (including Netflix).
  7. Any feedback is powerful. But a positive, specific, actionable feedback is far more powerful because all top performers are different.

Software Engineering ⚙️

npm v7 Series – Beta Release! And: SemVer-Major Changes in npm v7 – npm

I just found out about this release from two weeks ago. I am excited by this news since npm will soon support monorepos. I am using yarn for them at work, but don’t want to upgrade to yarn 2 since it has departed radically from the package.json format I am used to.

Dear Google Cloud: Your Deprecation Policy is Killing You – Steve Yegge

How Google Cloud treats its customers makes me look back at how I am served by and serve other teams and platforms. The customer-oriented mindset that Amazon is famous for applies to my work, too— whether I am serving external or internal customers.

What’s a reference in Rust? – Julia Evans

I am having a rough time learning Rust, especially how to handle strings (Javascript was so much simpler!). But I understand them a little bit better now thanks to Julia’s explanation that a reference can point to the heap, the stack, or the data segment of your program.

People ❤️

Our remote work future is going to suck – Sean Blanda

A lot of us in the Silicon Valley buy that remote working is a good thing. However, if your company figures that an engineer in South Korea can do 80% of your job for 30-50% of your Silicon Valley (or in remote companies, Tier 1) salary, will it still employ you? I am not sure about mine.

I do believe that the remote work will provide opportunities for people outside the Valley. But under the current system, it will just pit every worker against another on a global scale.

Business 💸

Pinterest cancels huge SF office lease in unbuilt project, citing work-from-home shift – San Francisco Chronicle

Many people talked about how work from home will upend Silicon Valley’s commercial real estate. This announcement reads like the beginning of the upending.

Open letter to Australians – Google

Australians proposed a rule “to allow news media businesses to bargain individually or collectively with Google and Facebook over payment for the inclusion of news on their services” along with several other restrictions over the search and recommendation algorithms. I am not sure how this will pan out. Won’t Google and Facebook just cut mainstream news and surface more fringe media?

Young React #89

This week has made it hard for me to stay optimistic. In the Bay Area, we got not just the worsening pandemic but catastrophic wildfires clouding over millions of people. It’s less than two years since this area saw fires like this, making global warming all the more evident. I worry that the workers (warehouses, restaurants, factories, farms, and more) who can’t work from home have already been exposed to the Coronavirus, but now they also need to bear with the smoke. Things can’t go on like this, and I need to act.


Software Engineering ⚙️

An Update on MDN Web Docs – Mozilla

Due to the recent layoffs at Mozilla, MDN will get less investment from Mozilla—in fact, they laid off all technical writers. This change of directions worries me greatly because MDN has been THE go-to resource for web APIs.

TypeScript exercises – Marat Dulin

Marat created a set of Typescript challenges for you to test how familiar you are with the language. They get challenging quickly, and I confess I couldn’t solve the last two on my own (even though I’ve been using Typescript over the previous five years!).

ts-migrate – Airbnb

Airbnb released a tool that migrates Javascript to correct Typescript. I haven’t used it personally. But I, perhaps counterintuitively, recommend the tool if you are already familiar with Typescript. When I add the types manually, I clarify the domain and codify it into types. If you are not used to writing Typescript, that manual process will prepare you to think in a type-safe way.

People ❤️

Katie Sylor-Miller – Frontend Architect at Etsy – Katie Sylor-Miller

I am reading other interviews on StaffEng.com I shared last week. I read Katie’s since she is one of the rare staff+ engineers on the frontend. There are many bits of wisdom, but I especially loved this quote on how she operates:

It starts with taking in a ton of input from the work folks are doing – seeing that this team has a problem doing x, and another team has a problem doing y. Then you mix all that input up with your experience and what’s happening in the industry as a whole and let it sit in your brain for a while, until finally it all clicks and you realize that the deeper cause underlying both problems is z, so you come up with a plan to fix that problem which is really hard to fix.

Business 💸

Apple, Epic, and the App Store – Ben Thompson

I generally find Ben Thompson’s article insightful but especially liked this one on the Epic lawsuits. I liked how the article broke down what the App Store does, installation, payment, and CRM, and whether each piece benefits the consumers.

Young React #88 – Epic Lawsuits

This week was full of regulatory events impacting the largest tech companies, Apple, Google, Uber, and Lyft. As I said in the previous newsletter, the tech industry will no longer be free from regulations.

Photo by Bill Oxford on Unsplash


Software Engineering ⚙️

Yes, websites really are starting to look more similar – Sam Goree

I don’t buy the methodology of the study or the conclusion that the larger tech companies benefit from the similarity. However, it’s worth thinking about the tradeoff between the usability/accessibility of a website and the creative expression.

The consequences of memory allocation size for a Lambda function – Tamás Sallai

I rarely use lambda these days. But this article corrected the assumptions I held in the past. I especially liked the point that, due to the limit to the scaling speed, the larger lambda instances will translate into the more processing power.

People ❤️

Ritu Vincent – Staff Engineer at Dropbox – Ritu Vincent

Ritu’s interview was an inspiring read with a couple of takeaways. Most importantly, I was reminded that, while I seek stretching projects, I don’t actively seek feedback on how I am doing. A few projects immediately came to my mind, and I will follow up this week.

Business 💸

Epic is suing Google over Fortnite’s removal from the Google Play Store – The Verge

Epic Games, the developer behind the popular game Fortnite, is suing the two largest tech companies. The big tech hearing two weeks ago and the current public sentiment give Epic Games a good chance. Of the two, I believe that Apple, given its tighter control around iOS, is in a more serious trouble.

It really looks like Uber and Lyft might suspend operations in California – Quartz

Since the last year’s passing of California’s AB5, the law that classifies gig workers in California as employees, not individual contractors, Uber, and Lyft sought exemptions to classify their drivers as individual contractors. But the court ruled that both companies have until August 20 to make the change. The companies claim that they won’t be able to afford this change, and the drivers don’t want it.

The Trick With Personal Tokens is People Want Me to be Popular, Not Necessarily Succesful:” Alex Masmej – Alex Masmej

Alex tokenized his life, and now leaves some of his life decisions up to the token holders. I am amazed that the initial offering raised USD 20,000 among 30 investors, and that the price is going up. It is like Patreon on steroids.

Young React #87 – The New Brandeis Movement

I started learning Rust based on Rustlings, and it has been a joy. I love that the tooling enabled a newcomer like me to focus on learning, instead of tooling. It reminds me of my college projects. This should be how onboarding should feel like.


Software Engineering ⚙️

Stop using isLoading booleans – Kent C. Dodds

The most complicated component began its life with a simple isLoading. But after 2, or 3 more state variables, the number of states becomes unmanageable. Worse yet, Typescript’s exhaustive type checking aggravates the issue. I’ve been avoiding using state machines due to my lack of familiarity, but Kent C. Dodds pushed me over the edge.

A Guide to GraphQL Errors – Marc-Andre Giroux

This guide is the most comprehensive one on GraphQL error handling I’ve found so far.

Introducing Rome – Sebastian McKenzie

Rome is a comprehensive toolchain to bring compiler, linter, formatter, bundler, testing framework into one. The original author behind Babel builds it, so I am keeping a close eye on it. I first found the tool last March, and it is now in beta.

How GPT3 Works – Visualizations and Animations – Jay Alammar

I find how all these different deep learning models work confusing. But these visualizations enlightened me a little.

People ❤️

Equity for all? – Emily Kramer

Carta’s former Head of Marketing sued Carta for alleged gender discrimination. This lawsuit reminds me that the path to true inclusion is long and hard, and a politically correct press release isn’t going to cut it. I have to stay vigilant and actively fight against discrimination.

How to Break Up with Your Commitments – Elizabeth Grace Saunders

Not being able to say “no” is my worst weakness. I’d reluctantly agree to do something, then procrastinate (which is also from stress), and keep repeating the pain. The article made me reevaluate my current commitments at work.

Business 💸

The New Brandeis Movement: America’s Antimonopoly Debate – Lina Khan

The issue with the current tech monopolies is no longer about consumer harm. We all choose to use Google and Facebook. It’s about how the market is structured and who owns the power. This article summarizes this new perspective on tech regulation.

Young React #86 – Records & Tuples for React

My wife and I are heading out for a week-long vacation this week. Due to the ongoing pandemic, we will stay at a nearby Airbnb for a change of scenery. I hope you, too, try and make the best of the situation 🌴.


Software Engineering ⚙️

Records & Tuples for React – Sébastien Lorber

Records & Tuples is a stage 2 ECMAScript proposal to introduce native immutable data structures. Sébastien goes into how this could improve React’s unidiomatic techniques like useMemo. But I worry about the performance of the deep equality check, which will scale with the size of the records. Hopefully, the native equality check is faster than what we have now.

Incident Report: TaskRouter JS SDK Security Incident – July 19, 2020 – Twilio

AWS S3 is notoriously tricky to configure correctly, and this incident won’t be the last of its kind. Twilio left one of its public S3 buckets editable by anyone, and a hacker group injected malicious code into the SDK.

The Edge Computing Opportunity: It’s Not What You Think – Cloudflare

This article is a marketing piece from Cloudflare. But it does highlight the changing regulatory landscape as one of the factors developers now need to consider.

Business 💸

The Big Tech Hearing Proved Congress Isn’t Messing Around – Wired

The US Congress held a hearing with the CEOs of the biggest US tech companies, and presented the pointed critiques. With other news of how politics changes tech, this week feels like the beginning of a new chapter.

Microsoft to continue discussions on potential TikTok purchase in the United States – Microsoft

Microsoft officially confirms that it is negotiating a purchase of TikTok operations in the US. There will not be one global “tech” industry as the tension between the US and China escalates.

Hurting People At Scale” – BuzzFeed

This piece summarizes the ongoing internal turmoil at Facebook due to the mismanaged content moderation.

Young React #85 – What Does Sponsorship Look Like?

My wife has started her Master’s study at UC Berkeley, which is super exciting (She wrote about her journey to grad school here). Since she will take her classes remotely, I will be able to eavesdrop on her classes and get some free education as well. I am especially looking forward to a case-study class of tech companies.

However, we also ran into a predicament when she and I had meetings/classes at the same time. We live in a one-bedroom apartment, and our desks are sitting right next to each other. When we speak at the same time, our voices bleed into the other’s microphone and get in the way. But it’s already too late to get a bigger place since we just signed a new lease. Well, this explains why the housing price in the area went up.

Photo by Petr Macháček on Unsplash


Software Engineering ⚙️

TypeScript React Apollo – The Guild

In my current GraphQL-Typescript setup, I have to manually type individual useQuery and useMutation hooks, which is tedious and error-prone. This code generation tool autogenerates the typed hooks.

Relatedly, graphql-typescript-definitions from Shopify alleviates that problem by providing the necessary interfaces right from the graphql document. But it still requires manual typing at the end.

Svelte ❤ TypeScript – Svelte

The Svelte team recently announced that Svelte now supports Typescript. I have to admit that I had quite a simplistic view of what it means to support Typescript before reading this. The integration was quite involved since Svelte has its syntaxes and language server; the Svelte team extended its language server to understand Typescript and provide the language information to IDE based on the common interface.

jest-axe – Nick Colley

This accessibility testing tool integrates with Jest so that you can unit-test your components for their accessibility. I love that I only have to assert toHaveNoViolations at the container element. A word of caution though: this test does not guarantee your app’s accessibility.

People 💖

What Does Sponsorship Look Like? – Lara Hogan

I learned that, at a larger org, my access to opportunities (visible and impactful projects) matters as much as my ability to execute them. Without the opportunity, I can’t learn from experiences. Without the experience, few will offer the opportunity. Sponsorship, promoting others for the new opportunities, is a great tool to break that logjam. And I am deeply grateful to Lauren for giving me that chance.

Business 💸

Content, Cars, and Comparisons in the “Streaming Wars” – Matthew Ball

I always found how content accounting works strange. All content spends are treated as assets, and they are amortized over the same number of years when some turn out to be a dud right off the gate. The article reminds me that, even if accounting works mechanically, the quality of execution (talents, and IP) matters.

Young React #84 – Apollo Client 3, and React Aria

I was notified this week that I passed one major milestone in getting the US pI was notified this week that I passed one major milestone in getting the US permanent residency. So my wife and I hurried to get our paperwork ready as soon as possible. The process asked for everything in my life: my bank statements, all my immigration documents collected over the last 12 years, my birthplace, my parents’ birthplace, my current address, my address five years ago, and so on. It is when faced with this immigration bureaucracy, I feel the most foreign to this place I’d like to call home.

Photo by Christa Dodoo on Unsplash


Software Engineering 🌐

Announcing the Release of Apollo Client 3.0 – Apollo

Apollo Client 3, one of the most popular and powerful GraphQL clients, is finally out of its beta. There are quite a few features, but I look forward to the improved pagination handling and the simplified package the most.

React Aria – Adobe

This React hook library lets you build accessible components by generating the correct props for HTML elements. It is an easy and impactful first step to make an accessible product. My team is already looking into bringing this library into our component library.

New in Chrome: CSS Overview – Robin Rendle

CSS Overview is an experimental addition to Chrome Debugger that shows the used colors, fonts, and unused declarations (super excited about this). I didn’t realize that we have three different blacks and four different dark grays in my codebase 🤦. I won’t use this feature daily, but it would be good to audit our styling periodically.

super-expressive – Francis Stokes

This library adds a more readable DSL to make regex patterns more maintainable and reviewable. I like the idea.

Business 💸

Trump’s freeze on new visas could threaten US dominance in AI – MIT Technology Review

Given the uncertainty around immigration, it does make me wonder if I made the right choice to immigrate here. Once a nation of immigrants, the US does not feel welcoming anymore.


Young React #83 – tooling.report

I am reading this book on the life of a British on-demand courier (think UberEats or Doordash driver), and it’s been eye-opening. I realize I haven’t paid much attention to the human cost of these platforms where the companies offload the risk and the variability onto those individuals, hiding behind the faceless apps. As builders of these platforms, we engineers can and should affect changes for a more equitable platform. We all are workers.

Riding for Deliveroo: Resistance in the New Economy


Software Engineering 🌐

🌟 tooling.report – Google Developers

This report compares the documented capabilities of the most popular web bundlers. I was surprised to find that Rollup ranked higher than Webpack. But before you switch your bundlers to Rollup, there are two caveats: first, the test only uses the documented features. It may be possible to achieve what you need with other bundlers. Second, you may not need all these capabilities.
On the website, you can go deeper to see what individual tests are and how they are measured.

Getting Started with FAST Components – Microsoft

I’ve never seen a component library based on WebComponents, and FAST is the first one. From its documentation, I learned how to integrate with a WebComponent library and to create WebComponents. I loved that the codebase was in Typescript, which made it easier to follow its code. I wonder how to typecheck the usages of web component libraries when the hosting code is in Typescript.

Cascading Cache Invalidation – Philip Walton

I haven’t run into this problem of cascading cache invalidation since I haven’t tried code-splitting yet. But I still found this invalidation problem intellectually stimulating.

People ❤

My Time as a Black Woman Software Engineer at Capital One – Sailor Ghoul

This article is a horrific recount of how bad management and lack of support for BIPOC colleagues can leave lasting damage not just on their career but on their health as well.

Business 💸

The Slack Social Network – Ben Thompson

Ben Thompson argues that Microsoft Teams is a vertically integrated product, whereas Slack is a horizontal product. The argument made sense until Slack acquires an enterprise identity provider service, which will create an entry into other enterprise products.

Silicon Valley Elite Discuss Journalists Having Too Much Power in Private App – Vice

Naturally, the powerful and connected would love to avoid accountability and exposure, and, thus, have tension with the press. But harassment is many steps too far. This specific article is on how Silicon Valley elites attacked a New York Times reporter for her recent reports.


Young React #82 – Mozilla Hubs, and Speed as a Habit

I found this fantastic tool called Hubs from Mozilla. It’s incredible how we can run an interactive 3D environment on a browser without needing to install any plugins. At the same time, it’s a bit depressing how little I know about these technologies.

Regardless of my insecurity, the tool is equipped with spatialized audio (meaning the closer you are to another, the louder you will hear), virtual pens, and objects, and even emoji reactions! Try it out next time you hang out with your friends or team!Image

Latenight hanging out with my wife 😍


Software Engineering 🌐

Observables, Reactive Programming, and Regret – Ben Lesh

Ben Lesh looks back at his work on RxJS and shares his regrets, the biggest of which is the community’s lack of distinction between Observable and RxJS. A few key takeaways are (disclaimer: I am a noob with Observables and RxJS):

  • Observables are not RxJS.
  • Reactive programming isn’t necessarily observables.
  • RxJS is a library of functions built around observables, not the other way around.

Introducing GitHub Super Linter: one linter to rule them all – Github

I like how different projects with different languages can use this Github Action. We spend way too much time configuring our tools and infrastructure. That being said, I wonder how I’d be able to use a beta version of typescript or apply lint rules private to the company.

Lies, Damned Lies, and Keynotes – Corey Quinn

An excellent reminder from Corey Quinn that we all get excited about new services, libraries, frameworks, and then just get back to the old ways

People ❤

Speed as a Habit – Dave Girouard

Even at Netflix, I too often see meetings end without a firm commitment to the next steps. A simple nudge like “when can this be done?” and “can this be done sooner?” will transform an ambiguous agreement into a concrete action plan.

Ask the EM: Can You Really Measure Individual Developer Productivity? – Gergely Orosz

Many tools track productivity statistics on your projects now; Gitlab has its own, and Github has many integrated tools as well. However, the statistics are not the end of a story, and it’s managers’ job to add the context and act on it.

Business 💸

The three Fs of cloud pricing – David R Griffin

An interesting analysis of how relationships with cloud providers change at different stages. I mostly agree with this view, but there are a few more things at play: First, we may be minuscule relative to the entire AWS revenue, but we may be the most significant account to your AWS sales rep. Second, when we had a high (~90%) margin (think SaaS), our AWS bill just didn’t matter.

How will the startups created in 2020 be different from startups built before? – Protocol

The big themes across the responses are: adopting distributed work, building a diverse and inclusive work culture, and running a lean company.