Young Reacts #136

I’ve talked to a director last week about my career goals and one piece of advice rang deep. He said, “Don’t trust the people who say that titles don’t matter. They say that because they’ve had the titles. You should do what you want.”

And another piece of advice he had: “You should write more.”


Software Engineering ⚙️

npm audit: Broken by Design

When I used “npm audit” for the first time, I was glad to have it. I was going through the same daily motion of “npm install” but now was able to enjoy the security benefit of experts. I still think that, with sufficient education and experience, it’s not that hard to read through the alerts and fix the ones I need to care about. But I see Dan Abramov’s point that it’s daunting yet not right enough for the newcomers.

Islands Architecture

Server-side rendering is usually followed by hydrating to a single-page application. What if, instead of having only one hydration point after loading, we hydrate by interactive elements? That could improve the performance. The creators of Snowpack came up with a new static site builder, Astro, that follows this architecture.

People ❤️

My questions for prospective employers (Director/VP roles)

I fully recognize that if you really need that role, it would be difficult to ask some hard questions. But also remember that asking good questions shows the interviewers that you are serious about the role.

Despite the title of the article, there are some good questions for lower-level roles, especially the first two sections.

A Manager’s Guide to Holding Your Team Accountable

Holding someone accountable and being held accountable are both inherently uncomfortable. So our discomfort is not a reason to avoid accountability. Start with simple, and non-judgemental questions. When we ask judgemental questions, that’s a sign that we waited too long before the questions and started creating our internal narratives.

Business 💸

Introducing Culdesac

When I hear the word “startups,” I first think of tech startups, and maybe some IoT or Biotech companies. But I never expected a city-building startup. Having to drive a car through traffic is the worst but most people have to bear with it because our cities are built to be only livable with cars. This company is challenging that status quo.

Young Reacts #136

When I consider leaving Netflix, I am most concerned about leaving its culture. I appreciate the no-nonsense, no-bullshit, yet empathetic attitude. I worry that I won’t enjoy working at another company due to its culture, even if the role is what I want. Is my impatience getting in the way of enjoying the good things I have now?

Photo by Elena Mozhvilo on Unsplash

Software Engineering ⚙️

A Deep Dive into Airbnb’s Server-Driven UI System

Server-Driven UI seems to be the natural next step after the team creates the shared data layer and establishes the common design system. In my organization, we started seeing use cases to use Server-Driven UI to build new forms or deduplicate domain logic between the server and the UI. So this article from Airbnb was an inspiring read. I am curious now how the backend system manages the UI configurations.

Towards a better responsiveness metric

Defining a UI performance is tricky as users can interact with it in so many ways. Thus, we usually rely on our guts or fly blind. I learned a great deal about how to think about measuring performance from this article.

The State Of Web Workers In 2021

I had been confusing web workers and service workers before I read this article. But this article clarified that for me. A key takeaway: web workers are not a performance silver bullet due to their limited data sharing.

On scaling graphql subscriptions

As I only use GraphQL from the client-side, I don’t understand the costs of certain features. This article gave me a glimpse of that complexity.

People ❤️

4-day work week companies

There is no magic to the 40-hour or 5-day work week. It is a modern invention due to industrialization and will change as societies do. I appreciate that a few companies, such as Buffer, are willing to experiment with different approaches.

How can you evaluate the caliber of people at a company before joining it?

I believe that the companies we choose to join are far more important to our careers than how we show up at work. So knowing how to evaluate the companies and their people from the outside is as important as interviewing well. I have a few rules of thumb myself: when the interviewer says, “we are all smart people here,” it is a sign of hubris and a red flag to me.

Young Reacts #134

As I talk to different teams about their management roles, I realize that I haven’t actually interviewed for a manager role before. I underestimated the amount of preparation and failed to present myself in the clearest and best way. In fact, I’ve received one feedback saying I should have prepared more. There weren’t that many resources available online, but I found one at Exponent and will give that a go.


Software Engineering ⚙️

GitHub Copilot

GitHub announced a VS Code extension that could produce simple functions based on the context. The webpage sure looks impressive. But I don’t have access, so I do not know if it works well yet. Even if it does, I wonder if it has a risk of leaking the proprietary code to the outside.

Is WebAssembly magic performance pixie dust?

This article shattered my misconception that WebAssembly will always make things faster than Javascript. No, WebAssembly may be able to do so in the future, but V8 is already very good at running Javascript fast.

Collecting GraphQL Live Query Resource Identifier with GraphQL Tools

I liked how the author solved eventing by wrapping GraphQL resolvers with common data registration. I wonder how to scale if the number of live queries grows too big.

People ❤️

Dealing with Disappointment

Putting myself out there has the potential to disappoint. I heard from my top-choice role that they wouldn’t move forward with me. It hurt then and still does. But as the article says, “although disappointment is inevitable, being discouraged is always a choice.”

Business 💸

Exclusive: New LinkedIn Data Leak Leaves 700 Million Users Exposed

LinkedIn allowed a malicious actor to scrape data off of its API. While LinkedIn asserts that it’s technically not a breach, it still doesn’t put my mind at ease.

Slopes Diaries #40: The Droid (Stats) You’re Looking For

No explicit takeaways, but I liked reading an indie developer’s experience releasing an Android port of their iOS app.

Young Reacts #133

A couple of months ago, a mentor advised me to start talking to multiple companies if I want to go back to management. She said that if I have other opportunities lined up, I wouldn’t be disappointed when I inevitably get rejected by some. So I did. Having a few conversations, I’ve learned that having three or four 30-minute conversations a week drains me quickly. Honestly, they have gotten in the way of my work too much.

On the bright side, I was able to pick up what matters to me at this time:

  • I want to focus on management. I don’t mind coding sometimes, but I don’t want to be a tech lead of a 3-person team.
  • There must be at least one of these three things that excite me about the role: maybe it’s because I’ve used the product, because I believe in the team’s mission, or because I think I will grow tremendously.
  • (a weak preference) I’d rather get RSUs than options.

Armed with this clarity, I started having conversations more selectively, opting out of conversations quicker.

Photo by engin akyurt on Unsplash

Software Engineering ⚙️

No code reviews by default

After working with pull requests for so long, I stopped questioning the utility of pull requests. But this article got me thinking. Primarily, I find pull requests informative. I approve almost automatically as I trust my colleagues to deliver working code. I instead focus on understanding by asking questions and leaving comments on the pull requests.

I now see that there is sometimes tension among my team because we aren’t fully aligned on why we do pull requests. So this should be a good topic for my next 1-1s.

Import assertions

This proposal lets Javascript assert against a module import. Its first use-case is to validate the type of imported modules (JS or JSON, for example). It’s not super useful for me, but I am interested in how the ecosystem will use it in the future.

ES2021 is already cut, so this stage-3 proposal will probably be part of ES2022.

The State of WebAssembly 2021

My two takeaways from this survey:

  • AssemblyScript is the second most popular WebAssembly language. (I am curious if the JS developers, in particular, favor the language)
  • WebAssembly is expanding outside the “web.”

Reducing Product Risk and Removing the MVP Mindset

Yes, we should deliver iteratively. But we should be clear about why: are we trying to learn more about the problem or deliver value quickly?

People ❤️

Make Boring Plans

Planning is integral to successful execution, especially if there are unknown variables: cross-functional coordination or new technologies.

Business 💸

LET’S BUILD A CHIP – WITH MATH

Many companies started producing chips internally, most notably Apple with its M1. The article goes into the cost of doing so. The key takeaway is that the decision to produce chips internally comes with a huge sunk cost with future cultural and strategic implications.

Facebook will start putting ads in Oculus Quest apps

It reminds me of Wall-E’s dystopia where ads are omnipresent.

Young Reacts #132

Thanks to all the new online services such as Netflix, DoorDash, and Amazon Fresh, I almost forget how challenging the real world can be (especially so, if I don’t read the news). When we moved yesterday, I was reminded that there are still tough, physical challenges. As we were unpacking and putting stuff away, I kept thinking, “I wish life could be like Sims and I could just drag and drop stuff.” But boxes had to be opened, and stuff has to be put in place. This is why the metaverse concept is so enticing to me, a world without real constraints.

Photo by Michal Balog on Unsplash

Software Engineering ⚙️

Announcing GraphCDN, the CDN for GraphQL APIs

People criticize GraphQL that GraphQL queries are difficult to cache via HTTP. GraphCDN is an answer to that criticism that uses edge computing to cache the query responses. Impressive!

Scaling relational SQL databases

When I talk to companies for a manager position, some companies ask me to go through technical rounds, which makes sense since they expect their manager to lead technically. However, backend system design is not part of my day job, so I started reading more about backend topics such as databases. My takeaway from reading this article: performance tuning, vertical scaling, replicas, or sharding.

An Unbelievable Demo

Not strictly software-related, but it is a horrible story about how big corporations can be oblivious about the IP. I won’t spoil it for you.

People ❤️

The Return of the Office

Not everyone wants to return to the office. The article discusses the dichotomy between managers and frontline workers. While that dichotomy makes sense, I suspect that other socio-economic factors influence people’s opinions. Regardless, we should show empathy for our colleagues.

People Show Support for Interns after HBO Max Email Snafu

An intern at HBO Max inadvertently sent testing emails to real customers. Then lots of people jumped to share their screwups from their earlier days. That’s amazing, but we also need to admit that the more “senior” professionals still screw up every day. “To make mistakes is human.

Business 💸

Google is using AI to design its next generation of AI chips more quickly than humans can

We are one step closer to singularity.

Young Reacts #131

This Tuesday (June 15), California will “open up…business as usual.” The state government won’t enforce mask mandates or capacity reductions. It will be such a relief after long 15 months. I only hope that this relief isn’t short-lived.

Photo by Mike Petrucci on Unsplash

Software Engineering ⚙️

The Plan for React 18

React 18 is now in the works and looks like it will be released soonish (they say several months). I am glad that they plan to provide a backward-compatible upgrade path—that has been the best feature of React. Of the mentioned features in the announcement, I particularly look forward to startTransition.

Best Practices for Designing Federated GraphQL Schemas 🎞️

A good list of things to keep in mind when working with a federated GraphQL schema. I would emphasize that following the guidelines in practice is where the real work is, especially with this one “Prioritize client needs, but not just one client’s needs.” (at 13:25 mark).

People ❤️

How to Feel Progress

My anti-pattern at work is that I seek quick wins and get impatient with “slow” progress. Some types of meaningful work are possible with such an attitude, but most require persistence and long-term vision. This article made me realize that estimating the required effort and the timeline is key to moderate my impatience.

From Listening Tour to State of the Union

When I came up with a vision for how authorization should work at Netflix Studio, I learned that a vision doesn’t get created in a vacuum; I gathered information with ad-hoc 1:1s, surveys, and focus groups. Only after understanding different points of view across the org, was I able to create a compelling, meaningful vision. As mentioned in the article, one technique I found especially useful was asking whom else to talk to at the end of the 1:1s. This article suggests other helpful tactics, as well.

Tag-ups

Occasionally I find some topics not useful for team-wide meetings but aren’t well covered by 1:1 meetings. A tag-up is a project-specific meeting that gets the right set of people together regularly. I will turn some of my 1:1s into this format.

Business 💸

Y Combinator entrepreneurs say they were kicked out of the accelerator for criticizing its founders and slamming efforts to skip vaccine lines

Incidents like this slowly make me lose faith in the mainstream Silicon Valley startup scene. This isn’t the first time top VCs reacted poorly to criticisms. If you are that rich and powerful, you can’t pretend to be a victim of media and Twitter.

Young Reacts #130

My wife started her summer internship last week. I was excited about her getting real work experience as a UX researcher. But I was also nervous for her because the introductory period could be scary and stressful. But thanks to her caring mentor, who actually spends time providing the context and listening to her questions, she is adjusting without much trouble. He provided a detailed plan for the summer in advance and checks in with her at the end of every workday. I am thankful for what he does to help my wife succeed and want to replicate the kindness for others in the future.

Photo by Jessica Lewis on Unsplash

Software Engineering ⚙️

15 Things You Should Know About Product Managers

This article made me empathize with product managers more deeply. All of us engineers work with product managers one way or another, so maintaining a productive relationship is key to our own success. Let’s not set our partner up to fail.

The case against normalized caching in GraphQL

I agree with the author that rich GraphQL clients force UI developers to know too much about the domain. But I don’t agree with the author’s solution to use browser caching. In an enterprise environment, GraphQL subscriptions enable the UI to react to data changes correctly and promptly.

Introducing Handsfree.js

This library enables JS apps to understand hand gestures, facial expressions, and poses. It’s impressive what Javascript can do these days.

People ❤️

I Want to Hire Someone My Team Said No to on the Debrief: Ask the EM

Even though most companies are not democracies and decisions are to be made by certain individuals, relationships and trust are important. To keep the hard-earned trust, try understanding where differences come from. Disagreements are signs of possible misalignment.

Surviving IDEO

Bad culture hurts real people and turns the abused into abusers. This is a story of ex-IDEO employees.

Inclusion and diversity matter

Snowflake and Medium are among the latest companies to get publicly hammered on I&D issues. I get that most executives do not have the background to navigate the complex inclusion issues at work. But these issues create serious retention and hiring problems, so they better figure this out soon.

Business 💸

Colorado Excluded

Colorado started requiring all job postings for Coloradans to contain salary ranges. To avoid noting their salary range, some companies decided to exclude Coloradans from their candidate pool. For example, one Twitter job posting says, “Roles listing ‘Remote US’ as a location are not currently available in the following states: Colorado, Iowa, and Louisiana.”

Young Reacts #129

I don’t have much to add this week. Hope you are enjoying the long weekend!


Software Engineering ⚙️

Clarity on Flow’s Direction and Open Source Engagement

The Facebook engineering manager of the Flow team provided the new direction for Flow, a Typescript competitor. In short, the goal of Flow is to support Facebook engineers, and the open-source community’s needs won’t count. I applaud the bravery to say “no” publicly, but it’s really a time to get off Flow if you haven’t already.

OpenSLO

OpenSLO is an open-source project to create a common interface to define SLOs, or service-level objectives. While the idea looks interesting, I am skeptical about its value; what problem do centralized SLO definitions solve without consistent measurements between vendors?

People ❤️

Don’t Let Employees Pick Their WFH Days

The author gives two reasons why companies should decide when to work from home: the challenge with the hybrid model and the risk that flexible schedules can put women at a disadvantage. I strongly disagree with the second argument. That risk should be a call to improve how we promote and grow employees equitably, not a reason to take away the flexibility from families.

The Elements of Self-Reflection

I read this article as a pre-read for an I&D workshop, but the article is broadly applicable. Of the three abilities discussed (openness, observation, and objectivity), I see openness as my biggest area for improvement. It’s been difficult to be honest with myself about my values as I conflate mine with others’.

Business 💸

SPACS, EXPLAINED

Many late-stage startups are choosing to go public via SPAC rather than IPO. I wanted to understand better how a SPAC, or a special-purpose acquisition company, works and found this article quite informative.

The Cost of Cloud, a Trillion Dollar Paradox

This interesting analysis argues that the economics works against cloud in a scaled environment as the negative impact on the operating margin hurts the market capitalization.

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.

Young Reacts #127

For the last couple of weeks, I rarely wrote code and instead focused on the bigger problems: crafting a vision and driving cross-functional projects. Unfortunately, I started losing the sense of progress as these complex projects happen over multiple quarters, not in hours or days. So I spent last Thursday and Friday coding a bit, and I felt so much better afterward.

If I want to tackle important and difficult problems, I need to learn how to stay motivated without daily dopamine hits from coding. I will bring that up with my manager tomorrow and seek advice.


Software Engineering ⚙️

GraphQL WG Notes – May 2021

I went to my first industry-wide working group meeting last week. I was both excited and nervous about being in the same room with the folks like Lee Byron and Benjie Gillam. Being recorded didn’t help either. But the great news is that the group fully recognized the problem the nullability proposal tries to solve and advanced the proposal to Stage 1.

Announcing Rome Tools, Inc.

Rome, started by the creator of Babel, plans to be the one toolchain to solve all your frontend development needs. Now it has a backing company. It’s unclear how they plan to make money yet.

People ❤️

Strategic Prioritization Using Even Over Statements

Prioritization isn’t about a choice between the good and the bad. It’s about a choice between two different good options. If we aren’t ruthless, we will end up with a wishlist, not a priority list.

Is it a bad job or just a bad day?

Until I got my green card recently, I never had the liberty to quit whenever I wanted. So I am struggling with what conditions warrant a job change. “🧩 The Future Alignment Lens” from the article helped clarify my thinking, especially this question: “Am I spending my time on activities (coding, designing, selling, etc.) that I want to master?”

Caring Makes or Breaks an Engineering Organization

The term “caring” seems to be the equivalent of “engagement.” But I prefer the former since it is much easier to picture what it means. We need to see if we care about our company, co-workers, and ourselves.

How angry Apple employees’ petition led to a controversial new hire’s departure

One can’t insult half the population and expect to have no repercussions. One must own up to it or own the circumstances.

Business 💸

South Korean internet giants battle for top spot in web comics

Webcomics in Korea has been a source for many compelling IPs; many hit movies and TV shows such as Along with the Gods, Kingdom, or Sweet Home are based on webcomics. Creating a new IP used to be a risky investment. But the open webcomics platforms turned it into a business opportunity.