Young Reacts #110 – Take risks to grow your career

I started reading books on film making and the movie industry to better understand my team’s projects as we prioritize them (this was from my 2020 review). I’ve learned that the same titles in Hollywood and Korea do not mean the same roles from one book. I am also learning how movies have been distributed pre-Netflix based on seasonality and competition.

I got so much more excited and informed about my team’s impact that I think you should also read more about your company’s domain, even if you are “just an engineer.”

The book I am reading this week. Image from 101thingsilearned.com

Software Engineering ⚙️

How to communicate about tech debt

Tech debt has become that thing all ‘good’ engineers should strive to get rid of. But it’s quite the contrary. We, engineers, are hired to drive business results. So tech debt, like any other project, should be viewed and prioritized in the context of business outcomes. We should learn to explain either quantitative or qualitative business values of the tech debt work to our partners. Link

Is it possible to migrate from a cloud provider in a week?

When Parler went offline last week after AWS refused to work with the controversial service, its founder said the service would be back in a week. But is it possible? Corey Quinn, the famous cloud economist, doesn’t think so. The service hasn’t come online yet. Link

People ❤️

Take risks to grow your career

To keep growing, we need to be exposed to new challenges and learn from them. But once we get that cushy role, it is hard to get out of the comfort zone. I already feel more risk-averse since I work at Netflix — it pays well, my family is proud of me, and so on. I can’t change my roles yet anyway because of my immigration process. But will I try something new when I can? Link

“Escape your 9-to-5 job”

Gumroad is not your typical venture-backed startup. There is no hypergrowth, long hours, nor promised career growth. Even its founder is working part-time (they also pay 50% less for any hours beyond the first 20 hours). This serves as a good reminder that not all paths have to look alike, and we should choose our own lifestyle. Link

Hiring is the last resort

When work gets overwhelming, managers’ first instinct is to hire more. I’ve made that same mistake in the past. But hiring is the most expensive and slowest lever to pull and will make the organization slower to adapt in the future. Philip Fisher-Ogden (an engineering director at Netflix) recommends prioritization, optimization, and innovation before hiring. Link

Business 💸

TV is now a game console

LG’s 2021 TVs will support two game streaming platforms — Google Stadia and GeForce Now. Previously, both platforms have only been available on computers and their proprietary devices. As Phil Spencer said, TV is now turning into a game console. Link

Sports and Gen Z

Gen Z won’t sit down and watch the 2.5-hour match in full but will follow the sports stars on social media for a peek into their personal lives. Also, there is uncertainty from COVID shutting down youth sports. Link

Young Reacts #109

I am back from my trip to Korea and will be back to work this week. I am mildly excited to work again, which shows my vacation was long enough. My year begins now!

Photo by Zoltan Tasi on Unsplash

Software Engineering ⚙️

The State of CSS 2020 Report

My two takeaways:

  1. Tailwind CSS (now with Tailwind UI components) is the thing to learn.
  2. Utility CSS classes are not a minority opinion anymore.

Link

Leveraging the TypeScript API to find issues in your code

I didn’t expect that writing a script to look at Typescript’s syntax tree could be accomplished under 100 lines of code. Something for me to try when I have tedious, mechanical refactors in the future. Link

GitHub’s WebGL Globe

GitHub launched its cool looking website with a 3D globe, visualizing Github’s activity. This article explains the visualization code line by line. Link

Iterating over iterable JS objects

During my phone screens, I see even senior candidates struggle with iterating over an object. It would be a good idea to brush up on iterations if you can only come up with forEach when you read this. (Spoiler: use for-of) Link

People ❤️

Would you discuss politics at work?

This week was marked by a series of challenging political events in the United States. Some workplaces ban the conversation around politics to avoid the pitfalls. But I personally believe acknowledging the stress on all of us and providing the space to process our feelings are the best course of action. Link

Learn to deal with uncertainty

As an engineer, I am used to immediate and clear feedback; I wait for 10 minutes, and automated tests accept or reject my work. But when I discuss long-term product roadmaps or lead cross-functional projects, there are no such mechanisms. This article helped me understand why I struggle with those high-level discussions: fewer constraints, longer feedback loops, and more high-stake problems. Link

Interviewing for Engineering Manager

I am thinking of returning to engineering management in the next year or two. Since it will be quite a big shift, I started looking at what companies look for from their engineering manager candidates. This is from Reddit. Link

News 📰

Twitter bans Trump

Twitter finally bans Trump’s account from the service after Trump used the service to encourage his supporters to storm the Capitol. I am glad that Trump won’t be able to use Twitter to seed confusion and incite violence. But Twitter is not the only social network, and other services still enable these extremists. (The alternative Twitter-like service is now suspended from app stores for the lack of content policing)

A society can’t leave its safety up to the few tech execs. The only proper way to censure and contain Trump will be through democratic institutions. Link

Young Reacts #108

I am making a formatting change to surface my reactions more clearly. Please let me know if you liked it by replying to this email.


Software Engineering ⚙️

A reasoned approach to technical changes

Successful execution in Phase 2 eventually leads to some self-propelled adoption, where people you did not explicitly sell on the new tech are freely choosing to use it.

A chief architect and a principal engineer at Slack describe how Slack makes technical changes. The defined exploration-expansion-migration process looks almost identical to how my org operates. Link

The balance between hacks and overanalysis

We have to be careful how we apply YAGNI, or You Ain’t Gonna Need It. The YAGNI mindset can make us miss significant cost savings. The right balance depends on our product’s lifecycle and will be somewhere in between. Link

AWS’s Google Maps alternative

AWS is now providing its location service like its competitors (think Microsoft Azure Maps or Google Maps). Since all my team’s infra is on AWS, this new location service is automatically a viable alternative over Google Maps. A notable backstory: Amazon, along with other tech giants, contributes to an open-source map database OpenStreetMapsLink

People ❤️

How to align now and the future

It is easy to only focus on the next project and forget the big picture.  The question“What will our product and business look like a year from now?” will keep us aligned with the long term vision. Link

How to negotiate

I am terrible at negotiating because I feel the urge to save my face. While this article is not work-related, I learned a lot about how to approach tough negotiations.

Never should one feel urgency to drop $20k+ on a rapidly depreciating asset.

Link

Business 💸

Stock market peaks while people suffer

The lasting impact of the pandemic will be economic polarization. Folks who live paycheck to paycheck had lost their jobs when millionaires and billionaires made significant gains. This polarization will lead to more political instability in the future. Link

South Korean population started declining in 2020. What now?

Since the modern economy is based on endless growth, I’ve been worried about how the economy will behave once the population contracts. Now, this isn’t just a hypothetical in South Korea. Link

Young Reacts #107 – 2020 in Review

I spent last week looking back at 2020 and summarized my thoughts here. I definitely have things to improve (taking better care of my body and questioning more critically at work), but I am happy that I survived the year without a big personal crisis. I hope you take some time to reflect on how you fared this troublesome year.


Software Engineering ⚙️

React Server Components – Addy Osmani

The React team came out with a new experimental concept called React Server Components, which enables continuous server-side rendering (vs. one-time server-side rendering). Among the many that came out, I found Addy Osmani’s explanation the easiest to understand.

How to sell SLOs to Engineering Directors – Thomas Césaré-Herriau

At a large organization, the ability to write a compelling proposal is among the most important to have. An engineer at Brex shares his proposal that successfully persuaded his org to adopt service-level objectives (or SLO). The key is to speak in the language that the audience understands.

People ❤️

Inside the Whale: An Interview with an Anonymous Amazonian – Logic Mag

Quite a revealing piece of interview. The interview covers anything from AWS’s meteoric rise to the impact of COVID to the social justice movement at Amazon. The most memorable quote to me was, “People at Amazon are mercenaries. …People work there because it pays a little bit better than the competition and it looks good on a resume.

Moving Upstream – Aviv Ben-Yosef

This article resonated well with my 2021 goal to understand and critique more at work. If I don’t have access to the necessary context or meetings to do my job well, I need to ask for it.

Business 💸

The Loop: A community health indicator – Stack Overflow

Stack Overflow’s community management team shares how they monitor the health of their communities via metrics. I am always fascinated by how different teams use metrics to understand complex systems. If you are curious about choosing the right metrics, this article by Julie Zhuo is golden.

2020 in Review

Photo by Kelly Sikkema on Unsplash

Here is my review of 2020, the weirdest year of my life.

Career

I had two career goals:

  • Expand my professional network
  • Embody Netflix culture

Good

  • Led multiple cross-functional projects successfully
  • Transitioned to remote working without a hiccup
  • Had a productive Q1 and Q2 at work
  • Got used to providing positive feedback
  • Gave a public talk to a crowd of 200

Bad

  • Couldn’t understand the importance of Q3 and Q4 projects
  • Failed to get enough context on my domain to have a deep insight
  • Still not used to giving constructive feedback honestly
  • Did not expand my professional network outside the talk

Intended Changes

  • Start questioning the underlying assumptions of our projects. I am only as effective as the impact of the projects I work on. I need to make sure that they are worthy of the team’s time.
  • Make time at work to play with new technologies that I am not comfortable with.
  • Be more honest about challenging conversations and my career growth.

Personal

I had quite a few personal goals in 2020:

  • Continue to have a happy marriage
  • Rest more
  • Get leaner
  • Reach personal records on big lifts (Bench 225 lbs & Squat 360 lbs & Deadlift 405 lbs)
  • Keep up with the recent trends.
  • Read long forms vs. short forms

Good

  • Stayed healthy throughout the year
  • Daily walks with my wife gave us more focused time with each other without devices.
  • Ran 10k in one go (first time ever!)
  • Published my newsletter every week
  • Read a couple of eye-opening books like How to Hide an Empire and Riding for Deliveroo

Bad

  • Messed up my diet and gained 5 lb while losing muscle.
  • Unable to work out as much as I wanted to due to COVID and the California wildfires
  • My sleep pattern was out of control
  • Couldn’t find the will to meditate
  • Read fewer books than I originally planned (37 out of 52)

Intended Changes

  • I’ve relied on my years of training to get away with an unhealthy diet and inconsistent sleep. I believe that reserve is now depleted. I need to start taking care of myself.
  • Accept that my life pattern has changed and adjust my plans accordingly.

Overview

I am grateful that none of my family has caught COVID-19, that my wife and I got to spend more time with each other, and that I did not have to worry about my job. I did ok considering everything. 

Young Reacts #106 – What do I want from my career and my life?

I had a bit of a crisis last week. On my bed lying, I realized that I would be almost 50 in 15 years. I don’t have as much time as I thought I would (you may say 50 is the new 40, but I don’t buy it). So I am spending this holiday season contemplating where I want to be and identify the specific areas I need to improve. These are the questions I’ve been thinking about:

  • Do I continue down the technical path or return to management? Which one will I be better at?
  • Do I keep working at Netflix or move (I told myself that I would work here for 5 years)? If I do move, then where?
  • Most importantly, what do I want from my career and my life?
Photo by Zac Harris on Unsplash

Software Engineering ⚙️

Measuring app stability to reduce technical debt – James Smith

I always found it hard to create a metric for UI app stability. Two suggested metrics look like a good starting point: “a percentage of successful application sessions” and “a percentage of daily active users who do not experience an error.”

The Import On Interaction Pattern – Addy Osmani

This article contains a list of useful performance tips if you are building a large application. As my team plans to build micro frontend components next year, these tips will come in handy.

ts-morph – David Sherret

ts-morph is a wrapper library to help manipulate Typescript’s abstract syntax tree. This is useful if you need to update some Typescript code automatically.

People ❤️

Simple Burnout Triage – Ben McCormick

One simple question to self-check if you have burnt out:

If you take the pace & quality of the last 2 months of your life and repeated it again and again, how long would you be able to sustain it?

A better offer letter – Henry Ward

Lack of transparency around a startup’s preference stack bites employees in less-than-ideal exits. I am not sure if Henry Ward’s own company Carta still does it (the post is from 2016), but this transparency level should be the norm.

Reimagining Employee Productivity in 2021 – Sabry Tozin

Now that we survived the year of the pandemic and normalized remote working, what’s next? A VP of Engineering at LinkedIn shares his perspectives. I especially liked his point that “[e]very professional interaction we have in this new world is scheduled, and this is not how we’re accustomed to work.”

Business 💸

Roku Torments Entertainment Giants in Quest to Dominate Streaming – WSJ

As the streaming market becomes more competitive, the device makers’ power is increasing. Roku is leading the smart TV market and throwing its weight around.


Young Reacts #105 – @defer and @stream Directives

My mandatory 14-day quarantine finished last Friday. I went out to Seoul, and it was a bit surreal to be around that many strangers. Then I realized it had been more than 9 months since I was anywhere near a crowd. 2020 has been weird and challenging in a deadly way. I hope 2021, with vaccines arriving, is much better.

Photo by Adam Chang on Unsplash

Software Engineering ⚙️

Improving Latency with @defer and @stream Directives – Rob Richard, Liliana Matos

With GraphQL, it is so easy to craft a query that fetches megabytes of data. Large queries like that increase the server response time and slow down client apps that need to parse the response. The new @defer and @stream directives enable fetching a type or a list in a piecemeal fashion.

What’s new with Apollo Client v3 and GraphQL Codegen – Dotan Simha

GraphQL’s true power is in its tooling ecosystem. Dotan Simha, the popular GraphQL Codegen library creator, discusses four plugins that you can today. I plan to adopt @graphql-codegen/fragment-matcher and @graphql-codegen/typescript-apollo-client-helpers this week.

Finding Critical Open Source Projects – Google Open Source Blog

Google Open Source team created a way to rank the importance of open source projects based on the related metrics. I was a bit surprised to find that React Native was ranked higher than React.

People ❤️

Standing with Dr. Timnit Gebru – Google Walkout For Real Change

The controversy around the firing of Dr. Gebru is gaining more steam even as Google CEO Sundar Pichai promised an investigation. The lack of transparency even for the internal folks is jarring.

Evolution of my role as a founder CTO – Miguel Carranza

Miguel Carranza, a CTO of a Series A startup, shares his journey from a two-person company to a team of 19. He is now transitioning from being a technical contributor to an engineering leader. I like that I got to hear a rare story of a non-CEO cofounder.

Business 💸

Announcing Workplace Records for Cloudflare for Teams – Cloudflare

While the idea of remote working from anywhere is liberating, it does make legal and tax problems for the employers; some jurisdictions require you to pay local corporate taxes if your employees work there. That creates a need for a tool like Workplace Records, which tracks where your employees are working.

Death of an Open Source Business Model – Joe Morrison

A popular map rendering library, mapbox-gl-js, just turned proprietary like Redis or MongoDB. Given that the cloud providers all keep adding new features to beat the competition, the venture-backed open-source companies have to figure out how to differentiate.

Young Reacts #104 – A Failed Internal Transfer

I applied for an internal transfer to an internal platform team for which I couldn’t pass the interview. My friends and family are incredulous that I had to go through an interview again for the internal transfer. While I am also deeply disappointed, I respect that the team stuck to the company’s culture of hiring only the best for the position.

Thankfully, the hiring manager offered to walk me through the solution to help me get prepared for the next time. 😃


Software Engineering ⚙️

Changing Lanes: How Lyft is Migrating 100+ Frontend Microservices to Next.js – Lyft

A JS build system requires an enormous amount of effort to maintain. Multiply by 100, and you get a huge productivity sink across teams. Lyft’s platform team leveraged Next.js for build best practices, jscodeshift for automatic platform upgrades, and Webpack plugins for shared code.

Module Federation: Micro-frontends with webpack 5 – Hege Haavaldsen

I heard of module federation newly introduced in webpack 5, but I never grasped how it could be used until I read this article. I like how simple it is to set the federation up, even though I am wary of relying on matching strings to federate.

New – Use Amazon EC2 Mac Instances to Build & Test macOS, iOS, ipadOS, tvOS, and watchOS Apps – AWS

Now we can build iOS apps on AWS instances. However, the price tag i’ price tag is quite hefty at $25.99 a day, which means you can buy a mini in 77 days. I am curious to see how iOS CI/CD space will evolve.

Artificial Intelligence Incident Database – Partnership on AI

This Database publicizes incidents related to AI, such as self-driving accidents, market flash crashes, and facial recognition biases. The hope is that the industry learns from one another’s mistakes and matures faster. The website looks like it is from the ’90s, but the entries are interesting.

People ❤️

The withering email that got an ethical AI researcher fired at Google – Platformer

Another controversy at Google. The contradictory accounts from the researcher and the department’s head make it hard to understand what exactly happened from the outside. But I could see her frustrations from how she was treated as a woman of color.

Business 💸

WarnerMedia’s CEO explains why he’s blowing up the movie business – Jason Kilar

In 2021, WarnerMedia will release all of its movies via HBO Max on the same day as theater releases. COVID-19 accelerated Hollywood’s transition to streaming by a couple of years. Two things to watch: 1. whether this acceleration took away time from Netflix to grow further, and 2. whether theaters will survive as a medium in the long term.

China’s iQIYI to Produce ‘Roommate’ as its First Korean Original Series – Variety

Many US streaming services are producing local-language originals across the globe. But I never thought of Chinese streaming services. Eyeopening

‘It will change everything’: DeepMind’s AI makes gigantic leap in solving protein structures – Nature

Another one of Deepmind’s breakthrough research. AlphaFold can predict a protein’s structure and function, enabling scientists to understand which genes are related to certain diseases.

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