Young Reacts #193

Have you seen a shooting star before? I went on a trip and saw two shooting stars over the weekend. Unfortunately, I couldn’t make my wish in time. That made me realize this: it’s impossible to think of a wish in the blink of an eye unless you are constantly thinking about the wish. If you are already obsessed with the wish, you are already much closer to realizing it than you would be. So a shooting star is a test, not a wish maker.

My phone camera sadly couldn’t do justice to what I saw.

Software Engineering ⚙️

Gardening Platforms

This lengthy presentation is about adding compounding investments to the platform by aligning the ecosystem to the north star and reacting timely to the demands. I liked the visualization of how to rationalize a platform gradually (from slide #123 to #141) and the pull and push analogy between a platform and its customer (from #94 to #112).

Deprecation Notice: GraphQL for Packages

This notice surprised me. The value of GraphQL API is connectedness. When an API loses a core primitive, the value doesn’t decrease from n to n-1; it instead goes from n*n to (n-1)*(n-1). Is it signaling a shift away from GraphQL at Github?

People ❤️

The state of startup compensation, H1 2022

This report from Carta is a bit dated. But it still has good information on how location, company stage, and other factors affect an employee’s compensation.

Don’t Focus on Your Job at the Expense of Your Career

The article applies to me not just as an employee but also as a manager. How can I provide the time for my reports to do speculative or developmental activities? Better yet, how can I build that into the team’s standard work process?

Business 💰

The AI Art Apocalypse

I am not sure if you noticed, but I updated the logo for this newsletter with an image I created with DALL-E 2. The tool was sometimes frustrating, but I got what I wanted within 30 min. So when the author worries about the livelihood of some designers, I can understand that.

Interesting Finds 💡

Hackers Used Deepfake of Binance CCO to Perform Exchange Listing Scams

I suspect that the hackers chose to fake the Chief Communication Officer since they would be the most publicly visible, thus making deepfake most effortless. But as AI advances, it would be possible to use just a single image to fake a person. I worry that we won’t be able to trust a phone call from our spouses in the near future.

Mobile Usability for Cats: Essential Design Principles for Felines

This article is clearly an April Fool’s Day joke, but I had a good laugh while reading it. And you’d be surprised what some researchers are studying: Forming the Dog Internet.

Young Reacts #191

As I wrapped up interviewing a candidate and getting ready to start my weekend, I saw a message about an ongoing outage for my team. What I thought was the usual, straightforward outage turned out to be the worst one I’ve ever seen. I eventually became paralyzed by the sheer number of things I had to handle. But the more tenured, experienced people at the company joined us to understand the impact and handle communication, which saved the day. While I am not happy about the impact on our customers, I learned how to manage customer-visible outages by observing them.


Software Engineering ⚙️

Unleash the power of Fragments with GraphQL Codegen

Once you adopt non-Relay GraphQL clients, the migration to Relay gets prohibitively expensive. So you couldn’t enjoy the benefits of colocated fragments. The Guild’s GraphQL Codegen tool enables non-Relay apps to colocate fragments.

Phishers who breached Twilio and targeted Cloudflare could easily get you, too

I heard before that SMS-based two-factor authentication is not safe enough. But this is my first time seeing a real-world example where social engineering defeats the SMS-based two-factor authentication.

People ❤️

CEO posts crying selfie on LinkedIn after laying off employees — and it goes viral

There is a subtle line between authenticity and gratuitousness. When I see articles about the backlash when someone steps over the line, I get wearier about opening up.

Business 💰

Back to the trend line?

When Shopify laid off 10% of its employees a few weeks ago, its CEO attributed the decision to the eCommerce spending reverting to the previous trend. But this analysis shows that even though the ratio is reverting, eCommerce still saw a big pull-ahead in absolute terms.

Growth is No Longer the Best Predictor of a Software Company’s Value

As interest rates increase, investors discount the large future revenue & profit streams of high growth companies more heavily.

But revenue growth is still an important indicator, second only to net income.

Interesting Finds 💡

The people of the cloud

This article details stories of people who operate the data centers. The joke that “the cloud is just someone else’s computer” never felt truer.

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

I heard through the grapevine that Netflix plans to introduce engineering levels like those found at levels.fyi. 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 #167

I have found myself quite a bit more stressed since I became a manager. That’s because I have far more time-sensitive tasks, such as interviews, performance reviews, quarterly planning, and so on, and I don’t own the deadlines as company processes set them. Worse yet, only I can do some of these tasks (most people management tasks).

On the contrary, if you are a trusted engineer on a well-run team, you can generally set your timeline and rarely come under time pressure. Also, your team should have enough context to cover for you if you cannot get to them in time.

I started thinking about how much I am willing to sacrifice my well-being to do the job I like.


Software Engineering ⚙️

How not to learn GraphQL

As I only worked with Apollo’s flavor of GraphQL (Apollo Client and Apollo Federation), I am not well-versed in other GraphQL tools. This article taught me that other tools, like Urql and Stitching, are worth looking at.

People ❤️

Engineering Org Structures— The QRF Team Model

I’ve seen many teams where they took weeks to respond to customer requests, which take a few min because of how they prioritize. The author astutely observes that “the team is operating at a tempo that is slower than the environment demands.” So the team should create a separate workstream with a faster tempo by dedicating some of the team’s time, nominating someone on the team, or creating a whole new team.

The perils of a writing culture — the Amazon hammer to decision making.

I started reading Working Backwards, a book on Amazon’s work culture. I admit it’s easy to get hooked by its rituals as Amazon’s business success is undeniable. But as the author of this article says, we need to use the right tool for the right job, and a 6-page memo may not be it.

That Wild Ask A Manager Story

The article has an extreme case of a well-meaning process gone wrong. When you run a retrospective, it’s tempting to create a new process to capture “what we should have done better.” Unfortunately, even well-meaning processes have overhead costs and should be considered the last resort, not the first reaction.

Business 💰

The App Store has a ‘Too Big To Fail’ problem

The critical insight in the article is that “the App Store is the Games Store” as mobile games generate the bulk of the App Store’s revenue. While Apple is willing to bend over backward to keep the larger apps, it won’t budge over the games.

Can a $310M startup avoid due diligence?

I am not sure if this article is accurate about Merits.com. Only the top executives at the company will know. But this is another reminder that startups are full of gotchas.

Young Reacts #166

I’ve been trying the templated response to recruiters (I shared this in the last newsletter). And I was surprised that a recruiter sent me salary information for an engineering manager role. It might not be much, but it is worth more than the last fifty recruiter emails I received before. So why don’t you try it yourself?


Software Engineering ⚙️

READS: Service Health Metrics

READS stands for request rates, errors, availability, duration/latency, and saturation. I have a reasonably good understanding of our services’ error rates and availabilities but not the other three. I will need to look into them.

Observing FinTech Services For Seamless Payments

This article goes nicely with the READS article above as this provides concrete examples of the theory above, such as latencies of order checkout and CPU usages.

Immutability isn’t free

Javascript’s spread operator surprised the author with its O(n) performance characteristic. Javascript developers need to understand how the Javascript engines work to avoid similar mistakes. But that’s easier said than done. This surprising behavior is a reason why performance-sensitive apps are written in other languages like Go or Rust.

GraphQL Network Inspector

I would have loved to use this Chrome extension when I was an engineer. Finding the request in question by clicking through a list of GraphQL requests was not fun. Netflix eventually created a Chrome extension in-house to tackle this.

People ❤️

My 3 Favorite Types of Manager Meetings

I am not used to being a full-time manager. During my previous manager roles, I did quite a bit of coding, which helped me feel a sense of achievement. But I no longer code and have lost that immediate positive feedback from coding. While most of my managerial work is not visible, I’d love to have a meeting like the Managers Demos Meeting to share my achievements.

How to Write Something Compelling

The author provides valuable axes to evaluate our writings: an idea’s impact, simplicity, universality, and a word count.

Business 💰

Tech questions for 2022

The author’s chosen keywords are Crypto; AR, VR and the metaverse; Games; Regulation; Privacy; Cars; China; Macro; Everything else. I would also add cybersecurity.

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