Young Reacts #103 – Sending gifts to future-you

Over the weekend, my wife and I traveled to Korea for my sister’s wedding. We’ve been ordered to quarantine at home for the next two weeks. This experience has opened my eyes to how a government can use technology and bureaucracy to surveil its population (of course, in this case, it is for the better).

When we entered Korea, we were asked to install an always-on tracking application and register our information (including our identification numbers, phone numbers, and address where we will stay to quarantine). The airport agents then checked that we actually installed the applications and even called our contact on file to ensure we were reachable. Now, for the next two weeks, we have to enter our self-diagnosis three times a day into the application. If the application detects our GPS signal is off or not at the said address, we get calls from the agents right away. In the meantime, we get multiple emergency alerts about confirmed COVID cases in our city.

The combination of technology and bureaucracy is impressive, especially compared to the US’s response so far. But it is just as scary when I think about its possible misapplications.

Photo by Rohan G on Unsplash

Software Engineering ⚙️

Summary of the Amazon Kinesis Event in the Northern Virginia (US-EAST-1) Region – AWS

AWS suffered a long outage last week, impacting a variety of services such as Coinbase. Due to complex dependencies and latent issues, a simple act of adding more servers triggered cascading failures across different services for almost a full day. I appreciate that this summary is both detailed and honest.

GitHub Actions vs CircleCI – Kim Gault

I haven’t used GitHub Actions since my team has Spinnaker and Jenkins to do our continuous integration. So I found an article on the capabilities of Github Actions. tl;dr is that GitHub Actions is a good alternative to the more established services like CircleCI.

GraphQL Terminology – Cheatsheet – Ido Shamun

Do you wonder what a mutation, a directive, or a federation means? This cheatsheet is all you need.

People ❤️

Sending gifts to future-you – Tanya Reilly

Our “planning” (for our team or ourselves) often devolves into just listing what we planned to do anyway. But the right approach is to imagine ourselves in the future and figure out what we would wish we’d invested in. Like a 🎁

What did I forget by working for the same company? – Jaana Dogan

Jaana left Google because she no longer felt she knew where the rest of the industry was going. I fear that I will feel the same if I stay at Netflix for too long. I need to make sure that I can be productive outside Netflix’s internal infrastructure.

Vidyard: From sales-led to product-led and how it changed everything – Ashton Rankin

A business model affects more than the marketing and sales organizations. It changes how your product teams prioritize and how your engineering teams interact with the customers. This account gives a good view of how a business model change (from enterprise-sales to freemium) led to a full company transformation.

Business 💸

Microsoft’s Phil Spencer on Launching the New Xbox and the Future of Games – Phil Spencer

Two notable quotes from the executive vice president of gaming at Microsoft:

“Now, as you said, a TV is really more of a game console stuffed behind a screen that has an app platform and a Bluetooth stack and a streaming capability.” -on TVs as a gaming platform

“I want third parties to see the distribution and monetization capability of Game Pass as something that is accretive to their business and important to them.” -on Xbox’s platform strategy

Are you a seal? – Benedict Evans

Startups often worry about how to fight the big tech companies off their turfs. So did my teams. But the right question is, if and why they would enter your market?

Young Reacts #102 – Writing accessible code

It is weird that we don’t talk about our past experiences at work unless it is the very first introductory 1:1. Even during that chat, we may talk about the newer person’s history, but we don’t talk about the others’.

That is a big loss on everyone’s part. You may have relevant experience that could help my current project (“Are you an expert at web components? Great! We are considering it for the next project. What’s your take on the technology?”). Or just the empathy from understanding our background would be useful.

I loved how my team shared our individual journeys with 5-7 photos as an icebreaker last week. I think you should try it with your team!

a person holding four photos
Photo by Josh Hild on Unsplash

Software Engineering ⚙️

Writing accessible code – Julia Ferraioli

A product may be accessible, but that doesn’t mean its code is accessible. So Julia wrote about a couple of ways to make code more readable to disabled engineers. Among others, the tip about using newlines meaningfully was new to me. Just as non-disabled people find accessible products easier to use, I expect the same for the accessible code.

International Telephone Input – Jack O’Connor

I recently had to add a country code input at work. It was more interesting than I anticipated. I originally planned to create a dropdown option per country, but that wasn’t possible because some countries have more than one country codes. So I ended up creating an option per code, which was also complicated because some countries share the same country codes.

I couldn’t have done the work in the short amount of time I did if this open-sourced collection of codes had not existed.

Does it ARM?

It turns out backward compatibility is hard. This website shows if your favorite devtool runs on M1 Macbook yet. (Spoiler: VS Code doesn’t yet)

People ❤️

Being visible – Will Larson

I believe that internal visibility at large companies leads to more opportunities and credibility. One shouldn’t have to play this game if they don’t want. But if you do, this article has a few useful tips like “Write more long-lived documents,” “Be a cheerleader for your team’s and peers’ work,” and “Attend, or potentially even host, office hours for your team.”

Business 💸

Developers see a world of possibilities with new App Store Small Business Program – Apple

Apple announced a program to half its fee to 15% for businesses with <$1M revenue. It may be due to antitrust pressure, but I still think many indie developers will find their apps more viable now. I don’t particularly care if which of the large co (say Epic or Apple) takes the cut.

Flash Loans, and Attacks — explained – The Defiant

A video describing flash loan attacks in the decentralized finance world in an amusing style. In short, attackers take a large flash loan (a loan for a single transaction) to create a price difference of a crypto asset between markets and take advantage of it. Notably, all the protocols have been “audited.” It makes me wonder what they actually “audit.”

Young Reacts #100 – Centennial Edition 💯

My habit is my superpower. I am not great at going into overdrive and pulling an all-nighter. But I can keep doing the same thing day-in and day-out for a long time. This newsletter has been one of those things for the last 2 years. I thank you, readers, for being part of the journey. To celebrate all 100 issues, I am re-sharing the articles that made a lasting impact on me.

To the next 💯!

Celebrating 100
Photo by Floris Andréa on Unsplash

Software Engineering ⚙️

How Complex Systems Fail – Richard I Cook

I keep coming back to the lessons of this short reading almost daily. I especially find “Catastrophe requires multiple failures – single point failures are not enough.” and “Human practitioners are the adaptable element of complex systems.” insightful.

When frontend means full stack – Chris Coyier

While we are all called “frontend engineers,” we come in a different shape. That means: 1. when we look for the next role, we need to think about what we truly enjoy. 2. when we hire for our team, we need to look for the exact skills the team needs explicitly.

Blogged Answers: A (Mostly) Complete Guide to React Rendering Behavior – Mark Erikson

I read this a month ago, but I already used the article’s learnings multiple times about setState. If you skipped this article because it’s too long, please think again.

People ❤️

The Mundanity of Excellence: An Ethnographic Report on Stratification and Olympic Swimmers – Daniel F. Chambliss

“Excellence is accomplished through the doing of actions, ordinary in themselves, performed consistently and carefully, habitualized, compounded together, added up over time.” This is my kind of jam.

The Feedback Fallacy – Marcus Buckingham and Ashley Goodall

A lack of shortcomings does not make one excellent. We need to focus on each other’s strengths that make us uniquely effective.

Get your work recognized: write a brag document – Julia Evans

When busy with daily work, I forget what I achieved last week, let alone last year. Just the act of writing a brag document has saved me from impostor syndrome countless times.

Don’t ask forgiveness, radiate intent – Elizabeth Ayer

The proverb, “Don’t ask for forgiveness, ask for permission,” makes a terrible teammate. When we are part of the team, we need to radiate intent and align better.

Speed as a Habit – Dave Girouard

I started asking, “when do you think will finish the thing?” and that cleared up a lot of uncertainty when collaborating. There are more great tips I haven’t internalized yet.

Business 💸

The rise of the global first startup – Elizabeth Yin

The article was written before the COVID. I can only imagine that the trend is now far more accelerated since everyone’s remote.

The New Brandeis Movement: America’s Antimonopoly Debate – Lina Khan

With the Biden administration next year, we will see how the antitrust issue will play out. But I hope the administration continue the inquiry and reform where necessary.

Thank you for reading this issue. I hope you stay with me for the next 100!

Young Reacts #99

In the US, the daylight saving time ended over the last weekend. The start and end of daylight saving time reminded me of when I was working on data visualizations.

If you store and render the data in UTC, you can safely assume that every hour exists. But that’s not true if you want to represent the data in timezones with daylight savings. I remember that our visualizations would break because 2 AM is missing when the saving time ends (you also get two data points for the same hour when the daylight saving starts). It’s a funny reminder that even seemingly absolute things like time can’t be relied upon in programming.

Photo by Ocean Ng on Unsplash

Software Engineering ⚙️

ts-prune – Nadeesha Cabral

While code linters can automatically detect unused variables inside the modules, it has been very time-intensive to find unused modules; I manually global-search exported variables (it gets much, much worse if the same names are used for different variables). This CLI tool promises to automate that process.

Why Rounded Corners Are Easier on the Eyes – UX Movement

Have you wondered why your designer always round corners? Here are your answers: First, sharp edges make the object look brighter and harder to look at. Second, we are raised to avoid sharp objects in the physical world. And last, smoother paths make it easier to process the information.

Myths about useEffect – Kent C. Dodds

I started using hooks as soon as they’ve become available. However, I still learn every day. In this article, I found the shift in perspective from “when does this effect run” to “with which state does this effect synchronize with” illuminating.

Rebuilding Twitter’s public API – Twitter

Twitter is building its public REST API with a GraphQL backend. In other words, if you hit their REST endpoint, they translate your request into a GraphQL request to an internal GraphQL endpoint. I am most curious about how Twitter develops and maintains the internal GraphQL schema for both consumer app use cases and the REST API use cases.

People ❤️

Career ladders aren’t enough – you need a thoughtful promotion process, too – Sarah Milstein

If a company leaves the personnel decisions solely up to the managers, it is hard for employees to see that the process is fair. The process needs an explicit and well-understood structure to justify its decisions.

Business 💸

How Riot created the virtual universe of the 2020 League of Legends World Championships – Polygon

Because of the current pandemic, much of the League of Legends world was held in a closed space without live audience. To create a dynamic stage suitable for the competition of this level, Riot Games used the virtual studio based on Unreal Engine, also used by The Mandalorian. I very much look forward to how this technology will change film productions.

NVIDIA Announces Cloud-AI Video-Streaming Platform to Better Connect Millions Working and Studying Remotely – NVIDIA

Instead of saving bits with more efficient compression, Nvidia saves by regenerating the image with AI on its cloud platform based on a few key points. It is most useful if your upload bandwidth is limited. Here is a link to the demo video.

Young Reacts #98 – React 17

I don’t have many things to share, so I will keep it short. Happy Halloweens!

Photo by Łukasz Nieścioruk on Unsplash

Software Engineering ⚙️

React v17.0 – React

React 17 is out. The goal of this release is to make it easier to upgrade React in the future. While there are no new features, that doesn’t mean there are no breaking changes. Watch out for subtle changes in event propagations.

Full-Bleed Layout Using CSS Grid – Joshua Comeau

Setting up a clean, scalable layout saves many headaches down the line. Please read this guide if you are starting a new project. I am sure I will come back to this article many times in the future.

People ❤️

Engineering management 101: evaluating your team’s performance – Camille Fournier

The key lesson in this article is that “[e]valuations start long before it’s time to actually determine a rating.” If you are a manager, set your expectations explicitly and communicate them repeatedly with your reports. As a report, we all should strive to clarify the expectations.

Rejections – Vishnu Bharathi

When I was looking for a job before, I found the whole process demoralizing. That feeling of strangers scoring your past achievements and potential hurt my self-esteem. I hope you read this article and find it encouraging to know that you are not alone on this journey to your dream job.

Business 💸

United States v. Google – Ben Thompson

The Department of Justice of the United States sued Google for its alleged anticompetitive behavior. That alleged violation is how Google pays smartphone makers to be the default search engine, which improves its algorithm with more data and takes away the breathing room from the competitors.

Young Reacts #97 – npm v7

Waymo started its public self-driving service in Pheonix, Arizona on October 8th. I was curious about how the service worked and found this video. The video captures four trips from start to finish, showing the streets, the in-car screen, and the app screen simultaneously.

Around the one-hour mark, the car enters the busy Costco parking lot. Humans find it hard to drive there, but it navigated the lot without a hiccup. Very Impressive!

The video reminded me of the famous line by William Gibson: “The future is already here – it’s just not evenly distributed.”

Software Engineering ⚙️

Presenting v7.0.0 of the npm CLI – npm

Workspaces, more predictable installs, and better peer dependency management! I was slightly worried about delays or changes because Github acquired npm, Inc before v7 work was done. But I am glad to find my concerns were unfounded.

TypeScript to WebAssembly: The What, The How And The Why – Fernando Doglio

Maybe not every day, but there will be a time when we need to do a computation-heavy task in a browser. But if we don’t know Go or Rust already? AssemblyScript is a great alternative that utilizes a subset of Typescript syntax to write WASM.

Writing JavaScript tools in other languages – a new trend? – Dr. Axel Rauschmayer

This post discusses the pros and cons of using a non-JS language for JS tooling. A tool creator will have to tradeoff between performance gains and the JS community.

People ❤️

Email to former board member – Ryan Caldbeck

A startup CEO shared an email to a former board member publicly as he stepped down. The email gives you a look at how sausages are made (or how dysfunctional boards can be). No matter what we do for a living, we are all humans with our frivolities.

Business 💸

A Quarter Century of Hype – 25 Years of the Gartner Hype Cycle – Mark Mine

A great way to get out of hype is to look at the long term trend. The visualization below connects 25 years’ worth of the Gartner Hype Cycles.

Young Reacts #96 – Rust-based Javascript tools

Lately at work, I’ve been migrating my servers from AWS instances to Docker containers. Although the internal tools try to provide the turn-key migration experience, I found that many hidden assumptions, especially regarding the dev machine’s environment, created gaps in the process. I often had to spend hours fixing the bad states from half-complete commands. Which is fine. I accept those hours as the price I pay for being an early adopter. But I do hope my notes and feedback will create a more stable foundation for the future adopters.

Photo by Todd Quackenbush on Unsplash

Software Engineering ⚙️

Rust-based Javascript tools: Boa and RSLint

Two exciting, albeit experimental, tools popped last week. Boa is a parser, and RSLint is a linter (obviously). I am looking forward to performance gains from these native tools. At the same time, I worry that I won’t introspect the source code of these tools as easily.

Hidden Features of Chrome DevTools – Martin Heinz

I believe all engineers must be able to debug efficiently. Once I got comfortable with the Chrome DevTools debugger, it made debugging much faster than using console.log. But the DevTools have a lot more features. I’ve used the Performance tab and Conditional Breakpoints heavily lately.

People ❤️

An update on efforts to reduce spam with Hacktoberfest: introducing maintainer opt-in and more. – Digital Ocean

The Hactoberfest snafu perfectly exemplifies how a well-intentioned system can incentivize bad behaviors. Before this update, the old system rewarded pull requests to open source projects with free t-shirts while relying on the project maintainers to discern spammy pull requests. In the end, the spammers overwhelmed the maintainers and created media backlash. Never underestimate how motivated bad actors will be.Domenic Denicola @domenicUgh, oh no, October is starting. Prepare for a month of spam pull requests… whatwg/html has already been hit hard, at 5 in the last 3 hours. @hacktoberfest, please please stop this annual tradition of wasting maintainers’ time. You are a net negative for the world.September 30th 2020161 Retweets721 Likes

The Wetware Crisis: the Dead Sea effect – Bruce F. Webster

When a team first gets founded, it’s easier to recruit top-level talents into the team. Vision and autonomy are great motivators. But it is also easy to lose them because they have so many options. Like many things, it’s easier to keep the already-high talent density high than to rebuild the team.

Business 💸

House Democrats push Congress to break up Big Tech monopolies – Engadget

After the congress hearing with Apple, Amazon, Facebook, and Google CEOs, the US House Democrats suggest that the four companies be broken up. All companies argue that breakups will cause consumer harm. That may be true in the immediate future. But these dominant monopolies are hurting future innovations and consumer gain.

The Full-Stack Startup – Chris Dixon

As Chris Dixon defines, full-stack startups own all necessary pieces around their users, thus enabling better user experience. It’s not just Amazon now. Many companies do this now: Peloton, Lemonade, Netflix, etc. These investments, on top of the enabling software, will also create a lasting moat.

Young Reacts #95 – Erikson’s A (Mostly) Complete Guide to React Rendering Behavior

I watched a fascinating talk on GraphQL. Its premise is what made it fascinating; to convince people on the other side, we need to understand their reasoning to the point where we can make the argument more convincing than they can. Instead of talking about why we need to use GraphQL, Robert Zhu discusses the pitfalls of GraphQL at a GraphQL conference so that we understand the skeptics. Watching this talk made me reexamine how I promoted new ideas at work.

Software Engineering ⚙️

Blogged Answers: A (Mostly) Complete Guide to React Rendering Behavior – Mark Erikson

As I worked on building an interactive and performant table of thousands of items, I learned I still didn’t fully understand how React hooks behave. For example,

  • When I have multiple setState statements, will they force the component to rerender multiple times?
  • When I use multiple useEffect hooks, in what order do they run?
  • How is setState from useState different from the class component’s this.setState?

This excellent guide by Redux maintainer Mark Erikson answered all of my questions.

Demystifying Cache Normalization – Apollo

If you are using Apollo client, you need to read this article. It explains how Apollo Client uses GraphQL’s typed schema to denormalize and cache the responses and also goes into the limits of the Client in specific mutations.

People ❤️

Coinbase is a mission focused company – Brian Armstrong

Coinbase CEO announced that “we don’t engage here when issues are unrelated to our core mission, because we believe impact only comes with focus” while “we need to do a better job of being authentic about who we are.”

This announcement is full of irony. We cannot be authentic when we cannot talk about the things that impact us. Unless, of course, all your issues are already mainstream that they aren’t deemed “political.”

GitLab’s outbound recruiting model – Gitlab

GitLab has turned its recruiting model on its head. They explicitly state that “we do not accept inbound applications for our roles.” Looking back at my manager days, I realize all my best hires were from referrals and outbound sourcing. Maybe it’s not a bad approach if I can invest a significant amount of time recruiting.

Business 💸

Bond was the last straw: Regal and Cineworld will reportedly close all theaters in US and UK next week – The Verge

With the disappointing result from the highly expected movie “Tenet” and other blockbusters postponed until 2021, the second-largest US theater chain is also now shutting down its operations until 2021. Given the way things are going in the US, I wonder if any theaters will survive at all.

Young Reacts #93 – Sunsetting Moment.js

I am giving my first big conference talk in front of 450 people (!) tomorrow about how curiosity and courage led me to create a more significant impact in my current role. Unfortunately, the talk will be in Korean, so I won’t share the slides or the live recording here. But I hope to share my lessons here after the presentation.

Photo by Chris Montgomery on Unsplash

Software Engineering ⚙️

Moment.js Project Status – Moment.js

Moment.js, the de-facto standard Javascript library to handle time and timezones, has announced its active development, thanks to newer libraries like Luxon and the new Temporal proposal. I first used this library in my first job eight years ago, and still use it in my current role. Kudos to the Moment.js team to have shepherded the project to this point 🎉

If you are interested in learning more about the issue with “Date” in Javascript, read this.

Fluid Framework – Microsoft

Fluid Framework is “a collection of client libraries for distributing and synchronizing shared state” without a customized server application.

Tools like Google Docs, MURAL, and Figma have raised the bar for all collaborative applications. The business users expect real-time collaboration inside their tools now. I bet my team will have to implement something similar soon.

Speedy Neural Networks for Smart Auto-Cropping of Images – Twitter

People found yet another example of biased algorithms, this time on Twitter itself. The algorithm above seemingly prioritizes white people over black people when cropping images for the feed.

People ❤️

Things To Know About Engineering Levels – Charity Majors

Charity is on fire with her writing lately. This blog post is another gem. It scratches the exact area I’ve been wondering: how to get to that next level. Two takeaways for me: first, “not every opportunity exists at every company at every time.” Second, more practically, don’t join a startup without much high-level work to do, or a company already with enough staff/principal engineers.

Meeting everyone on a new team – Anna Shipman

Anna, a Technical Director at, recollects her introductory 1:1s with her 50-person organization. The article is very detailed and makes an intriguing read.

But I was a bit taken back because, even when her people explicitly told her that they enjoyed building relationships with her, she chose not to make the 1:1s recurring. I am used to and expect regular quarterly reviews with my skip-level managers. I suppose everyone has their preference.

Business 💸

ByteDance picks Oracle as partner to try to save TikTok U.S – Reuters

It is old news that Oracle, not Microsoft, will buy TikTok in the U.S. I am not sure what Oracle will buy exactly yet, given the Chinese sanction against the export of recommendation algorithms. In the meantime, the U.S. government bans TikTok and WeChat.

TLDR Stock options – LTSE Tools Team

This interactive tool provides a reality check on the value of the stock options you get from your prospective employers. The real challenge is to figure out where the employers fall on the curve, given that they likely won’t provide any information that might turn you away.

Young Reacts #90 – npm v7 beta

A few days ago, a college student asked me if there is anything I wish I learned sooner in my career. I thought I’d share my answer here too! 🙂

  1. I am solely responsible for my career. I need to keep learning and looking for new growth opportunities. Sometimes take new responsibilities opportunistically.
  2. I need to be able to look at myself in the mirror. That means empathy, inclusion, honesty, and integrity.
  3. Everyone will go through ups and downs at some point, so cut some slack. I will need it too.
  4. I don’t need to know/understand everything. While that is valuable, it is impossible. I need to let go and trust others to fill the gap.
  5. Be skeptical with higher-ups (especially the executives). If the upside (say, the company is getting sold) is big enough, they will screw me.
  6. My network matters. I am not good at expanding, let alone maintaining it. But my few connections already have opened up opportunities (including Netflix).
  7. Any feedback is powerful. But a positive, specific, actionable feedback is far more powerful because all top performers are different.

Software Engineering ⚙️

npm v7 Series – Beta Release! And: SemVer-Major Changes in npm v7 – npm

I just found out about this release from two weeks ago. I am excited by this news since npm will soon support monorepos. I am using yarn for them at work, but don’t want to upgrade to yarn 2 since it has departed radically from the package.json format I am used to.

Dear Google Cloud: Your Deprecation Policy is Killing You – Steve Yegge

How Google Cloud treats its customers makes me look back at how I am served by and serve other teams and platforms. The customer-oriented mindset that Amazon is famous for applies to my work, too— whether I am serving external or internal customers.

What’s a reference in Rust? – Julia Evans

I am having a rough time learning Rust, especially how to handle strings (Javascript was so much simpler!). But I understand them a little bit better now thanks to Julia’s explanation that a reference can point to the heap, the stack, or the data segment of your program.

People ❤️

Our remote work future is going to suck – Sean Blanda

A lot of us in the Silicon Valley buy that remote working is a good thing. However, if your company figures that an engineer in South Korea can do 80% of your job for 30-50% of your Silicon Valley (or in remote companies, Tier 1) salary, will it still employ you? I am not sure about mine.

I do believe that the remote work will provide opportunities for people outside the Valley. But under the current system, it will just pit every worker against another on a global scale.

Business 💸

Pinterest cancels huge SF office lease in unbuilt project, citing work-from-home shift – San Francisco Chronicle

Many people talked about how work from home will upend Silicon Valley’s commercial real estate. This announcement reads like the beginning of the upending.

Open letter to Australians – Google

Australians proposed a rule “to allow news media businesses to bargain individually or collectively with Google and Facebook over payment for the inclusion of news on their services” along with several other restrictions over the search and recommendation algorithms. I am not sure how this will pan out. Won’t Google and Facebook just cut mainstream news and surface more fringe media?