Young Reacts #202

Too many people died in a freak accident over the weekend in Korea. May all victims rest in peace.


Software Engineering ⚙️

The Thoughtworks Technology Radar

A new edition of Thoughtworks Technology Radar is out. In this edition, I learned about yjs, a Javascript framework for creating a collaborative editor, k6, a load-testing tool, and a team cognitive load assessment questionnaire.

Fully Typed Web Apps

I don’t write Typescript as much now, but this article distills one of my key learnings: type safety at the boundary of your components is paramount.

Google’s war against latency

The article has a short excerpt from the book “In the Plex” on how Google improved its slow products. This kind of absolute priority and the buy-in from the org is unique.

People ❤️

My take on why goal cascades are harmful and what to do instead

This article changed my perspective on how I should plan team goals. I now see that a top-down only approach will be too slow, and divorced from reality, so it should be complemented with a bottom-up approach.

Business 💰

Elon Musk reportedly ordered company-wide layoffs at Twitter

Elon Musk completed his acquisition of Twitter last Thursday and did not skip a heartbeat before firing top executives and laying people off. This kind of job insecurity is stressful in the best of times, and the tech sector is currently at its worst. My heart goes to everyone at Twitter.

Today tab ad

Apple App Store’s landing page ad product is available a few months after its announcement. It looks like Apple still lets you target specific placements on its Store while Google handles the placements for you.

Interesting Finds 💡

Generative AI will upend fintech

The author asked GPT-3 to come up with fintech product ideas. I don’t know how many times the author tried, but it does read like what I would see at work.

Young Reacts #198

One of Square’s organizing principles is that the organization needs to fit the work, not the other way around. This means we will always reorg around this time when we do our roadmaps for the following year. Just as it happened almost a year ago, another reorg occurred last week. My team wasn’t impacted, but I now have two new sibling teams with which we need to collaborate closely. It is a bit disorienting, but I will make the most of it for both the business and me.


Software Engineering ⚙️

Ten Years of TypeScript

It’s been ten years since Typescript was first publicly released. Its approach to simply being a type checker has worked out and made it the default typed language to write JavaScript.

Introducing Ezno

In contrast with TypeScript’s minimalist approach, this new project takes the maximalist one. It will not only check your types but also optimize runtime code based on the type information.

Use Back-Of-The-Envelope-Calculations To Choose The Best Design

This technique would significantly improve my design reviews. I often do rough calculations to estimate the workload, such as how long a specific data operation will take. But I haven’t done those calculations for particular operations in a proposed design, which should be useful at our current scale.

People ❤️

Models: The Lippitt-Knoster Model for Managing Complex Change

This model lists the necessities to drive a change: vision, consensus/alignment, skills, incentives, resources, and an action plan. This checklist helped me check if my team is set up for success in 2023. My team had a vision, alignment, skills, and incentives but needed more resources (which we got from the reorg mentioned above) and still lacks a clear action plan.

The Coach and the Fixer

The sentence that stuck with me was that the author “was afraid of hurting my relationship with the team.” I still struggle with this. I believe candid feedback will strengthen the relationship in the long term, but I still am hesitant to hurt my team’s short-term feelings.

The Hierarchy Is Bullshit (And Bad For Business)

Managers should actively strive to distribute authority because the status quo is that their teams will choose to stay silent. It’s easy (and sometimes convenient) to forget that.

Business 💰

Mark Zuckerberg says Meta will freeze hiring and cut costs

More signs of trouble at Meta. Meta will not backfill some roles when there is attrition.

With Audiobooks Launching in the U.S. Today, Spotify Is the Home for All the Audio You Love

Spotify launches audiobooks but only for purchases. However, unlike music or podcasts, you can’t stream any audiobooks you want.

Young Reacts #190

I got leadership training based on the famous personality test MBTI last Tuesday. I hadn’t had such training, so I was curious about how the MBTI results could help us work better as a team.

Unfortunately, I found the training reaffirm my skepticism over personality tests. The coach emphasized a few times that these test results are merely meant to drive conversations. But during the 4-hour exercise, those nuances were lost, and I felt boxed by the four letters of my MBTI test — some commented how someone got good scores, which upset me.

I understand that when at scale, we need a way to group many people because it’s impossible for one to understand thousands deeply. But we are talking about a dozen close colleagues that we interact with daily. We should rely on open and honest conversations, not these tests, to understand each other.


Software Engineering ⚙️

What’s TypeScript compiling? Use a treemap to find out.

It will be slow if JavaScript has to chug through 100MB of source code. This source code bloat is why faster native code-based tools like swc and esbuild are gaining popularity.

RedwoodJS vs. BlitzJS: The Future of Fullstack JavaScript Meta-Frameworks

I enjoyed reading this deep-dive on new generations of JavaScript frameworks. While the author preferred the less-opinionated nature of BlitzJS, I prefer the opinionated technology choices of RedwoodJS: serverless, React, and GraphQL ❤️

People ❤️

Talking About Layoffs

I appreciated the author’s courage to share her pain of getting laid off. Before reading this article, I hadn’t considered how people who were let go cannot have closure around why now, why me, etc.

Becoming an Organizational Leader

A few of my reports expressed interest in growing to be organizational leaders. Since I am not at that level either, I had difficulty guiding them. That’s when I found this thorough article by the Square engineering team. I loved reading about different areas one can effect organizational changes.

Business 💰

Y Combinator narrows current cohort size by 40%, citing downturn and funding environment

Even the most prestigious funds and accelerators are not immune to the economy.

Interesting Finds 💡

How I Used DALL·E 2 to Generate The Logo for OctoSQL

I’ve seen lots of weird images DALL-E generated. But this is the first one where the image serves a valuable purpose. This article got me interested enough to join the DALL-E waitlist.

Earth is spinning faster than usual and had its shortest day ever

What’s more shocking is that Meta has dedicated engineers working on the leap second problem.

Young Reacts #187

Last week, I attended a networking event, which made me remember how uncomfortable those events are for me. If there is a forcing function to meet someone new, like sitting at the same table, I do just fine. If not, I can’t pull myself together to talk to a stranger. I ended up leaving an hour early to escape the awkwardness.


Software Engineering ⚙️

magic-regexp: A compiled-away, type-safe, readable RegExp alternative

I talked a few times that the compile-time JS tooling is getting more powerful. This library is another example of that. It lets you write regex in type-safe DSL and replaces it with a plain regular expression during the compile time.

Facebook has started to encrypt links to counter privacy-improving URL Stripping

It’s a common practice for online services to add tracking parameters to the linked URL like “utm_medium,” “_branch_match_id,” etc. Privacy-focused browsers offer the option to strip those tracking parameters. The author reports that Facebook started encrypting the tracking parameters with the URL so that removing those parameters is impossible. I couldn’t find them myself, but maybe it’s being A/B tested. Still, another step backward for privacy.

People ❤️

Lifestyles

It’s not always possible to be intrinsically motivated at work. But I still find it important to pause, examine what drives me, and adjust my priorities.

What are your company’s anti-values?

If it’s not painful, it’s not prioritization. By extension, if you see no failure mode in your company’s culture, you don’t have culture.

Weaponizing Amazon Leadership Principles

Culture is impossible to describe in a few words like “freedom and responsibility” or “customer obsession.” So it’s easy to misunderstand and appropriate them for whatever we want at the moment. For example, at Netflix, I saw different folks misuse “freedom and responsibility” to make short-sighted decisions, optimizing locally. How can we continue to educate ourselves and our colleagues?

Business 💰

Netflix to Partner With Microsoft on New Ad Supported Subscription Plan

Microsoft will not only provide the technology but the sales team to Netflix. I am curious how the member base will change once the free, ad-supported plan becomes available. I suspect the average revenue per user will go down, especially in developing countries.

BMW starts selling heated seat subscriptions for $18 a month

Last week, I shared a VPN company moving away from the subscription model despite its benefit. But BMW couldn’t pass up on the opportunity for a steady cash stream.

Young Reacts #170

One more thing I appreciate about working at Square is its regular deep work weeks, where we are encouraged to cancel non-essential meetings. While meetings are most of how I, as a manager, get work done, I still find myself needing some quiet time to focus and write. This week, I will think about how my team’s work fits in with my organization’s goal and how we will deprecate a widely used API.


Software Engineering ⚙️

A Proposal For Type Syntax in JavaScript

This proposal could be, as the article points out, “one of the most impactful improvements to the world of JavaScript.” The idea is to add a type syntax to Javascript that Javascript runtimes will understand without a required build process like Typescript compilation. I would compare the impact of this change to that of ES Modules.

The case for creating a merge commit

It doesn’t matter which merge strategy your team uses (squash, rebase, or merge), as long as everyone follows the same strategy.

People ❤️

A Rubric for Evaluating Team Members’ Contributions to an Inclusive Culture

I’ve found it difficult to assess candidates’ aptitude and willingness to promote inclusion at work. I couldn’t help but feel that many of the answers were value-signaling. Thankfully, this article describes specific criteria, such as moderation and attribution, that contribute to inclusion that I can use to evaluate my team and candidates.

Kirkpatrick Model: Four Levels of Learning Evaluation

I joined a discussion on how to communicate vision this week and asked the presenter how they measure the success of their communication. And they shared this Kirkpatrick model, which can be used to evaluate training. There are four levels: Reaction, Learning, Behavior, and Results, which get progressively harder to measure and closer to business goals.

Directors/VP of Engineering, how did you get to that level and what does your day to day look like?

I am probably a few years away from making a director, but this answer directed me on the axes to grow:

Be the trusted person that made [something compelling] happen, and when your org needs more structure, create the plan for your part of the organization should look.

Business 💰

Walgreens Advertising Group Announces Launch of Self-Serve Programmatic and Clean-Room Solutions

I never thought I’d link something from Walgreens, but here I go. Walgreens is launching an ad platform for eyeballs on its website like Amazon’s ad platform. This wouldn’t have worked without Apple’s new restrictions on sharing data with 3rd parties.

U.S. eliminates human controls requirement for fully automated vehicles

This change opens the door to self-driving vehicles without the “driver seat.”

Young Reacts #168

I shared this message with my team on Thursday morning:

Hi all, you may have heard the news about Russia invading Ukraine. I recognize that the last couple of years have been difficult and this invasion makes it worse. If you need time to clear your heads or to learn more about the crisis, please take the needed time off. If you’d rather focus on deep work, do go ahead and cancel meetings.

In crises like this, it is paramount to care for ourselves. At the same time, we have to consider our civic duty to one another. I am currently thinking about the “banality of evil” and how silent complicity enables opportunists who seek to take advantage of the people.

This kind of intro probably isn’t why you subscribe to my newsletter, but I didn’t have mental space for a different one.

Software Engineering ⚙️

Typescript Type Assignability Matrix

Captured from the above link. Each cell indicates whether a variable of type [row] is assignable to a value of type [column].

I wish I had something like this when I first started learning Typescript. The matrix may be confusing. But when you read each cell carefully and consider why they behave like that, you will understand it.

People ❤️

Support open-source that you use by paying the maintainers to talk to your team

Speaking engagements sound more beneficial for engineers than direct sponsorships (though direct sponsorships are essential, too!). I wonder what the reasonable rate for the speakers is.

Times are great for programmers now. How does it end?

I can’t imagine a world where technology gets less critical in businesses. We have barely digitized our messy real world. I predict that the story will differ based on the engineers’ skillsets—while machine learning engineers are on-demand, Fortran or Cobol programmers are not. Individual engineers need to continuously learn and adapt to stay relevant.

Business 💰

Shopify’s Evolution

Shopify is moving from an integration hub to a full-stack service provider for eCommerce. It now has its payment system, a fulfillment network, and more. However, its evolution is creating a platform risk to its partners:

Announcing our $100M Series C funding

Hasura, a major contributor to the GraphQL ecosystem in both content and OSS, got a new round of funding to invest in its cloud services. I am happy for the team, and I hope that they keep the current effort in pushing the ecosystem further.

10 Lessons Learned after $5B of M&A

The most surprising lesson was the second one:

Startups are sold to individuals, not to companies. The champion – often a product leader, the CEO, or a general manager – risks their career by buying a startup.

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

I spent most of my time meeting my new colleagues last week and reading documents to understand where we are and how we got here. I am still learning about the team, but I have seen some shared themes. They don’t look easy to tackle, but I appreciate that many agree that those problems need to be solved.

I am looking forward to more conversations this week.


Software Engineering ⚙️

Understanding the EAV data model and when to use it

My team’s database uses an unusual Entity-Attribute-Value (EAV) structure to express different types of items that our sellers sell. It’s my first time running into such a structure, so I read up on it. Now I know the pros and cons, I have a few follow-up questions for the team.

Announcing TypeScript 4.5 Beta

This release improves how Typescript works with an ECMAScript module.

People ❤️

Square Defangs Difficult Decisions with this System — Here’s How

Like Netflix’s Freedom-and-Responsibility, Square has its own set of shortcuts to make decisions. SPADE, which stands for Setting, People, Alternatives, Decision, and Explain, is one. It is essentially a checklist for critical questions, such as “what decision needs to be made,” “who is responsible,” and “who is the approver.” A lot of our internal docs follow this structure.

Direction + Alignment + Commitment (DAC) = Leadership

I learned about this concept from an internal training video. DAC stands for the key ingredients for successful collaboration:

  • Direction: what is the goal?
  • Alignment: how are we going to get there?
  • Commitment: are we prioritizing this work?

This concept isn’t as prevalent as SPADE inside Square, but I like that this idea reminds me of how to drive a collaborative project.

Good People, Big Dreams

Square, too, relies on individual teams to onboard newcomers as Netflix does. As I think about onboarding new people to my team, I need to prioritize relationship-building as much as skill training. Lemonade has built a strong cohort program that will help the newcomers gell.

There’s Another Gender Pay Gap: Stock Options

This article is another reminder of why we should share our compensation numbers with our colleagues. Information asymmetry has real consequences.

Young Reacts #141

I am returning to my final weeks at Netflix after two weeks of vacation. As much as I wanted to do the job well when I was here, I want to leave well, too. I started jotting down a list of things to do:

  • Handoff ongoing project responsibilities and past knowledge
  • Reach out to people I worked closely with
  • Back up some of my presentations and documents
  • Draft a farewell email early and iterate
  • Figure out what to do with the company devices
  • (and probably more as I think this through…)

Software Engineering ⚙️

Shipping fast and safe: Building a culture of low-risk learning

An Intercom engineer shares techniques to move fast while de-risking changes. Two were new to me: Ship instrumentation first and Ship the “read” path first.

Announcing TypeScript 4.4 RC

I won’t be using Typescript for quite some time now, but I am still excited about the changes in this release. Especially, the improved control flow analysis and the new exact optional property types will be huge.

Choice Words about the Upcoming Deprecation of JavaScript Dialogs

Chrome tried to deprecate JavaScript Dialogs (the dialogs from alert() and confirm() methods). It broke quite a few websites and surprised many. The community pushed back, and the deprecation is now postponed but still planned to go ahead. Has Chrome become too big for the internet?

Business 💸

Google considers switching FLoC to a topic-based approach, as exec acknowledges cookie replacement has fingerprinting potential

Federated Learning of Cohorts, or FLoC, is Google’s proposed alternative to the soon-to-be third-party cookies. However, several researchers and companies have confirmed that the assigned cohorts are too granular to protect users’ privacy. So Google is now contemplating a switch to a more coarse topic-based approach.

The Epic v. Google lawsuit finally makes sense

The Verge goes into various tactics Google employed to dissuade Epic from building its own app store. When Google Play comes preinstalled on all Android devices, only a few will bother to side-load another app store. That Android technically allows side-loading doesn’t make the platform open.

Young Reacts #128

After 2 years in my current role, I started considering what my next steps should be. I could (without any guarantee that I could achieve them except the first):

  1. continue in the current role
  2. switch to an IC role in a different field/team
  3. switch to a more senior IC role (staff+) at another company
  4. switch to a manager role either here or at another company

Ideally, I would have defined my career north star and planned my next move. But I couldn’t figure out what my north star is and, thus, couldn’t decide what to do.

In the last week’s mentoring session, my mentor suggested I instead focus on the next 2-5 years. That timeframe was far more manageable. I looked back at what I enjoyed in my career. After some deliberation, I’ve set a 5-year goal to lead an engineering org at a startup. I will start pursuing the fourth option.

Photo by Federico Di Dio photography on Unsplash

Software Engineering ⚙️

Introducing WebContainers: Run Node.js natively in your browser

During the last week’s Google I/O, a company called StackBlitz introduced a new way to run Node.js using WebAssembly in a browser. This approach has a couple of benefits over running Node.js locally or in the cloud:

  • The server is much faster to boot up as we don’t have to wait for provisioning.
  • The server is accessible even without internet access.
  • NPM installations are much faster with its customized npm client.

This demo video does a good job introducing the concept.

Typescript Performance Tips

In my project, I have an 80k-line-long autogenerated Typescript file that makes my editor crawl to a halt whenever I open it. I’ve learned recently that simple tweaks in Typescript definitions could result in a big performance gain. So I started learning how to improve a Typescript project’s performance.

Docusaurus V2 is in Beta

Docusaurus, one of the most popular doc site generators, has announced its V2 beta 3 years after the initial conception. With V2, Docusaurus switched its positioning from a documentation site generator to a doc-site focused single-page application site generator. People are already adopting the tool in droves.

People ❤️

Addressing the challenges of partially distributed engineering teams

Come September, and my org will start operating in a partially distributed fashion. Some will be in the office, and others, including me, will be remote. We’ve been able to operate well in a fully distributed setting. But we will need to step up the effort to a whole new level; we need to change how we run meetings, share context, and provide visibility.

A fun anecdote: when a colleague joined a meeting from the office, he found out that the meeting room device neither shows “hand raises” nor opens links shared on the chats. He had a harder time in the meeting as the only onsite employee than the others.

Hiring vs nurturing managers

As I prepare to become a manager again, it sometimes frustrates me that the internal opportunities are few and far between. This article explains the tradeoff between outside hires and internal promotions from the org’s perspective.

Safe Spaces, Brave Spaces and Why We Gon’ Be Alright

I learned this new idea called a brave space. A brave space is a space for learning and accountability. It is a step beyond a safe space in that some amount of discomfort will be encouraged to be honest and learn from.

Whenever a sensitive topic comes up at work, I am terrified that I will say the wrong thing and be judged forever without a chance to redeem myself. Can I be more open to sharing in such a space if discomfort is expected?

Business 💸

Coinbase is launching a media arm

Companies realize that they do not need to go through the press to speak to their customers and fans anymore. Politicians learned that a while ago, and companies are catching up.