Young Reacts #240

Software Engineering ⚙️

Relay-style GraphQL

Since I only have experience with Apollo GraphQL, I enjoyed learning from this heavily biased article for Relay. Even though Relay has a steeper learning curve than vanilla GraphQL, I see the benefit of defining the data requirements in the component, which reduces type errors. I will weigh between Apollo and Relay when I adopt GraphQL in my next project.

Tech debt: Reclaiming tech equity

Tech debt tends to mean anything developers want it to mean. That lax definition makes it difficult to have productive conversations with leadership and product management. So I loved the idea of a shared definition. But one question I still have after reading this article is how one can measure the cost of tech debt.

Keyboard-navigable JavaScript widgets

I believe that keyboard interactions are core to empowering heavy users. Moreso, if the app is for work. I have leaned on the shared library team to provide a reasonable default behavior, but I loved learning how to customize keyboard behaviors further.

People ❤️

The Power of Proximity to Coworkers: Training for Tomorrow or Productivity Today?

This paper finds that working from home boosts senior engineers’ productivity but hampers junior engineers’ learning. That aligns with my belief that any policy or technology has tradeoffs.

Business 💰

How a California vote on self-driving taxis could alter the future of AI

The California state government will decide whether self-driving taxis can operate 24/7 in San Francisco. I found this debate interesting because the state government is happy to position California as the innovation center. In contrast, the city government, which needs to deal with self-driving taxis, balks at the idea.

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 #238

When I started working on my current project at work, I noticed that my colleagues kept saying, “The leadership decided A” or “The higher-ups preferred B” when discussing scope changes. I was ok with the scope changes as we were still early in the process, but not with the lack of specificity and accountability in our language. I found that these vague terms, such as “the leadership” or “the higher-ups,” did not allow feedback or further clarifications because it was unclear who made the decisions.

I pushed my colleagues to be explicit and specific when we discussed decisions. Who made what decision and, ideally, why? I also asked for my manager’s support in persuading the VPs and directors to be more explicit when they want something. After a few weeks of asking for more specifics, my team now knows who made what decisions and, sometimes, why—getting why needs a lot more work, unfortunately.


Software Engineering ⚙️

TypeChat

TypeChat is a library from Microsoft that adds a translation layer between a natural language interface and an API so that you can leverage the existing API. The following diagram is a simplified example of how TypeChat can augment an API for a coffee shop.

Loading & progress indicators — UI Components series

I am working on a complex form with data loading from a few different APIs and have been thinking about how best to display the loading states. This article provided a list of principles for me to consider. My biggest eye-opener was that a UI should use determinate loaders to show progress when the wait time is longer than 3 seconds.

Crockford on the JSON License

The author of the JSON spec talks about how JSON ends up with a license that says, “The Software shall be used for Good, not Evil.” Its vagueness must have annoyed a lot of lawyers. Talking about weird license clauses, Meta’s Llama 2 has a license that prevents companies with more than 700 million MAU from using it.

People ❤️

Chesterton’s Fence

Chesterton’s Fence is a shorthand expression that we should understand past decisions before deciding anew. In engineering, it’s easy but a bad idea to discard the previous codebase wholly. If the old code is difficult to understand, it’s likely because the domain is complex. There is no guarantee that we will get the architecture right this time, not to mention remember all these undocumented bug fixes and features.

Business 💰

North American Startup Funding Fell Across All Stages In Q2

With no tech IPOs, private tech investment also stays suppressed. Venture capital funding in North America fell to $31.8 billion in the second quarter of 2023, the lowest quarterly total in more than three years.

The EU mandates user-replaceable smartphone batteries by 2027

The EU’s mandate is to reduce and recycle battery waste. I am curious if companies will develop separate phones for the EU or make all their phones have user-replaceable batteries.

Young Reacts #237

I had a chance to do a Q&A session with students from my alma mater high school, last week. Understandably, many asked about how they can boost their confidence when their peers seem to achieve so many things effortlessly.

A few years ago, I would have answered that there are also many people their age that cannot do what they do. So they shouldn’t feel so threatened. But now, I have a different answer.

It’s a losing battle to compare myself to anyone. There will always be anyone who seems to have a more successful career, have more friends, or overall have a happier life. We have to establish self-worth only from within ourselves, or else it sits on a shaky foundation. My ego still shrinks a little whenever I read about a success story, but I keep my head high as I am happy with my life.


Software Engineering ⚙️

The Concise TypeScript Book

The hardest aspect of TypeScript for me is its terminology. When I need to describe a behavior or look for reference material, I am often at a loss. That’s why I enjoy skimming through books like this to refresh my memory. If you want to understand TypeScript’s type-checking better, I recommend reading the chapter Exploring the Type System.

Decentralizing Social Interactions with ActivityPub

Meta’s Threads plans to adopt the decentralized social networking protocol called ActivityPub, so I wanted to understand how the protocol worked. It basically is a pub-sub system that enables a user of one app to send messages to a user of another app without anyone leaving their apps.

People ❤️

On Becoming a VP of Engineering

I always appreciate the thoughtful materials coming out of Honeycomb. This one from their VP of Engineering is no different. It talks about how she became a VP of engineering, what she thinks of her responsibilities, and how she has adjusted to her role.

Alignment > Autonomy

I am 100% behind the idea that “it’s easier to measure and feel high autonomy than it is to measure high alignment.” Even at Netflix, where “highly aligned, loosely coupled” is preached, we experienced some failure cases where individual product teams prioritized autonomy and built for their short-term gains. That was because bad alignment takes a long time to take its toll, and by that time, those who made those lousy trade-offs have already moved on and won’t face the accountability.

Fresh Work 80/15/5

Two beliefs I always share with my team are that we are paid so much for our judgment, so we need to use them, and that our skills depreciate over time, so we need to keep learning. The time split the author suggests is a good way to act on the beliefs: 80% to do the expected work, 15% to do the exploratory work, and 5% to fulfill curiosity.

Business 💰

Microsoft wins FTC fight to buy Activision Blizzard

A year and a half after the acquisition announcement, the acquisition is finally in sight as the UK regulatory body is also open to approving the deal. I look forward to how Blizzard will be transformed after the acquisition.

Young Reacts #236

It’s been three months since I joined The Trade Desk. Looking back, I’ve led significant work around our tooling and built good working relationships. But I also struggle to actively identify and learn what I don’t know about technology and business. I will strive to accumulate knowledge per this article in the coming months.

Software Engineering ⚙️Incident Metrics in SRE

This seminal report upends our understanding of the famous Mean Time To Recover (MTTR) metric. It shows that, due to the positive skewness of incident lengths, such summary metrics are unreliable and, thus, useless as a tool to make decisions. I expected median or percentile-based metrics to be more reliable, but the author proves they are no better.

CommonJS is hurting JavaScript

I always struggled when I tried to write and publish working ECMAScript (vs. CommonJS) modules. I thought it was due to my ignorance, but knowing that others also struggle because of poor interoperability was reassuring.

Jest with ECMAScript Modules

As I read about CJS and ES modules, I learned that mocking ES modules is difficult because static import statements in the ES module system are evaluated before the rest of the code, which prevents other code from changing the loaded modules. So if I want to mock the dependency, I should use dynamic import in the tested module, which sounds painful.

People ❤️Simplify your Strategic Leadership Framework With These Four Components

The author’s four components to lead an organization are:

  • Direction — Where are we heading?Guiding Policy— How do we make decisions?Structured Goals — What do we focus on right now?Performance — How do we measure progress?

Even though I no longer lead a team, I see I can apply them to my projects to give more autonomy to my colleagues. At a project level, the direction is the problem statement; the guiding policy is our ways of working; the structured goals are project milestones; and performance is the KPIs.

Scarred for the Rest of My Career?

This research studied the relationship between NBA basketball players’ performance and their college coaches’ abusive leadership. It found that the adverse effect of abusive leadership lingers even after the relationship has ended. Just like any traumas, work abuses are not something one can just overcome overnight.

How I do (and don’t) prepare a talk for a tech conference

A staff engineer’s primary tool is influence, where the ability to communicate an idea is critical. Even though the blog post is mostly about public speaking, the general principle to focus on what I want the audience to take away still holds.

Business 💰Sony’s confidential PlayStation secrets just spilled because of a Sharpie

Some interesting numbers on AAA games were leaked from Sony’s statements about Microsoft’s Activision acquisition: over $200 million to develop The Last of Us Part II, Call of Duty earning more than $1.5 billion globally on PlayStation alone.

Young Reacts #235

Last Tuesday, I said something in a meeting that I couldn’t stop regretting. I worried that I sounded like I was publicly questioning my colleague’s decision. I was so worried that I sent them an apology the next day.

It turns out, however, that they didn’t take offense at all. They told me they understood my question and appreciated my honesty. I was relieved but also realized I had been too self-conscious.

I am a conscientious person by nature. But sometimes, my conscientiousness can get the best of me. I can overthink things and worry about what other people think of me. But that’s the tradeoff I am willing to take for being conscientious, and I will be a bit more courageous to share my worries with others.


Software Engineering ⚙️

The Pyramid of Alerting

Just as we have the test pyramid, the author proposes the pyramid of alerting. Even though the author is focused on data processing, their idea to create tiers between alerts is worth exploring. We can have three levels of alerts: operational, workflow-focused, and business outcome-focused alerting:

  • Operational alerting focuses on the throughput and error rates of APIs and user interactions.
  • Workflow-based alerting focuses on known use cases. (ex: session error-free rate, task completion rate)
  • Business-outcome alerting focuses on business KPI (ex: Netflix’s streaming per second, Stripe’s payment processing volume)

MDN’s new “ai explain” button

MDN Web Docs faced a backlash against a generative ai-based feature to explain examples on its docs. Soon after, the feature was rolled back, but now it looks like it will be enabled again with a disclaimer. While I think the reactions are overblown, I agree that a reference site should not use generative ai, which is prone to hallucinations.

Background Removal in the Browser

This newly open-sourced library lets you remove an image’s background using ML in a browser (see demo). This results from various technical advances: WebAssembly to run low-level code in a browser and a small enough machine learning model to run in a limited environment.

People ❤️

28 Questions to Ask Your Boss in Your One-on-Ones

Even if I won’t use these questions verbatim, I liked having the list of themes to focus on during my 1:1. This will remind me to focus more on offering support to my manager. Here are the themes from the article.

  • Ask for Guidance and Input
  • Clarify Priorities and Expectations
  • Align with the Organization and Its Strategy
  • Seek Growth Opportunities and Career Advancement
  • Get Feedback on Your Performance
  • Build a Relationship
  • Offer Support

Quivr – Your Second Brain, Empowered by Generative AI

Ever since I read Knowledge work should accrete, I keep thinking about ways to build on my learnings. I wonder if a solution like Quivr will be the answer, which will consume all my content and provide a ChatGPT-like interface.

Business 💰

Did Google mislead advertisers about TrueView skippable in-stream ads for the past three years?

TrueView is Google’s video ad platform for advertising both in and out of YouTube. This report finds that over 70% of ad spend was spent on inventory below YouTube’s quality standards. Google, of course, is refuting the claim, but it’s hard to trust them when they don’t allow independent validations based on independently collected data.

Young Reacts #234

I can’t believe we are already through the first half of the year. How is your plan for the year going so far?


Software Engineering ⚙️

Design without business is just decoration

I’ve learned to focus on customer problems, not engineering problems, and this talk gave me a glimpse of what’s next. Steve suggests that we understand our companies’ business goals, financials, and leadership, as well as those of our competitors. My favorite quote from the talk:

“All of us are business people who speak through our disciplines.”

Mother of All Outages

I haven’t experienced a dumpster fire like this before, but I have been in quite stressful situations during my ten years of working. If you are new to the industry and experiencing some wild things (reality distortions, death marches, hot-tempered execs, etc.), please remember that’s not normal, and your team may be run much worse than others. Not that any place is perfect.

People ❤️

How to make hard decisions

I knew about the A even over B statement to make a tradeoff decision clear, but I haven’t used it to help me operate. I also like the idea of setting a date to revisit the tradeoff.

The crises won’t stop coming. Radical acceptance is the key to coping.

There are far too many crises in the world: climate change, COVID, housing crisis, and more. Their scales are so massive that they feel outside my influence. So I’ve avoided thinking about them. This article describes another way to process my emotions about the crises actively. I am unsure if it will help me, but I wanted to share it with you.

Business 💰

EV maker Rivian to adopt Tesla’s charging standard

I was surprised that Tesla allowed other automakers to adopt its charging standard. One of Tesla’s selling points was its massive and convenient charging network that no other makers have managed to build. Tesla must have concluded that this network would no longer offer a competitive edge and it’s more capital efficient to have more customers for its charging stations.

Tech hiring up across economy while tech sector employment slips, CompTIA analysis shows

Despite some high-profile layoffs, the tech sector’s unemployment rate remained low at 2% in May.

Young Reacts #233

I really enjoyed all three articles on People I am sharing in this issue. Don’t miss them!


Software Engineering ⚙️

DeepMind AI creates algorithms that sort data faster than those built by people

The same technique that built AlphaZero, an AI that plays Chess and Go, created a faster algorithm than the algorithms by humans. When both the input and the success metric are clear, AI will triumph over humans.

Survey reveals AI’s impact on the developer experience

Aside from the widespread impact of AI on how we develop (92% of developers have used AI coding tools), the survey also found that the slow build and test time was a big detractor of developer experience.

People ❤️

Knowledge work should accrete

Since 2017, I’ve read 2,700 articles on various topics, ranging from compensation philosophy to Javascript build tools. What I think about these days is how I can make my learning permanent and change my behaviors for the better. This article suggests that I build my knowledge base and continuously update it.

You should’ve asked

When we say, “You should’ve asked,” or other variations like “What can I do?” our words rid us of the ownership of that problem. Sometimes, it’s really not our problem, and that’s ok. But other times, we put an unfair burden on our families, friends, and colleagues to do more than their fair share.

Identify your controls

As we move to different roles and organizations, some of our MOs, memos, private conversations, etc., no longer work. Their effectiveness depends on culture, role expectations, people, and processes. For example, I now use more project-level controls (decision docs, milestones, etc.) than team-level controls (standups, retrospectives, etc.). I also maintain a closer partnership with my lead than before. How have you changed your tactics as you changed roles?

Business 💰

Media boxed out

I knew Google and Meta were big, but I didn’t expect them to take almost half of the global ad spend. And shockingly, the top 25 companies take 75% of global ad spend.

Young Reacts #232

I don’t often share videos, but please do watch Design for spatial input and Apple’s other spatial design-related videos. They are truly eye-opening.


Software Engineering ⚙️

Design for spatial input

I’ve always believed that this combination of a two-dimensional screen, a mouse, and a keyboard won’t be the last user interface I will build for. This WWDC video gave me a glimpse of how that future UI may look.

Client Controlled Nullability – Decision Log

The drivers for this GraphQL proposal did a great job of summarizing and providing background on key decisions. I will keep this in my toolbox for large projects that may be long-running or involve many people. This should help save time and energy when a newcomer wants to reopen a resolved issue.

How To Get Buy-in for DevEx Initiatives

This article has many powerful ideas on how engineering should position their investments to their partners. I will list a few here:

  • “The single most impactful variable of whether you are trustworthy is your “self-orientation”—what others believe your motives to be.”
  • “remember that you are a member of the technical staff for the company first, and advocate for developer experience second
  • “You have to translate what you’re saying into a language they can understand, which is typically finance. Money.”

People ❤️

Circle of concern v Circle of control

With my still-fresh eyes at work, I see a lot of improvements we can make, from how we write code to where we invest in developer experience to how we make decisions. But I am but one person with limited time and energy. I’d benefit from identifying what I can truly control and intensely focusing on them.

THE TYRANNY of STRUCTURELESSNESS

I usually prefer explicit decision-making processes because implicit processes benefit those in the known at the expense of those outside. The explicit process does not need to be democratic. But it needs to be clear who made what decisions and how so that we can hold those responsible accountable.

I worked at Google for -10 days

When I moved from Korea to the Bay Area to join Netflix, I couldn’t get my work visa for five months after I signed the offer. Thankfully, my manager waited for me, and the company was doing well enough that I could still have my job after that long delay. I was lucky, but I empathize with those whose dream opportunities fell through due to issues outside their control.

Business 💰

Unpaid social media moderators perform labor worth at least $3.4 million a year on Reddit alone

This study calculated the time moderators spent by tracking the actions they performed on Reddit and concluded that moderators collectively spent about 466 hours a day based on data from 2020. For context, there were about 52 million users and 21,500 moderators at the time of the study, and $3.4 million is 2.8% of Reddit’s 2019 revenue.

Young Reacts #231

Every organization is unique in its own way. They have their own culture, values, and ways of doing things. Netflix was different from my past startup experiences. Square was different from Netflix. And The Trade Desk is yet again different from Square. I always see the good, the bad, and the ugly. Sometimes, I felt empowered to fix the bad. Other times, I wanted to run away.


Software Engineering ⚙️

All the Hard Stuff Nobody Talks About when Building Products with LLMs

Honeycomb concludes that it is essential to focus on the features that LLMs can enable rather than the technology itself. And the technology is not as easy to use as creating custom prompts. Performance, security, and data privacy should be considered from the start.

Prompt injection explained

Prompt injection is a security vulnerability that can be exploited to trick a large language model (LLM) into generating harmful or unwanted output. Since LLM is probabilistic, there is no safe way to ensure a specific behavior. So the author recommends either limiting the input to the model or restricting the privilege the model has.

How to accelerate the adoption of your internal platform

Overcoming the inertia in a large organization is always tricky. It’s important to think from your internal customers’ perspective to win over the audience. If they say they are too busy, it means there is too much friction.

TBM 224: The Black Box

Once a team gets overwhelmed with fire-fighting, the typical response, adding additional status updates, is prone to create more work and further distractions for the team. So true from my past experiences.

People ❤️

Would You Go Into Business With Your Life Partner? These Couples Did

My wife and I sometimes talk about starting a business together. I balk at the idea because I fear it will complicate our relationship. But here are five couples who figured it out. Their advice to separate work stress from personal stress makes a lot of sense to me.

5 things to keep in mind when you hear about Gen Z, Millennials, Boomers and other generations

Generational differences are often exaggerated. While there are distinct life experiences that define their generations (climate change, 9/11, or financial crises), generations in their youth were more alike than you’d think.

Business 💰

Filings reveal PE and VC returns amid escalating write-downs

Because of the tech downturn, the returns for private equity and venture capital also diminished. Some have seen their returns decline by double digits. What will happen when these funds mature and return less than expected returns to pension funds, trusts, and health care systems?

Nvidia became a $1 trillion company thanks to the AI boom

I just learned that Nvidia ($970B) now has a larger market cap than Meta ($700B). It was surprising, but I can see Nvidia having as significant impact on society as Meta does, thanks to the advance in AI.