Young Reacts #249

A top-priority project that my org has been working on for the past six months will now be launching internally this week. I dubbed it “the most expensive prototype I worked on” since it started from a literal back-of-the-napkin drawing. We will get a lot of feedback, which I am both looking forward to and dreading simultaneously.


Software Engineering ⚙️

A (more) Modern CSS Reset

I’ve used a few open-sourced CSS resets before but haven’t spent time reading about what they do. I appreciated that this article concisely explains what each part does with links for further reading. I learned that the resets are opinionated and should be customized for my projects.

Lessons From Debugging

I couldn’t agree more with this quote in the article.

Everyone knows that debugging is twice as hard as writing a program in the first place. So if you’re as clever as you can be when you write it, how will you ever debug it? –Kernighan, The Elements of Programming Style (1974)

On Hate Scaling Laws For Data-Swamps

A group of researchers found that models training on larger data sets have more societal biases, possibly due to the worse data quality. The conventional wisdom of “the more data, the better” can’t hold if the data quality degrades.

People ❤️

When Should I Write an Architecture Decision Record

Whenever you wonder if you should write an ADR, the answer is yes (unless a decision is not reached yet). Even for decisions made in the past, explaining the decision now will benefit your colleagues in the future.

Snake on the wall!

Some problems (flaky alerts, slow build time, etc) do not have an easy, objective way to quantify the pain. But collecting anecdotes (essentially a diary study) is a powerful way to tell a compelling story.

Business 💰

ChatGPT can now see, hear, and speak

Multi-modal ChatGPT will be rolling out to select customers in the next two weeks. As generative AI gains more ways to interact with the real world, some are now imagining new form factors for AI (Jony Ive + OpenAI, AI device at Paris Fashion Week).

Spotify’s AI Voice Translation Pilot Means Your Favorite Podcasters Might Be Heard in Your Native Language

This is a futuristic application of generative AI, but I am unsure how successful this project will be. I believe that people would want to listen to the perspectives of those from similar backgrounds, just like how only a few Netflix content cross borders.

Young Reacts #239

I received more recruiter emails last week than in previous months combined. I hope that’s a sign of a better tech job market 🤞


Software Engineering ⚙️

Writing CSS In 2023: Is It Any Different Than A Few Years Ago?

I haven’t paid much attention to new features in CSS after learning Flexbox and Grid. Since I prefer to create self-contained components with component-specific styles, I haven’t felt the need to improve my CSS skills. But it was eye-opening that I wasn’t aware of so many new features.

10 Usability Heuristics for User Interface Design

As I finish my project at work, I plan to go through the feature with a critical eye to ensure a good enough user experience. These three heuristics are most important for my current work: #1: Visibility of system status, #5: Error prevention, and #7: Flexibility and efficiency of use. So I will ensure the feature has good loading and validation states and works with keyboards.

People ❤️

Designing Better Meetings

The article has many easy, valuable tips, such as defining a specific meeting type (explorations 🏕️, planning meetings 🏗️, etc.) with emojis. If I may add one more to the list, it would be “Start a 25-minute meeting at 5 minutes past o’clock rather than try to end the meeting 5 minutes before o’clock” because it’s so easy to go over five more minutes.

Questionable Advice: “How Can I Drive Change And Influence Teams…without Power?”

As an individual contributor with no positional authority, I think about how I can effect changes I want to see. There is a few pieces of actionable advice, but I found this sentence the most impactful:

“[T]he actual best way to persuade people to listen to you is to make good decisions and display good judgment.”

Business 💰

The Chrome Privacy Sandbox APIs Will Be Generally Available For All Users In July

This is a bit old news, as the article came out in May, but it was still interesting. Google says third-party cookies, which have been powering online advertising, are for sure going away next year. Its impact will be close to Apple’s App Tracking Transparency change.

After State Farm’s and Allstate’s Exits, Farmers Insurance Sets Limits in California and India’s ban on rice exports raises fear of global food price rises

Both may look unrelated, but they share global warming as a common cause. Insurance companies don’t want to insure homes in California due to the wildfire risks, and India’s export ban is due to heavy rain damaging crops. This may be how our life will be; a slowly declining quality of life where we can’t afford the things we took for granted.

Young Reacts #189

Even though it’s not official, I believe the recession is here. It is my first time experiencing a recession as a working adult. While I haven’t heard anything at work, it does worry me to see other companies laying people off. Now I am wondering if I should start practicing LeetCode again.


Software Engineering ⚙️

My Big Fat Monolithic Alert

My team’s service is a monolith, with multiple teams contributing to it. Like in this article, we suffer from pagers from other teams’ code. Adding metadata to the alerts and routing them based on the metadata is a simple yet powerful technique to create accountability for other teams.

The CSS behind Figma

Figma is one of the tools that pushed what’s possible on the web. So it’s worth learning how they built their app, and the author did a great job explaining it.

People ❤️

Exclusive: Leaked salary data show huge pay disparities at Twitter

Since money is finite, all compensation structures make trade-offs. Equal work, equal pay is a perfectly valid structure, just like the cost-of-labor-based structure. The companies should be upfront about their policies so that the job candidates can walk away if they don’t like them. Twitter’s failure here is not its compensation structure but its lack of transparency.

San Francisco’s Zuni Cafe removed tips a year ago. Despite pushback, it won’t bring them back.

Related to the article above, changing the compensation structure once you already have staff will always be painful.

Business 💰

Changes to Shopify’s team

Shopify laid off 10% of its employees. It’s obviously painful for a lot of people. But at least the CEO admits that he got it wrong:

It’s now clear that bet [that the channel mix – the share of dollars that travel through ecommerce rather than physical retail – would permanently leap ahead by 5 or even 10 years] didn’t pay off. What we see now is the mix reverting to roughly where pre-Covid data would have suggested it should be at this point.

This word shows a much clearer thinking than other CEOs just blaming the macroeconomy.

Zuck turns up the heat

Meta, for the first time, had its quarterly revenue drop from the previous year. In response, the leadership urges the employees to rise above the occasion and accept the lower compensation due to the lower stock price. The article shows that some of the staff are not happy.

Young Reacts #116 – What the heck, z-index??

As I am doing more discovery work recently, I’ve been practicing to think more granularly. Most situations do not have binary on/off states, and the optimal solution can be found when we recognize the complexity and lean into the details. As I talk to my users, I find the common traits and categorize them into a few buckets, such as early adopters, majority, and laggards. It’s not exactly rocket science, and I am not a UX expert, but it already changed how my team views a problem.

In practice, while we are building an internal GraphQL system for UI engineers, I’ve learned that each engineer has different levels of expertise and needs. Some are on the bleeding edge and keep pushing us for more features, while some need more education and onboarding support. With this clearer understanding of my user personas and their needs, I can focus on overlooked opportunities, such as improving tutorials and documentation for newcomers.

Photo by Nicolas Brulois on Unsplash

Software Engineering ⚙️

What the heck, z-index??

I’ve worked as a frontend engineer for the last 9 years and still get baffled by the z-index. This article goes deep into how z-indexes work. I didn’t know that z-indexes are only used when the elements are in the same stacking context.

React’s children prop won’t cause rerendering if the children didn’t change.

This was quite surprising for me. I expected that since React’s JSX syntax returns objects, the children prop always fails equality checks and triggers rerendering. Apparently not. React’s rendering behavior still surprises me. Blog Link

Use GraphQL Fragments

If you started using GraphQL with Apollo Client, you probably don’t use Fragments as often as you should. Fragments make reusing and accessing nested types easy, which can be painful with nested nullable fields. Blog Link

People ❤️

The Behind-the-scenes Work of Tech Leadership

The ability to sell an idea becomes more important as we progress in our careers. That means we need to tailor our pitches based on the audience. When we talk to the executives, we need to speak in business terms. When we talk to other engineers, we need to speak to their pain points. The term “tech leadership” makes it look hard, but the leadership really comes down to communication and persistence.

Business 💸

Community perspectives on Elastic vs AWS

I recently heard this podcast that interviewed people in the open-source business about Elastic’s SSPL license change. I expected to hear a more sympathetic tone, especially from those leading open source companies. But I was surprised to hear that they essentially saw the license change as the last-ditch response to a failed differentiation.

Cool things I found 🕶️

10 Years of Open-Source Visualization

D3.js was the first library to introduce visualizations to the mainstream internet. Not only that, it was the first library I learned at my first job. The library is now 10 years old, which makes me reminiscent.

Falsehoods Programmers Believe About Names

My team recently had a heated discussion on whether we should separate the existing “name” field into two “first name” and “last name” fields. I was adamantly against it because I know firsthand that not all names neatly fit into the two fields. The post goes deep into other wrong beliefs about names.

Young Reacts #109

I am back from my trip to Korea and will be back to work this week. I am mildly excited to work again, which shows my vacation was long enough. My year begins now!

Photo by Zoltan Tasi on Unsplash

Software Engineering ⚙️

The State of CSS 2020 Report

My two takeaways:

  1. Tailwind CSS (now with Tailwind UI components) is the thing to learn.
  2. Utility CSS classes are not a minority opinion anymore.

Link

Leveraging the TypeScript API to find issues in your code

I didn’t expect that writing a script to look at Typescript’s syntax tree could be accomplished under 100 lines of code. Something for me to try when I have tedious, mechanical refactors in the future. Link

GitHub’s WebGL Globe

GitHub launched its cool looking website with a 3D globe, visualizing Github’s activity. This article explains the visualization code line by line. Link

Iterating over iterable JS objects

During my phone screens, I see even senior candidates struggle with iterating over an object. It would be a good idea to brush up on iterations if you can only come up with forEach when you read this. (Spoiler: use for-of) Link

People ❤️

Would you discuss politics at work?

This week was marked by a series of challenging political events in the United States. Some workplaces ban the conversation around politics to avoid the pitfalls. But I personally believe acknowledging the stress on all of us and providing the space to process our feelings are the best course of action. Link

Learn to deal with uncertainty

As an engineer, I am used to immediate and clear feedback; I wait for 10 minutes, and automated tests accept or reject my work. But when I discuss long-term product roadmaps or lead cross-functional projects, there are no such mechanisms. This article helped me understand why I struggle with those high-level discussions: fewer constraints, longer feedback loops, and more high-stake problems. Link

Interviewing for Engineering Manager

I am thinking of returning to engineering management in the next year or two. Since it will be quite a big shift, I started looking at what companies look for from their engineering manager candidates. This is from Reddit. Link

News 📰

Twitter bans Trump

Twitter finally bans Trump’s account from the service after Trump used the service to encourage his supporters to storm the Capitol. I am glad that Trump won’t be able to use Twitter to seed confusion and incite violence. But Twitter is not the only social network, and other services still enable these extremists. (The alternative Twitter-like service is now suspended from app stores for the lack of content policing)

A society can’t leave its safety up to the few tech execs. The only proper way to censure and contain Trump will be through democratic institutions. Link

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.