Young Reacts #162

This time of the year provides a perfect excuse to reach out to now distant people. I checked it with a few of my former colleagues this week. It felt good to share stories and have a few laughs. Why not reach out to them?


Software Engineering ⚙️

MySQL Threads

Having too many threads in our MySQL DB is one of the top two reasons my team gets paged. So I wanted to understand what spins the threads up in the first place. In short, each DB connection reuses an existing thread or creates one new thread.

Chasing a Hung MySQL Transaction: InnoDB History Length Strikes Back

Growing InnoDB history length is the other top reason for our pages. When a long-running transaction prevents deletions from getting committed, the history length increases, and the DB slows down.

Could Rust be the Future of JavaScript Infrastructure?

This article surveys how JavaScript tools are adopting Rust to be faster.

People ❤️

A New Morality of Attainment (Goodhart’s Law)

I am excited that my org is putting more emphasis on setting success metrics on our projects and products. But I am also aware that metrics can be gamed and give a false sense of correctness. Goodhart’s Law states that

“When a measure becomes a target, it ceases to be a good measure.”

Business 💰

Calling the Shot: the Next Five Years at Riot Games

While I am not interested in working at Riot Games for the lack of diversity and inclusion (this post also calls it out), I did find Riot’s vision for the future compelling:

If we believe in a world where the biggest cinematic universes are rooted in games, the most popular music starts with games (K/DA anyone?), the most thriving sports are esports, and players are the driving force behind the biggest cultural moments, then what should we do over the next five years to get closer to that world?

Open source developer corrupts widely-used libraries, affecting tons of projects

The sustainability of open-source projects (especially, smaller projects with no backing company or foundation) has been questioned many times. This specific drama raises a louder alarm.

Interesting Finds 💡

Amazon Yankee Candle reviews are mirroring the COVID-19 surge — again

I heard about this study during my team chat. The study found a correlation between negative reviews with COVID cases in the US, which I found amusing.

Young Reacts #161

Some find fulfillment from work, and others don’t. The stereotype in tech, especially at startups, is the uber-driven people out to make a name for themselves. But we don’t have to live like that if we prefer not to. Plenty of people do solid work and go home and enjoy their lives outside work, and there is no shame in that. It’s ok to feel disinterests at work.


Software Engineering ⚙️

RFC: Fragment Modularity

Relay folks have pushed for this issue quite a few times, but I never understood the pain points. This GraphQL Spec RFC helped me know why by juxtaposing component-driven development with fragment-driven data fetching.

Bringing Features to Life in Legends of Runeterra

This article is outdated, but I enjoyed reading it, learning how games are developed. I found two points interesting: first, they use LFS to version control binary assets that Git cannot handle, and second, they also employ modern development methodology like feature branch deployments.

Apple’s use of Swift and SwiftUI in iOS 15

This article has some cool stats on how Apple adopted its language and framework, Swift and SwiftUI. Even though Swift is growing rapidly, Apple developers added more modules in Objective-C than in Swift (528 vs. 316), demonstrating the power of inertia and status quo.

People ❤️

New data: What developers look for in future job opportunities

I was surprised that the survey found salary transparency as the second most important factor for employers. I suspect that that’s another way for the developers to say they feel underpaid. I am curious how many decide on that factor.

Communities of Practice

Communities of Practice are similar to guilds that I shared a few issues ago. I found this article insightful as it defined the lifecycle of the communities, complete with shutting down. All good things have an end.

Problematic employers in tech

The author says

people choose to work for companies for many reasons, reasons that an outside observer may not be aware of (nor is it any of their damned business anyway).

While it is simple to argue this way, this position reminds me of Adolf Eichmann. I am not equating working at a tech company with war crimes. But there are shades of gray.

Young Reacts #160

Happy new year 🎊! Even though my holiday vacation felt short, I am excited to accomplish the goals I’ve set for 2022. My wife and I will start looking to buy our first home and adopt a second cat. Professionally, I will learn how to scale backend systems and invest more in my network. What are you excited to accomplish this year?

Happy new year from our cat Mari to you all 🎊

Software Engineering ⚙️

Where do you put spacing on design system components?

I wondered why more websites don’t use spacer divs to manage their margins. The author compares it to the old table-based layout, which instantly made me realize spacer divs add clutters with no semantic meanings.

Patch fixing critical Log4J 0-day has its own vulnerability that’s under exploit

This issue is already fixed but serves as a good reminder that security is a never-ending issue.

People ❤️

I feel stuck when a decision is not a two-way-door decision and involves much uncertainty. Such choices are whether to buy a home, pursue a specific career, and so on. I can see that there are times when I need to take that leap of faith, but I am still scared.

Five takeaways from looking for a new senior role in tech

The author defines “senior” as the following in this article:

executive roles for small companies (I would say fewer than 50 engineers) or Vice President of Engineering and above for mid-sized (say 50-500 engineers), or Director and above for larger organizations (500+).

I enjoyed reading about how job searching is like at this level.

Business 💰

IEEE Spectrum’s biggest semiconductor headlines of 2021

We never worried about new cars’ or Xbox’s availabilities before COVID. Now, money can’t buy these things due to chip shortages. That’s just one of the many ways how semiconductor industry impacted our lives in 2021.

NYC Just Passed a Law Requiring Employers to Post Salary Ranges in Job Ads. There’s Actually an Upside

There is a similar law in Colorado, but this law is a bit more limited in scope. This law only applies to roles in NYC employed by employers in NYC. I wonder if some companies will move their HQs to avoid following this law.

Interesting Finds 💡

Mise en Place Writing

Writing more is such a difficult thing to do. The author suggests separating generating ideas (he calls it “pre-writing”) from writing itself. I am going to give that a go this year.

The Return of the Urban Firestorm

A fire burnt down more than a thousand homes last week in Colorado. A climate scientist talks about how we all try to find a haven from the changing climate when there isn’t any.

Young Reacts #159

As I plan for the next year, I’ve been contemplating my contributions at work and found two significant deficiencies: insufficient technical expertise and lacking business/product context. Even though I can rely on engineers and product partners in these areas, I want to understand my team’s work in more detail. After the holidays, I will reach out to my colleagues and create a plan to build more expertise there. In the meantime, I started taking an entry-level SQL class.


Software Engineering ⚙️

Star Schema vs. Snowflake Schema

Based on my rudimentary understanding of MySQL, I believed that all data should be normalized. But this article taught me that normalization makes queries more expensive by requiring more joins and that some denormalization may be preferred depending on the use cases.

Why Vitest

Jest has been the defacto standard to test Javascript for many years since it has everything you need with sensible defaults. But it’s built with the assumption that Javascript is bundled, which is no longer true thanks to Snowpack and Vite, which uses native ESM in browsers. Vitest takes advantage of this new module paradigm.

Introducing fuite: a tool for finding memory leaks in web apps

I found this tool intriguing but not too valuable. All web apps I worked on mainly suffered from slow APIs or sluggish rendering. In addition, they were short-lived, so some memory leaks didn’t hurt them. It may be helpful if you are working on work tools like Figma, Slack, or Google Sheets.

Building a Service Mesh with Envoy

My team recently migrated to Envoy, so I wanted to learn more about how it fits the rest of the tooling.

People ❤️

Time management for makers

When meetings keep getting thrown at you, it isn’t easy to progress on significant projects. The article proposes that we allocate our time based on priorities in advance. For example, my allocation could look like this:

  • 30-40% Team management (preparing for and conducting 1:1s, planning growth conversations, hiring, etc.)
  • 20% Planning and delivery (setting the goals, shaping upcoming projects, managing the scrum process, etc.)
  • 20% Context gathering (meeting stakeholders, reading documents, etc.)
  • 20% Buffer time (emergency meetings, extracurriculars, etc.)

Onboarding a product manager – do’s and don’ts in the first few weeks

As I thought about how best to learn business and product context, I started reading how product managers get onboarded. I realized that I hadn’t spent much time with my team’s product yet.

Cool things 😎

Guidelines for Submitting Unicode® Emoji Proposals: Evidence of Frequency

It was surprising to read that a screenshot of a Google Trends page could show the need for a proposed emoji.

You need to supply screenshots of each result for each of the methods listed below: Google Search, Bing Search, Google Video Search, Google Trends (Web Search), and Google Trends (Image Search). Trends screenshots must include “elephant” as a comparative search term.

Young Reacts #159

I’ve always been a big fan of ThoughtWorks’s Technology Radar as it succinctly summarizes the technology landscape and helps me discover what I missed. The company recently published a tool to build your radar. While it was first used on technology, I believe it can be used anywhere. So I tried putting a few ideas and technologies that I’ve been tracking on my radar (image below). I found it refreshing to organize my interests using this framework and hope it directs my energy to where I find the most value.


Software Engineering ⚙️

Scaling the Practice of Architecture, Conversationally

As more teams are organized to be independent and self-sufficient, a way to build a cohesive architecture also needs to change. This article recommends several techniques, some of which I’ve seen at Netflix and Square: decision records, architecture advisory forums, architectural principles, and tech radars.

Apollo Federation Contracts

When the entire GraphQL schema is exposed to a 3rd party, the company risks disclosing unfinished or private features. Apollo Federation Contracts are a mechanism to hide sections of schema based on the consumers’ roles.

Reliability as a Product Feature

This article emphasizes that even when we talk about seemingly engineering-driven qualities like reliability, we need to make sure improving reliability will improve our customers’ lives.

Deno joins TC39

Deno, an alternate Javascript runtime, has joined TC39. This news made the project a bit more credible in my eyes.

Measuring Web Performance at Airbnb

I’ve always been dumbfounded by how difficult it is to measure UI performance. So I am grateful that Airbnb published how they measure their website’s performance.

People ❤️

OSS Simple Sabotage Manual, Sections 11, 12

This declassified document from the Second World War describes several ways an individual can sap an organization’s energy. Most of those behaviors still can be found around us, such as “Refer back to matters decided upon at the last meeting and attempt to reopen the question of the advisability of that decision.”

Business 💰

Async, not avatars: Slack’s Stewart Butterfield on the future of work

This quote struck me: “There’s a lot of effort and energy and attention that goes into [physical offices], and relatively little, in most organizations, into the digital side of it, and how we expect people to work together.” Currently, we suffer from constant interruptions when we work digitally, a problem Slack is also part of.

PayPal says ‘buy now, pay later’ volumes surged 400% on Black Friday

Three stories from PayPal’s CEO: first, buy now, pay later services are becoming more popular. Second, PayPal is open to new acquisition opportunities. Third, PayPal is interested in new utilities cryptocurrencies could provide.

Young Reacts #157

I am happy to report that having a weekly plan helped me stay focused and feel more accomplished at the end of the week. I didn’t go through more TODOs than I did the weeks before, but I stayed in a driver’s seat and was able to make meaningful progress. On the downside, I ended up spending about 30 minutes at the end of every day to review and plan the next day, which felt a bit too much. I will continue to refine my planning and share when I think it’s ready.


Software Engineering ⚙️

React Server Components and Remix

Remix is the thing in React community. It’s similar to Relay. Yet, I had difficulty understanding how it was different from the newer frameworks like Next.js. This post, which compares I’dix with React Server Components, made it click in the head. Because Remix knows all data dependencies, its loading behavior (“Fetch, Then Render”) is better than alternatives.

GraphQL @ Yelp Schema Design Guidelines

Yelp published its schema design guideline. All the rules are straightforward. But I’d love to read about how they enforce this, which is the hard part.

Introducing the new Relay compiler

Relay now has a Rust-based compiler to stay performant at Meta’s scale. The post also provides a good overview of the Relay compiler’s goals.

Summary of the AWS Service Event in the Northern Virginia (US-EAST-1) Region

AWS experienced a region-wide outage from a thundering herd phenomenon on Dec. 7. I used to read public postmortems because I could get insights into how these systems are architected. But now, since my team owns public-facing services, I read them to learn how the teams handled the incidents and ran postmortems.

People ❤️

How to rest well

I agree that the timing and the quality of my rest are important. I know how tired I get when I sleep with my lights on. As I plan to rest better, I can’t shake this feeling that my rest just turned into “work.”

Business 💰

Google delays mandatory return to office beyond Jan. 10

Google pushed the return to the office indefinitely because of the new Omicron variant. Even if we believe we can handle this variant, what happens with the next one and another? Permitting long-term remote working is the way to provide stability to the employees.

The Amazon Empire Strikes Back

Before the pandemic, the components of eCommerce—logistics, storefronts, payments—were thought to be commoditized. But the supply chain challenges from the pandemic gave Amazon, which still has a functioning logistics system, an upper hand in attracting more merchants.

Young Reacts #156

Not much from me this week. I hope you enjoy what I read this week!


Software Engineering ⚙️

Belonging to Amazon’s Principal Engineering Community

An interesting look inside Amazon’s staff+ level engineering before 2020.

Would Xcode Cloud replace our current CI/CD solution?

Call me a skeptic, but Apple has been infamous for its lack of support for the developers. Will they care enough to make Xcode Cloud a good CI/CD solution?

People ❤️

Deep Habits: Plan Your Week in Advance

I’ve been slowly habituating work habits to get better as a professional. So far, I’ve made daily habits of giving feedback, asking for feedback, writing daily notes, and so on. I am now trying to add weekly routines. I will practice reviewing and setting up weekly plans every Sunday.

Stop Telling Women They Have Imposter Syndrome

There is usually a systemic explanation for the individuals’ sufferings. When our colleagues share their pains, trust them, and use our privileges to improve the system for all of us.

Why the ‘stay interview’ is the next big trend of the Great Resignation

Regardless of the current job market, we managers owe it to our teams to look after the team members’ needs at work. We can start by asking what they want to achieve at work and how best to support them.

The Church of Interruption

I engage in a conversation by completing the other person’s sentences. It helps me stay focused. But this article made me learn that not everyone is like me, and many don’t appreciate my interruptions.

Business 💰

Your Board of Directors is Probably Going to Fire You

Before one experiences disappointment at work, it’s easy to have this idealized view of the companies and teams like families looking after another. But Corporate America demands that everyone, even the CEOs and the board directors, puts the business above their loyalty to their colleagues.

Young Reacts #154

Since this is Thanksgiving week, here is the list of things I am grateful for these days:

  • My family is all healthy and relatively unimpacted by the ongoing pandemic.
  • My wife and I met and adopted Mari, a lovely and smart black cat.
  • I found an opportunity to manage a team at a reputable company.

Writing about things you are grateful for improves your mental health. What are you thankful for?


Software Engineering ⚙️

Announcing Apollo Federation 2

Apollo Federation 2 is a backward-compatible release of Apollo Federation. The main benefit I see is the additional flexibility in the schema validation that eases modifying and migrating the schema. I recommend reading the docs if you use GraphQL.

The inception of ESLint

ESLint changed how I developed as an engineer and as part of a team. I relied on it every day when I was an engineer to keep the coding style consistent and detect bugs. So I found it interesting to read its origin story.

People ❤️

The great tightrope act

This article spoke to my heart. Management is about finding a balance between many stakeholders: individuals on your team, customers, leadership, and your cross-functional partners. It’s complex, and there are no easy answers.

Business

Technology on the menu for Covid-hit restaurants

Technology helps restaurants not only to get more customers via different channels but also to deal with staff shortages.

How NOT to screw up switching your app to subscriptions

A lesson here is that you shouldn’t renege on the deal with customers. Plus, see what inspired this article.

‘AR Is Where the Real Metaverse Is Going to Happen’

You’d expect a CEO of a company built on AR to push back on VR-based metaverses. He based his argument for AR on his assertion that people evolved to be outside, which I found lacking. Plus, I wasn’t impressed by how he brushed off the interviewer’s concern on security.

Cool stuff 😎

Monitor Your Pet’s Health with Litter Exporter

Now you can monitor your cat’s health like you do your servers.

Young Reacts #153

The reorg had finally happened last Friday. The team memberships are finalized, old meetings canceled, and new ones set up. We still need to tackle issues such as splitting shared responsibilities across the teams. But I am glad that we pulled the trigger. The three-week-long limbo put a lot of stress on the engineers. Now, we can look towards the future.


Software Engineering ⚙️

TC39 proposal for chaining errors

Though I don’t code Javascript anymore, I am still excited about the proposal. It will make error handling far more convenient in Javascript.

Benchling’s double-writes approach to incrementally adopting GraphQL

TheI’velity to find and follow a gradual migration path is the org’s bread and butter of software engineering. This article is a perfect example in a large web application.

People ❤️

On Direction ‘Versus’ Empowerment

Over the last few weeks, I’ve been a bit frustrated that my org’s leaders mandated decisions that I felt the individual teams should own. Reading this article made me realize that different circumstances call for different types of leadership. Still, I should share my frustration with my manager.

How to Create an Individual Development Plan

The growth conversations in my org revolve around upcoming promotions. Managers at Square often use the promotion packet template to track their reports’ progress. That helps prepare for the next promotion cycle, but there is a significant gap: the promotion packet template doesn’t track our growth outside Square’s definition of progress. Therefore, the internal training team recommended creating a development plan for everyone on the team, and I intend to do so.

Why The Status Quo Is So Hard To Change In Engineering Teams

“Learned helplessness” is a powerful concept that I learned from this article. I’ve seen many engineers overlook problems because “that’s just how it is.”

Cool stuff 😎

To the brain, reading computer code is not the same as reading language

I used to say that we should write code as if we were writing prose. This research debunked that. But apparently, it’s not like math either:

Understanding computer code seems to be its own thing. It’s not the same as language, and it’s not the same as math and logic.

Young Reacts #152

I mentioned last week that I hoped to have a less overwhelming week, but it didn’t turn out that way. I had to navigate a personal relationship issue that started long before I joined. It didn’t help that I approached the problem with my own set of biases.

To identify the right thing to do, I sought advice from senior leaders at the company, and they thankfully spared 30 minutes of their days to coach me. By Friday, I was able to provide the needed support to the employee and discuss the plan. I learned that I am prone to my own confirmation biases and am grateful for having the support of more experienced leaders to overcome those biases.


Software Engineering ⚙️

Monitoring Depop

The author argues that we need to monitor the SLA of the third-party services we use, and I agree 100%. If we decide to outsource some pieces of our stack, it’s our responsibility to make sure those pieces work as expected.

How we’re building a production readiness review process at Grafana Labs

I am allergic to approval processes. Giving people full context, autonomy, and accountability over their decisions enables the teams to move faster and keeps the people engaged. However, if the domain is too complex or the decision impacts people outside the decision-making, we need processes to ensure that the right things happen.

People ❤️

Flexible work is the future of work

Instead of moving over to a 4-day workweek, Front has made Friday a “no meeting, no email, no chat” day. I don’t understand the argument for it over a 4-day workweek. But while reading this post, I realized that when we designate “no meeting” anything (Wednesday, afternoon, etc.), we need to mean it. Providing time for deep work is a necessity, not a luxury, to get our work done.

Thriving Team Skills

I need to expand my team to tackle some major projects next year and started thinking about how to create a highly effective team. This list of skills (“Strong cross-functional partner,” “Unique perspective/experience to bring to the team,” etc.) demonstrates that hiring highly technical individuals is not enough.

How To Build an Equitable Communications Practice

Our language shapes how we think. This article has some good tips to be more inclusive in our communication, such as “[u]se language that’s accessible to folks outside of the space and avoid using jargon.”

Business 💸

We Calculated Return On Investment For 30,000 Bachelor’s Degrees. Find Yours.

While I don’t think ROI is the right way to think about the value of our education, the statistics are still eye-opening.