Young Reacts #214

I was surprised to see many new subscribers to this newsletter over the past couple of weeks. I appreciate and welcome you all, and I hope you find the shared articles as informative and enlightening as I did.


Software Engineering ⚙️

Speeding up the JavaScript ecosystem – module resolution

This excellent article taught me how module resolution works behind the scenes (i.e., how Node.js can import without file extensions). Check out the author’s first article on Javascript performance, too.

The gotcha of unhandled promise rejections

I am used to seeing a few warnings about unhandled promises during development and testing. But I never wondered what “unhandled” really meant. The article explains how they happen and how we can work around some tricky scenarios.

Announcing TypeScript 5.0 Beta

Another version of Typescript is coming out. If you are familiar with SemVer, it may look like a major release, but it’s not. Typescript does not follow SemVer and goes from x.9 to x+1.0, with every release having a few breaking changes. I am most looking forward to the improved module resolution in this release.

Community Health Analytics in Open Source Software

This Linux Foundation project defines many metrics to measure the health of an open-source project and maintains a tool to measure them. Given that our technology choices have a long-term impact (imagine you chose Angular instead of React five years ago), it’s prudent to understand the community health of the technologies.

Business 💰

Why VR/AR Gets Farther Away as It Comes Into Focus

This article puts the current state of VR/AR into perspective. More demanding performance goals under tighter physical limitations (weight, dimension, cooling, etc.) with (resolution, frame rate, sensors, etc.) make the technology harder to appeal to the mainstream. I got quite a bit pessimistic about these devices after reading this.

PermisionSlip

Consumer Reports, a US non-profit, created an automation app for consumers to protect their data based on the California Consumer Privacy Act.

Interesting Finds 💡

this house may or may not be real

Apparently, many staged photos on real estate listings are now “virtually staged,” meaning that the furniture and fixtures are photoshopped. It disturbs me to think that we won’t be able to trust information about the most expensive purchases of our lives.

Young Reacts #213

The tech downturn is hitting closer to home, with a few in my close networks being impacted. Whatever happens, we need to remember that layoffs are not an indictment of our performance, and we are more than our jobs.


Software Engineering ⚙️

The Turbopack vision

Webpack is being left behind by its newer competitors. Its creator, Tobias Koppers, has a vision for a faster next-generation build system based on Rust.

MemLab: An open source framework for finding JavaScript memory leaks

Meta open sourced a tool to detect memory leaks automatically. I love that it’s based on Puppeteer, enabling it to be easily added to an existing test pipeline.

ESLint’s 2022 year in review

I particularly found its 2022 budget review interesting: ESLint received $197,345.27 from various sources and spent $140,704.09.

People ❤️

Inspection and the limits of trust

“Trust but verify” is a behavior I am not comfortable employing. I am not even sure that this is how I want to behave as a people leader. However, I see many leaders at Square exhibiting this behavior.

DevOps culture: Westrum organizational culture

To ensure good information flows through an organization and improve the organization’s performance, Dr. Westrum’s research says a few behaviors must be present: high cooperation with cross-functional partners, encouraging sharing of bad news, etc. This guide details the behaviors and accompanying survey questions to measure the culture.

Business 💰

Twitterrific: End of an Era

After Twitter silently shut down its 3rd party API last week, Twitterrific, the app that created much of Twitter’s ethos (the bird logo, the word Tweet, etc.), has shut down.

TextingStory icon evolution

The creator of an app with 20 million downloads got to its first million downloads with a logo made with a PowerPoint. It shows we can still achieve the product market fit without much polish.

Young Reacts #212

To those in the US: Happy MLK day! The fact that I, an immigrant Asian, can live without discrimination or fear in the US owes a lot to Dr. King. The progress has been too slow, and challenges are still innumerable, but let’s use today to remember his legacy.


Software Engineering ⚙️

The State of JS 2022

I always learn new things from this report. This time I learned the following:

tRPC Introduction

After learning about this library in the survey, I read about what tRPC is. It reads like it’s simpler than GraphQL to adopt for full-stack developers who work on a monolith. But it won’t give you GraphQL’s flexible APIs.

People ❤️

Finding Fulfillment

This article made me look back at my past decisions. Did I make them out of ego? Did I sacrifice my true fulfillment to satisfy my ego at the time? How can I make better decisions for myself in the future?

Shopify encourages employees to say no to meetings

Shopify canceled all non-1:1 meetings at the beginning of the year. This was intended to force all meetings to be re-evaluated on their merits. I like this. All meetings should be able to justify their existence.

Business 💰

Every book deserves to be heard

Apple announced a pilot program to create audiobooks with AI voices. As an avid audiobook listener, I got very excited as I often wanted to get interested in an old book without an accompanying audiobook. Unfortunately, this will also upend many narrators’ livelihoods, and only the author-narrated books will survive as collector’s items.

CNET Is Experimenting With an AI Assist. Here’s Why

CNET, a major tech media, started publishing articles created by an AI system and edited by a human editor. I am actually not surprised, I suppose, because I’ve already seen ChatGPT.

My lawyer, the robot

This is the most advanced and high-stakes AI in today’s post. DoNotPay, a legal tech company, is looking for a person to use its AI to argue their case.

Young Reacts #211

It’s nice to see you again in 2023. Tech layoffs continue in January (Amazon, Salesforce, etc.), and I wish you the resilience to manage the stress well.


Software Engineering ⚙️

First-class Support for TypeScript

With the 0.71 release, React Native’s starter CLI will generate a project in Typescript, not Javascript. Even React’s starter CLI doesn’t do that. So Typescript isn’t just first-class, more like a preferred option now.

How did NASA remotely fix the code on the Mars Pathfinder?

I wondered how to debug a program running on a computer millions of kilometers away. The answer was simple: those programs run with the debugging facility enabled, and the engineers can transmit a command to modify the programs’ states. It’s just that you need to triple-check everything because a mistake costs dearly.

People ❤️

Measuring an engineering organization

This article is one of the most impactful ones in my recent memory. Engineering leaders cannot avoid providing some visibility into their teams’ operations. But different stakeholders are looking for different insights, and the leaders should tailor measurements for the use cases. This article provides the typical use cases and the typical metrics for each.

Business 💰

FTC fines Fortnite maker Epic Games $520M over children’s privacy and item shop charges

$245M out of $520M was to refund customers for Epic Games’ dark patterns that “trick users into making purchases.” This refund was the largest refund in FTC’s history. I hope that this news warns other companies from employing dark patterns.

Why we still believe in the future

Meta’s VR chief, Andrew Bosworth argues Meta’s core ad business is still strong and reaffirms Meta’s commitment to VR.

The infrastructure behind ATMs

The article tells an interesting story about how ATMs came about and provided the infrastructure for debit cards and that the infrastructure for debit card transactions is different from that for credit card transactions.

Interesting Finds 💡

I usually wake up just ahead of my alarm. What’s up with that?

I had the same experience that, when I had to wake up early to catch an airplane or a meeting, my eyes were open 30 min before my alarm went off. This article goes into a few possible explanations.

Young Reacts #210

This is the last issue of 2022. Thank you for being a subscriber through this eventful year. I will take a break next week to celebrate the new year and return on January 9. Happy new year!


Software Engineering ⚙️

Web workers, React, and TypeScript

I wanted to learn about two things reading this article: first, is the communication overhead between the main thread and the worker thread small enough? Second, can that communication be typed (see this article for inspiration)? Unfortunately, the answer to the first question wasn’t in this article, and the answer to the second was no.

A framework for balancing and budgeting engineering resourcing

An essential part of engineering management is balancing priorities and communicating your balancing decision with the stakeholders. Summarizing the team’s priorities in percentage will provide valuable discussion points.

People ❤️

317 Free Resources for Product Management

When you try to devise a creative solution to a problem, there is no worse drag than having to start from a blank page. This list has templates from actual product companies (Airtable, Coda, etc.).

The Dangers of Courage Culture and Why Brene Brown Isn’t For Black Folk

Women of color experience the world very differently from how men of color or white women experience it. Just as “lean in” didn’t work for women of color, Brene Brown’s advice probably won’t work for them.

Business 💰

A Roomba recorded a woman on the toilet. How did screenshots end up on Facebook?

This article digs deep into the machine learning data supply chain. It starts with how private images captured on a robot vacuum ended up online and how different parties get involved in building “smart” devices. I knew of companies like Scale AI but didn’t understand how they fit into the picture until I read this article.

Interesting Finds 💡

The decline of the city grid

This article comes with a cool interactive visualization of how grid-like your neighborhood is. The image at the bottom is a polar histogram of my neighborhood. It shows that while the area has large grid blocks (see horizontal and vertical lines), it also has a lot of non-conforming roads. I added the histogram of Chicago for comparison.

My neighborhood
Chicago

Young Reacts #209

As we go into the final two weeks of 2022, I wish you happy holidays!


Software Engineering ⚙️

Engineering in a Hybrid World

This report shows how other larger technical organizations operate. I found this part on measuring engineering productivity most intriguing: “Developer productivity can be compared to a sales funnel, with key metrics that can be tracked at each stage.” The report defines the stages as Writing Code, Code Review, Testing, Deployment, and Maintenance.

nact ⇒ node.js + actors

This Node.js library helps you by forcing you to delineate the different domains in your code. I also see a similarity in call patterns of nact’s actors and GraphQL’s resolvers. I don’t have an opportunity to test this out at work, but I will remember this in the future.

People ❤️

Why Incentive Plans Cannot Work

This article reminded me of the book “What Money Can’t Buy.” When we put price tags on intangibles, we lose the ability to see anything else.

Control vs. Context

The author suggests that control and context may not be one or the other but can coexist; there can be a high control and high context environment. It’s an interesting thought, but I can’t entirely agree that they are independent of each other, as his 2×2 grid suggests. High context enables low control, and low context forces high control. If people have enough information to make good decisions, they don’t need to be told what to do.

Business 💰

The charges against Sam Bankman-Fried and the first FTX Congressional hearing

It’s about time SBF gets actual charges for his fraud. Saying sorry and admitting his incompetency should not save him.

CEO Geoff Schmidt’s message to Apollo employees

Apollo, one of the top GraphQL tooling companies, laid off 15% of their workers. I was sad to see this happen because I’ve been a big fan of their work.

Apple announces biggest upgrade to App Store pricing, adding 700 new price points

I did not know that App Store only supports a few hundred price points. That explains why no apps are priced at “weird” numbers, such as $0.24 or $4.86.

Young Reacts #208

After so much legwork and decisions, my home remodeling project is scheduled to be completed this week. Through this process, I’ve learned to collaborate better with my wife and let go a little more. I cannot wait to see my home in its new glorious look!


Software Engineering ⚙️

npm Best Practices Guide

Although npm hasn’t been on the news lately, we need to be mindful of the damage we may cause with npm (See this example). This guide has plenty of good advice, such as using lock files and npm scopes.

Should you use jest as a testing library?

I don’t quite agree with the author’s conclusion that jest doesn’t work well for Node.js applications. But I did learn how jest has implemented its parallel runner.

People ❤️

3 rules to express your thoughts so that everyone will understand you

Even before reading this article, I knew and followed the first and third rules: “make no more than three points” and “make important points three times.” But I haven’t thought about its second rule: “explain difficult ideas in three different ways.” This rule will make my points more digestible and expand my understanding of the topic.

Why are there so many tech layoffs, and why should we be worried? Stanford scholar explains

This professor argues that layoffs are a result of ‘social contagion,’ meaning they do it because others do it. And the unfair part is that the execs who make the decision will be impacted the least, given their golden parachutes. The employees, however, will be hurt mentally and physically.

‘Diablo IV’ developers work long hours, bracing for impending release

Yes, I am excited about the release of Diablo IV in June of next year. No, I don’t think hitting the date is worth sacrificing employees’ mental and physical health. But this capitalist society will punish the company if the team misses the date.

Business 💰

OpenAI’s attempts to watermark AI text hit limits

ChatGPT, only a few days after its release on November 30, is already banned from Stack Overflow because of its ability to produce valid-looking but incorrect answers at scale. Will watermark technology save us from the onslaught of online misinformation?

Visualizing Tech Company Layoffs in 2022

tech layoffs in 2022

You can easily see the scale of the layoff in this visualization.

Young Reacts #207

I’ve been enjoying the World Cup and its many upsets so far. I am happy that current and former Arsenal players do well on this global stage. Even some who didn’t fit in with Arsenal’s system continue to perform at the top level for their national teams. It reminds me that we all need the right environment to realize our full potential.


Software Engineering ⚙️

Speeding up the JavaScript ecosystem – one library at a time

This article showcases the power of debugging tools by shedding a few seconds of build time with only dozens of lines of change.

NextJS, SvelteKit, Remix and the future of Storybook

Storybook prioritizing its compatibility with other frameworks and build tools is good evidence that they are gaining more popularity.

Retrofitting null-safety onto Java at Meta

One lesson from this article is similar to one from Ten Years of Typescript: enabling a gradual migration was critical to the adoption. A large software project should always support the migration path to be successful.

People ❤️

Tension: why product development requires balancing conflicting goals

The contrasting statements in this article brought my attention to consider a few tradeoffs.

“Output is not outcome.”

This means that on-time project delivery does not guarantee that the resulting product solves customer problems.

“Business problems are not customer problems.”

This means that the customers don’t care about the business’s needs (growth, profitability, etc.). Plus, if I may add my interpretation, the business also needs a way to make money as it solves customer problems.

Better, Faster, and More

I don’t appreciate how this article explains (somewhat patronizingly) why one cannot compare the compensation for different offers because each role is unique. This logic will always give the employers the upper hand because the candidates will never have as much information as the hiring company.

However, I agree that it’s easy and tempting to focus on quantitative values such as compensation instead of intangibles like role fit and growth opportunity.

Business 💰

FTX’s Collapse Was a Crime, Not an Accident

I did not know who Sam Bankman-Fried was before his frauds were uncovered. But seeing how he played the media as a philanthropist, I am reminded that we cannot trust one’s words but only their actions.

New Meta AI demo writes racist and inaccurate scientific literature, gets pulled

By this point, there have been enough public AI abuses. AI research teams should more proactively collaborate with a red team to harden their products before public releases.

For those in the United States, I hope you enjoyed your Thanksgiving. The world is suffering, but I found much to be grateful for: my family is healthy, we could afford to buy a house, I have enough experience to feel confident about navigating the tech downturn, and I had friends to spend Thanksgiving together. What were you thankful for?


Software Engineering ⚙️

Why Twitter had 7500 Employees, and Startups Crush Big Companies.

The maintenance work and product complexity make it difficult to move fast with an established product. I also believe the communication cost within and between teams lowers individual productivity.

Deno 1.28: Featuring 1.3 Million New Modules

Deno announced in September that it would enable all npm to interoperate with Deno within three months. And they did it. I am amazed that they hit this self-imposed deadline.

How Precision Time Protocol is being deployed at Meta

The detailed technical discussion went over my head. But I learned that a synchronized time could help solve data consistency challenges and that you need custom hardware to get the nano-second level precision.

Bug Blog: eSports Trade Issue

I saw many League of Legends matches disrupted by this issue, so I found this article extra interesting. It’s always cool to see an approach that worked initially breaks down as the scale changes.

People ❤️

The Principal Engineer’s Handbook

As I “moved up” in my career, it became harder to tell my capacity. This handbook defines an engagement model (Owner > Stakeholder > Supporter > Friend) and recommends owning no more than two initiatives. It’s a good rule of thumb to follow.

Business 💰

Disney mired in chaos as Bob Iger takes reins back from ‘novice’ CEO Chapek

I wasn’t aware of all the controversies around Disney parks. But I still wonder what choice an executive has under pressure to grow year after year but to milk more money from its most loyal customers. Regardless, it would suck to be pushed out of your job by the one who appointed you.

All Deviations Are Opted Out of AI Datasets

Generative AI models have used real humans’ work without permission. To help protect those humans’ copyrights, DeviantArt created new HTML directives (“noai” and “noimageai”) to signal that a given page or image is not for machine consumption, just like the “noindex” directive. The tricky part is that the training models need to respect those tags.

Interesting Finds 💡

I found the artwork in the thread pretty amusing. Do take a look!

Young Reacts #205

We closed on a house last week. It was our first time buying a home, and it was as unnerving as exciting. We plan to do some work on the house before we move in, and it has opened a whole can of worms. We had to make so many decisions and did not have enough time. I never cared about the brand of the toilet in my apartment, but now I needed to know enough to pick a new toilet. I never knew that there were dozens of white paints, each with a minutely different tone.

I was overwhelmed. Then, a wise person told me to take one step at a time and to learn to enjoy the process. We will live in the house for a long time and have plenty of time to tinker with it. I tend to rush the process so that I can mark it as “done.” But some things in life cannot be completed (your house will always have an eyesore) and are more about the journey. I will take this opportunity to internalize that.


Software Engineering ⚙️

Is Turbopack really 10x Faster than Vite?

This is not the first time an unverifiable claim has been made for JS tooling. I wish there were established JS parsing, formatting, and bundling benchmark tests as there are for CPU or graphics cards. Then, instead of a company benchmarking its competitors’ products, each can focus on its own. With that, we can improve on tweets like this.

Are we monitoring our tools?

It is an exciting idea to centralize the usage metrics of the tools at a company. We spend a lot of time and energy understanding the value of the tools during the renewal period. So even a basic centralized usage database will save so much time. I feel like all SaaS tooling companies should provide an API to collect usage data.

People ❤️

Kindness, Tech Staffing and Resource Allocation

Many tech pundits talk about “bloat” when discussing the recent layoffs. I disagree with that labeling. A thousand engineers are a lot and expensive. But they can be there for a number of different reasons: scaling an existing product, taking a bet on a new product, or improving the team’s productivity. Knowing their challenges and priorities from the outside is impossible, and it’d be good to have some humility and empathy.

Business 💰

Rent Going Up? One Company’s Algorithm Could Be Why.

This article raises an interesting question. Is it anti-competitive if landlords use the same algorithm to set their rents? What if that algorithm uses the landlords’ private data? How can we know the algorithm does not use those private data?

Also, one memorable quote from the article: “One of the algorithm’s developers told ProPublica that leasing agents had “too much empathy” compared to computer generated pricing.”

The DOJ has reportedly opened an antitrust investigation into Ticketmaster’s owner

The poor buyer experience of Ticketmaster is a clear example of a monopoly hurting consumers, from tech failure to ticket scalping. Taylor Swift tickets are now going over $20,000.

Farewell from Protocol

As tech companies struggle, tech media struggle as well. I enjoyed reading Protocol (I had linked to quite a few of their articles) and will miss it.

Interesting Finds 💡

Introducing Notion AI

Remember this article about using Generative AI to brainstorm new product ideas? Notion productized it.