Young Reacts #182

I am back in the US and from vacation. It felt great to disconnect and spend time with my family and friends, some of whom I haven’t seen for almost three years. While the pandemic isn’t over, I am glad we have learned to live with it.

Software Engineering ⚙️

The Away Team Model at Amazon

Square uses a similar away team model where an away team jumps in and works on another team’s code base. My team is a host team for a few away teams and sometimes struggle collaborating with that many away teams. So I found it helpful to read that teams should use the away team model as a last resort.

People ❤️

Problem, Solution, How, and Execution

Rubric to evaluate your product team

We all start in our careers as doers. We are given the instructions and execute them. But as we gain more experiences, we go upstream: how, solution, and, finally, problem. And that growth of work ownership coincides with the increase in work scope, from 1-2 week projects to multi-year strategies.

Not My Job

Even if you are a respected senior leader of a team, you cannot tackle everything. You should choose which problems to focus on, which ones to delegate, and which to let go of.

Business 💰

Metaverse: another cesspool of toxic content

In Meta’s metaverse platform, Horizon World, a group of avatars sexually assaulted a researcher’s avatar. Some may say it’s a human problem, not a technology problem. I used to think that too. But this astute commentary changed my perspective:

If this is a really hard problem to solve at scale, then that means that the technology is not ready to be scaled. Facebook could choose to prioritize the safety of its users from virtual rape and sexual assault and solve that problem before trying to scale the technology. It did not. Misfortune has nothing to do with that decision. (Link)

Cruise can finally charge for driverless robotaxi rides in San Francisco

I remember Cruise’s recruiter telling me in 2018 that they were targeting the commercial launch in 2019. It’s 2022 now. How difficult it must have been to solve both technical and regulatory challenges.

Interesting Finds 💡

AirPods Evolution

This article has CT scanned images of multiple generations of AirPods with some commentaries on design choices. It was interesting to see where Apple placed different sensors.

Young Reacts #181

I will skip the following week’s newsletter as I am traveling to visit my family in Korea. I hope you get some time this summer to recharge as well!

Software Engineering ⚙️

Proposal: GraphQL Composite Schemas Working Group

There have been a lot of movements in the federated GraphQL space. Just recently, Hasura launched its offering (GraphQL Join), and Apollo launched a new major version of its famous Apollo Federation. The proposed GraphQL working group wants to ensure minimum consistency between different federation solutions.

People ❤️

Persistent Models vs. Point-In-Time Goals

Just as there is a hierarchy of executions (company-level vs. team-level), there is a hierarchy of KPIs (north star metrics vs. project-level metrics). When I’ve conflated them in the past, it became frustrating to measure the success of projects because attribution was not easy.

Do We Still Need Teams?

In some past roles, I felt my “team” was not a team but just a group of people who reported to the same manager. Now, I have the vocabulary to describe that group: “co-acting groups.”

Anti-pattern: The Engineering Managers’ Group

This article made me reflect on how often I interact with my peer managers. And the answer is, I don’t really 😅

Business 💰

A Framework for Navigating Down Markets

I found some techniques helpful in evaluating startups: valuation multiples (valuation divided by annual revenue) and burn multiples (cash burn divided by net revenue add). If you are talking to startups, ask them to share the necessary information (revenue, burn rate, etc.) to get these.

Interesting Finds 💡

Bionic Reading

Bionic reading is a clever way to highlight the essential parts of words so that our brains can read texts faster. I am curious how it will be to read blog posts with this when the extension launches. The following is the first paragraph of my previous post with bionic reading. How does it feel?

My team experienced an outage this week. All outages are enlightening, but this one stood out as it cut across the systems owned by two other teams. One team launched a feature that dramatically increased the demand on our system, which led to an issue with the other team’s system. When the other team resolved that issue, my team’s system experienced a sudden increase in demand, falling behind the requests.

Uncertainty Saves Lives – the Peltzman Effect

Peltzman Effect, or Risk Compensation, is a theory that people behave more dangerously when they feel safer. You can see that from driving and dealing with COVID.

Young Reacts #180

My team experienced an outage this week. All outages are enlightening, but this one stood out as it cut across the systems owned by two other teams. One team launched a feature that dramatically increased the demand on our system, which led to an issue with the other team’s system. When the other team resolved that issue, my team’s system experienced a sudden increase in demand, falling behind the requests.

We are still dealing with the aftermath of the incident. But I look forward to learning to provide better visibility into other teams’ projects and set up clear expectations for what we can support.

Photo by Shubham Dhage on Unsplash

Software Engineering ⚙️

Refactoring and Optimizing a High Traffic API at PayPal

This article provides an overview of the team’s optimization effort. I see five different activities here:

  1. Prioritizing a problem: The team’s service violated SLA and provided a poor customer experience.
  2. Setting up key metrics: The service latency was used to measure the progress.
  3. Designing a solution: The team found bottlenecks with the sequential loading of resources.
  4. Building the solution: The team implemented a couple of optimization techniques.
  5. Measuring the change: The latency metrics were improved across the board.

I liked this article because it shows the structure of how we do projects everywhere. But not all teams are good at all these activities. My team is still learning how to set up metrics. Our prioritization could be better, too. What about your team?

Handling Incidents Mindfully 🧘🏽 — Part 1: Acceptance

Incidents are stressful. As an owner of a system that’s not meeting customer expectations, we feel like we are under attack. From that defensive perspective, it’s tempting to set up more red tapes to prevent more incidents. But we need to accept that when we change systems or customers change their behaviors, incidents will happen.

People ❤️

Why Success Is Often Elusive at the Highest Echelons

Starting a new job is always tricky. But it gets progressively more challenging because the success looks wildly different from one role to the next. The article talks about a few failure modes to watch out for: inability to dream, failure to execute, lack of support network, lack of context, and cultural incompatibility.

Having Career Conversations

This article was a shocker because “where do you see yourself in a few years” is my favorite 1-1 question. I hadn’t considered that the other person might worry about how I will perceive their answer.

Business 💰

YC advises founders to ‘plan for the worst’ amid market teardown

YC sent out a cautionary memo to its portfolio companies. It says, “it’s your responsibility to ensure your company will survive if you cannot raise money for the next 24 months.” Two years is a long time.

A third straight week of tech layoffs in the books

Tech companies across the stages are announcing layoffs, both big and small. This is an important time to remember that “layoffs don’t happen to companies, they happen to people.”

Young Reacts #179

I want to give a big shoutout to my wife, who just finished her graduate study in Master of Information Management and Systems at UC Berkeley. She started her study during the pandemic but managed to make the most of the two years. I am proud of you, and I will continue to be your biggest supporter.

Photo by Emmanuel Offei on Unsplash

Software Engineering ⚙️

Why we’ve ditched scrum sprints (and you should too)

I try to refine my perspectives by reading articles counter to my current beliefs. I read this one as I am learning to do scrum properly. I would have agreed with the piece more if I had read it before seeing it work at my org. But now, I found a team can address said criticisms by focusing on the spirit of scrum and adding some extra project management.

This article made me realize how great it is for product and engineering leadership to agree to the same process. I don’t have to convince my peers to treat scrum seriously as their boss already cares deeply about scrum.

JavaScript Containers

Written by the creator of Node and Deno, the article asserts that JavaScript will replace Bash, and JavaScript containers will simplify most of our servers.

People ❤️

Airbnb’s design for employees to live and work anywhere

Airbnb announced that it would let its employees live and work anywhere, albeit with some travels for in-person gatherings.

Business 💰

The great VC pullback of 2022

There are some chatters about a slowdown in the tech world. The public stocks have crashed, and, the author suggests, the crash is making VCs slow down their investments.

The crypto crash, explained

I didn’t realize that crypto also crashed more than the stock market—a lot of uncertainties in the industry.

Young Reacts #178

Another team merged with my team this week, and now I have nine engineers on my team. It’s close to the limit of what I can support, and I do worry about the burden on me. But I am still very excited. When we had two teams, these nine engineers, who work on the same system, had to find times outside the regular meetings to talk (this issue is more pronounced because we all work remotely and there is less chance of serendipitous chats). It eventually became too hard for us to stay aligned on critical changes or ongoing outages. Now, with everyone on the same team and sharing the same team ceremonies, these engineers will have plenty of opportunities to coordinate and make decisions.

While I am happy about this change, I also consider how I could have convinced the leadership better. This merger happened as the merged team’s manager decided to step down as a manager, allowing us to reevaluate. But I saw this coordination problem before and brought it up with the leadership a few times. I failed to convince them then. What would have made my case stronger?

Photo by Lance Grandahl on Unsplash

Software Engineering ⚙️

Stabilize, Modularize, Modernize: Scaling Slack’s Mobile Codebases

Slack published a three-part series on their journey to improve their mobile codebases (both iOS and Android). I liked this first part because it describes how to recognize the problem, sell the idea to the leadership, and create a concrete plan to execute.

Should UX be part of the Scrum Team?

Developers get blocked all the time: unclear requirements, broken APIs, missing designs, etc. This article opened my mind to the idea that, maybe, we should venture outside our comfort zones and unblock ourselves.

OnCallogy Sessions

My team spends a significant amount of time on oncall but does not discuss how we can make our oncall experiences better. This article is a call to action to spend time together to make improvements.

Storybook Performance: Vite vs Webpack

I wouldn’t have guessed that the cold start time for Vite was more than double Webpack’s since Vite is so famous for its performance.

People ❤️

The Google Incentive Mismatch: Problems with Promotion-Oriented Cultures

When a promotion committee starts making promotion decisions, engineers start focusing on the work that will make their promo packets stronger. That’s why everyone wants to lead something at large companies, often at the customers’ expense.

Why We’re Creating Language to Hide from Tech’s Censorship Systems

Both human and algorithmic moderation affects how we express ourselves on platforms. We may leave for another platform or change our behaviors to fit in. It’s a digital version of the panopticon.

Business 💰

SafeGraph is under fire for selling abortion data. Its CEO says more changes are coming.

I find this article notable on two levels: first, this is yet another example of companies getting pulled into politics. Second, privacy and transparency are often put at odds against each other.

Young Reacts #177

I tested positive for COVID last week. Thankfully, my symptoms have been relatively minor, and I was able to take most of last week off to recover. While it’s unfortunate that I got COVID, I am glad that I got it after the vaccines and the treatment became available. Many weren’t as fortunate.

Don’t forget to wash your hands!

Software Engineering ⚙️

What is architecture?

As I am hosting an offsite to set our technology vision and roadmap, I keep thinking about how best to set up the discussion. My team has suffered from misalignment since we all had different ideas on evolving our systems. I am using this offsite to create a unified view. And I found this definition of architecture captures my intent for this offsite: “the shared understanding that the expert developers have of the system design.”

Slack’s Incident on 2-22-22

Here comes another fun incident story, this time from Slack. When its DB became overloaded due to increased cache misses, the overload created further pressure on the DB since the overloaded DB couldn’t populate the cache successfully, which led to an eventual outage.


Jest Preview Demo

This neat library visualizes what your jest test script does. Especially when the tested component is complex, it gets more difficult to verify if your user events (clicks, types, etc.) are firing at the right DOM element. This library would have saved me a couple of hours on my bad days.

People ❤️

Managing Your Manager

This article asks six questions, each placing your manager on a spectrum and suggesting how best to work with your manager. They start with “why does your manager manage?” and end with “In what phase does your manager prefer to see your work?” I found it helpful to put not only my manager but myself on this scale and see if I have set up my expectations correctly both up and down the reporting structure.

Business 💰

Twitter accepts Elon Musk’s $44B acquisition offer

This week, there was lots of interesting business news, but this tops the list. I am quite shocked that Twitter accepted Musk’s offer. What will this mean for Twitter’s users (especially the banned users)? What about its business? What about its employees?

Beyond Aggregation: Amazon as a Service

Fulfillment of customer orders continues to be a challenge for online merchants, especially when Amazon sets the bar so high. Now, Amazon is offering its logistics network to merchants not on on one condition: these merchants need to use Amazon’s payment solution. Ben Thompson draws the parallel between AWS and this new service.

Young Reacts #176

When it rains, it pours. A lot is going on in my life, and it’s been challenging to get through the past week. But with the support of people around me, I feel a bit better at the moment.

One particularly impactful piece of advice was on how to get out of my head and see things more objectively. I told them a story about how I was struggling, and they first listened carefully and suggested I list all evidence for and against that story. That listing technique made me see that it’s not all doom and gloom, and I’ve made (possibly wrong) assumptions about other people’s actions. While the doom story is still in my head, I know now how to move forward from this story.

Photo by Etienne Girardet on Unsplash

Software Engineering ⚙️

Product Goal & Sprint Goals – A Simple Example and Definition of Done – Where to Start?

Even though I was part of a “Scrum” team for most of my 10-year career, I never learned how a good Scrum team behaves. I got a Scrum training through work and started learning how Scrum is supposed to work. I am usually skeptical of these types of classes from consultants, but I am excited to learn this time.

How we aligned 200 teams to monitor services with SLOs (Part 1, Part 2)

A multi-year program to change how people do their work takes courage, planning, and grit. My team is launching such a program and could learn a lot from this two-part series.

Using Min-Mid-Max Principles for iOS Design

I don’t work with the UI as much anymore. But testing the UI against the known minimum and maximum screen sizes would have saved a lot of my time testing against all different sizes.

People ❤️

What’s The Most Difficult CEO Skill? Managing Your Own Psychology

Not that my job is as tricky as a CEO’s. But I still struggle to maintain a balanced mental picture of my performance. Caring enough to do my best work but not personalizing failures has been challenging.

Business 💰

Employee-VC Alignment

When we look to join a new startup, a sky-high valuation means the company has to work much harder to make our equity 10x valuable. On the other hand, as current employees, the new enormous valuation incentivizes us to stay since our equity is now worth much more. So it’s not as simple as this article suggests; the more tempered valuation may help recruit but hurt retention.

Success and Failure at Pebble

I once owned a Pebble too. I found it interesting to read how Pebble rose and fell from the founder’s perspective. This sentence stuck with me: “we shifted from making something we knew people wanted, to making an ill-defined product that we hoped people wanted.” How can we verify our assumptions before investing months of our lives?

Young Reacts #175

I heard through the grapevine that Netflix plans to introduce engineering levels like those found at Netflix has not had levels for its engineers for more than a decade. The lack of leveling system has helped the best ideas, not HiPPO, to win but made it frustrating for managers and engineers to discuss performance, growth, and compensation. Managers sometimes end up opting for another company’s engineering levels, which is less than ideal.

As the industry move to the more explicit leveling system and engineers’ expectations change, Netflix has to change. I only hope my former stunning colleagues won’t get too distracted and disappointed when their new levels don’t meet their expectations.

Software Engineering ⚙️

Update on the Atlassian outage affecting some customers

Incidents happen all the time, and some are more difficult than others. But as Viktor Frankl said, we can “choose how [we] will respond to the situation.” Atlassian, unfortunately, failed this test. Their lack of clear communication to their customers during a week-long outage (now two-week-long) damaged their credibility enormously.

Announcing Rome Formatter

Prettier has been one of my must-have tools when I develop JS apps. It speeds up my development and my team’s by removing the shallow discussions around cosmetics. Rome, the full-stack Rust-based JS toolchain project, came up with a Rust-based JS formatter, which they claim to be 9-12x faster.

Experimental Client-Controlled Nullability in Apollo iOS

Client Controlled Nullability, the GraphQL proposal I collaborated on when I was at Netflix, was finally shipped as an experimental feature in a client library. Kudos to Alex Reilly, who drove the proposal to this state despite the frustratingly slow decision-making at the GraphQL working group.

Decoding small QR codes by hand

QR codes became universal in the US after the pandemic started. So I got curious about how to decode QR codes and found this excellent guide.

People ❤️

Managing Yourself: Turn the Job You Have into the Job You Want

I tend to treat my role as static and given. So I found another job when I wasn’t happy with my current one. This article made me realize that I have more agency than I thought before. It never hurts to try.

Motivating Developers to Care About Documentation

This article is a valuable guide to driving cultural changes. How can we make people care about new things? We can start by asking why they matter, making the new desired behaviors easy, and coaching and reinforcing them continuously.

Business 💰

Twitter board adopts ‘poison pill’ after Musk’s $43 billion bid to buy company

Last week, the biggest tech news was Elon Musk’s offer to buy Twitter. The Twitter board is refusing to sell for now.

Young Reacts #174

The most productive work we can do is canceling work found to be unproductive. This may be counterintuitive as we start our careers as doers (design, sales, programming, etc.). But the more senior we grow, the more critical our ability to understand the value becomes. What projects or processes have you canceled at work?

Software Engineering ⚙️

Why we don’t use a staging environment

I like reading about contrarian posts like this as they challenge me to justify my ideas. A monolith can operate without a staging environment with good enough continuous integration and deployment process. However, once we break down the monolith into multiple services, we need a stable environment to test our local changes against.

Measuring Latency Overhead with Own Time

Metrics cut through the complexity of real life into a few numbers and enable actions. This “own time” metric is an excellent example of that. The author created this metric to isolate performance issues owned by their team. This metric then provided actionable insights to improve the performance of their system.

People ❤️

The oldest park ranger, who told the stories of Black women in WWII, retires at 100

Do you ever feel like it’s too late in your career? This woman started her park ranger career at 85 and is now retiring at 100. She worked more years after 85 than I have worked since 24. Her example gives me the courage to try new things.

The startup CTO growth cycle

As an executive of a company, a CTO’s role evolves with the company. Then again, there is a question of whether the person in the CTO role is willing and able to grow with the company.

Business 💰

The Scoop: Inside Fast’s Rapid Collapse

Fast is one of the more fascinating startup failure stories in recent memories. Many inside the company saw the warning signs (measly $600k revenue, for example) but couldn’t connect the dots or didn’t have the courage to predict the eventual shutdown.

Proposed bill would shorten California workweek to 32 hours. Here’s what you need to know

The bill proposes to reduce the workweek to 32 hours for those who work for employers with more than 500 employees. I don’t think this bill will become law, but I am still surprised that this 4-day workweek has gained enough traction to have a bill.

Young Reacts #173

It was my birthday yesterday, and I enjoyed some excellent quiet time with my wife. In the past, I would have gone out and got drunk. But I learned that I prefer relaxing, quiet time. As I grow older, I’ve become clearer about what I cherish the most and start caring less about what others say. I am still learning more about myself but like the wiser me.

Photo by Lidya Nada on Unsplash

Software Engineering ⚙️

React 18.0

A year and a half after React 17, the much-hyped React 18 is here. There are significant architectural changes (concurrent rendering), but the migration seems safe and straightforward in a typical React fashion.

Why Don’t You Use …

The critical insight of the article is that the real reasons for companies’ technology choices may be different from the official reasons.

People ❤️

The Five Conditions for Improvement

Identifying our different assumptions gets us genuinely see eye to eye. Even though we agree that there is a problem, we may have other priorities. Even if we agree with the priorities, we may have different plans to address them.

Engineering Leadership Lessons with Zapier’s Co-Founder & CTO

I’ve been contacted a few times by early-stage companies (<10 employees) since I changed one of my previous titles as “Head of Engineering.” I do not have an experience with those small companies, so I read about how engineering leadership evolves as startups evolve.

Business 💰

Penny Wise and Cloud Foolish

Google Cloud increased its pricing or started charging for many key functionalities (data replication and data operations in multi-region). This move could force rearchitecture projects on its current customers and scare potential customers away from Google Cloud.

Spotify and Google Announce User Choice Billing

Google allows Spotify to place its billing system next to Google’s within Spotify’s Android app, contrary to its policy thus far. I wonder if Google will grant this privilege to more companies, and, if so, to what types of companies (sizes, industries, countries, etc.).