Young Reacts #229

My recent trip to Alaska was an eye-opening experience on many levels. The natural beauty of the state was breathtaking, and I was fortunate to meet some amazing people both on and off the ship. However, I was most struck by the challenges some senior people faced, who traveled in their walkers, wheelchairs, and scooters.

One of the most frustrating things I saw was how the cruise’s slow and buggy app made ordering food difficult for these passengers. They struggled to navigate the app and often had to wait for a crew member to help them. This was not only inconvenient, but it was also physically taxing for these passengers.Despite these challenges, I was impressed by the willingness of the cruise staff to accommodate the needs of their passengers with challenges. They were always patient and helpful, and they went out of their way to ensure everyone had an enjoyable trip. My experience in Alaska taught me a valuable lesson about the importance of accessibility. I will keep this experience in mind going forward, and I will do my part to make the world a more accessible place.

Software Engineering ⚙️The New JavaScript Features Coming in ECMAScript 2023

The article says it will be a small release, but I am still happy about the new Change Array by copy features: toReversed(), toSorted(compareFn), etc.

Cost-effective tracing with sampling

I’ve sampled my metrics and traces but was unaware of these terms. Head-based sampling makes a sampling decision before a request is handled, usually based on a sampling ratio. Tail-based sampling makes a sampling decision based on how the request was handled (status code, response time, etc.)

dalai: The simplest way to run LLaMA on your local machine

After two commands and an hour-long wait, I was running a language model with an accompanying web app on my laptop.

People ❤️DevEx: What Actually Drives Productivity

This study supplements DORA metrics by adding and categorizing 18 metrics to monitor developer experience. Three categories are feedback loops, cognitive load, and flow state, each with six metrics. My org can benefit from measuring these metrics to align our efforts.

<img width="650" height="474.33930093776644" data-attrs="{"src":"https://substack-post-media.s3.amazonaws.com/public/images/2e72d0f1-e4c0-4c6c-b700-269558b84345_1173x856.png","fullscreen":null,"imageSize":null,"height":856,"width":1173,"resizeWidth":650,"bytes":null,"alt":"DevEx: What Actually Drives Productivity: <h2>The developer-centric approach to measuring and improving productivity | TABLE 1: Example DevEx metrics","title":null,"type":null,"href":null,"belowTheFold":false,"topImage":false,"internalRedirect":null}" title="DevEx: What Actually Drives Productivity: <h2>The developer-centric approach to measuring and improving productivity | TABLE 1: Example DevEx metrics" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e72d0f1-e4c0-4c6c-b700-269558b84345_1173x856.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e72d0f1-e4c0-4c6c-b700-269558b84345_1173x856.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e72d0f1-e4c0-4c6c-b700-269558b84345_1173x856.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e72d0f1-e4c0-4c6c-b700-269558b84345_1173x856.png 1456w" sizes="100vw" class="sizing-normal" src="https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e72d0f1-e4c0-4c6c-b700-269558b84345_1173x856.png" alt="DevEx: What Actually Drives Productivity:

Example DevEx Metrics, copied from the linked article

Whose Opinions Do Language Models Reflect?

I’ve read about biases in machine learning models, but they’ve been anecdotal. But this study measured the bias by comparing the responses from language models to the public poll results. It found that the models are more left-leaning than the general public in the US.

Business 💰100 things we announced at I/O 2023

Of the hundred things, here are the five that stood out to me:

1. We introduced the Google Pixel Fold to our Pixel portfolio!20. The [generative AI search] experience will take your search queries and give you AI-powered snapshots of key information to consider with links to dig deeper and suggested next steps26. Over the last year, AI features in Workspace helped users write over 180 billion times.52. We announced a handful of improvements to and news about Bard, our experiment that lets you collaborate with generative AI76. Previously only available to Google One subscribers in the U.S., we’re expanding access to our dark web report over the next few weeks

Interesting Finds 💡The case of the 500-mile email

A fun story about how light can only go 500 miles in 3 milliseconds.

Young Reacts #228

By the time you are reading this, I will be on a 🚢 to Alaska. So I’ll be taking a one-week break to focus on recharging. I’ll be back in your inbox next week with a fresh batch of content.


Software Engineering ⚙️

ts-migrate

My coworker and I made our Typescript stricter on our monorepo with more than ten thousand Typescript files. We had more than twenty thousand type errors, and it would have been too painful to fix in one go if we did not have this ts-migrate script from Airbnb. They developed this script to automatically ignore type errors so that they can gradually fix the type errors.

Meet New Relic Grok, the first GenAI assistant for observability

New Relic says I will soon be able to ask, “What percentage of our users failed to complete the campaign creation workflow?” instead of having me go back and forth between our code and New Relic to conjure up a SQL query. I will propose that my team try this tool as part of our dashboard review sessions. My first question will be, “What should we look at first?”

Learn how to build a custom test reporter using node. js’ new native test runner

I did not know that Node.js after v18 comes with a native test runner. It was also interesting to learn that you can either stream or batch the test report generation.

Koala Evaluation Set

This evaluation set was used to test the effectiveness between two large language models by feeding the questions to the models and having humans evaluate the responses. The set is based on the actual user prompts, so I enjoyed reading some of these prompts. One of my favorites was “Write a poem about Mike and Joe becoming millionaires by leveraging the power of AI to become the greatest Agile coaches in history. Include content from the agile manifesto.”

Business 💰

Google “We Have No Moat, And Neither Does OpenAI

A leaked internal document of Google’s claim expresses concerns that Google’s competitive advantage in AI, the almost infinite amount of money to train the model, is not enough. Just as stable diffusion overtook Dall-E, an open-sourced large language model can overtake ChatGPT.

The Unified Content Business Model

Just as you manage a sale funnel for a product from awareness to consideration to conversion, content businesses also have multi-tiered touch points with consumers, from advertisements to subscriptions to offline consumptions.

Context SDK – Introducing the most intelligent way to know how and when to monetize your user

This SDK lets an app classify its user’s context (running, sitting on a couch, etc.) to provide the right experience for that context. Theoretically, you can do the same on mobile web as well as you can run ML models with WebAssembly, and can get access to the same sensors. But getting user permissions for those sensors will be much more difficult.

Young Reacts #227

After a month of boot camp at work, I am transitioning into my real team this week. I loved the relaxed environment to chill and learn. But I can’t also wait to meet my new teammates and lead my first project, which apparently will overhaul the revenue-generating part of our product.


Software Engineering ⚙️

Node.js 20 is now available!

I am glad that the competition between JS runtimes leads to a safer platform for developers. Node.js 20 comes with an experimental permission model feature to limit a JS program’s access to system resources. This permission model was the big selling point for Deno, Node.js’s main competitor. I wonder if Node.js will eventually default to be closed as Deno does.

Introducing npm package provenance

GitHub introduced a way to tie a published package to a specific commit in its code. It should make account takeovers like this far more difficult.

GitLab’s Merge trains

I learned about this GitLab feature at work. A merge train helps stabilize the main branch. Without it, two separate pull requests that are green on their own can break the main branch if both have conflicting changes. A merge train prevents that by automatically verifying a pull request again when another pull request is merged into the main branch.

People ❤️

Generative AI at Work

Here is another study on generative AI’s impact on human productivity. Similar to the study I shared last week, generative AI was observed to have reduced the skill gap between novices and experts.

Business 💰

Exclusive: Time to remove digital paywall

When it’s rare to find a decent publication without a paywall, Time chose to remove the paywall and go back to the ad-supported business model. Will they be able to find enough readers when Twitter is in disarray and short-form content is taking over the internet?

Amazon Is The Latest Major Ad Platform Going All-In On Machine Learning Tech

Amazon Ads has been growing rapidly as it can connect an ad campaign with consumers’ purchases despite Apple’s App Tracking Transparency policy. On the other hand, Meta and Google had to invest heavily in machine learning to maintain the return on ad spend since they don’t have purchase data.

Navigating the FTC’s new rules on deceptive patterns in subscription cancelations

I love the new proposed rule that a subscription cancellation should be as easy as a sign-up. This will surely hurt a lot of teams’ retention KPIs.

Young Reacts #226

I am hesitant to try new things. To mask my discomfort, I often say something like, “My time is worth more than that.” But sometimes, the best way to grow and learn is to step outside of my comfort zones.

That’s what I learned when I decided to take over the maintenance of my spa and pool. I had always hired a service company to do it, but I have become disappointed with the service. The company was often unresponsive, and my spa and pool water were never quite clean enough.

So, I decided to learn how to maintain my spa and pool myself. I was surprised that it wasn’t as difficult as I thought. I actually enjoyed learning about it and fixing things with my own hands. I realized I could do this and finally gave the service company the notice.

This experience made me realize how much I resist getting out of my comfort zone. Whether it’s maintaining a pool at home or coding in C# at work, I dread doing them before I first try and see what it’s actually like. But after overcoming that initial hurdle, I’m more confident about taking care of the house. That new scary thing is often not as bad as I expect it to be, and I hope to bring this experience to my work.


Software Engineering ⚙️

Large Language Models Are Human-Level Prompt Engineers

Here I thought prompt engineering was the future of software engineering. And, of course, LLMs are coming for those jobs too. In all seriousness, a research team built a model that, given an output, will create an instruction to make another LLM model produce a similar output.

What’s New in DevTools (Chrome 113)

In Chrome 113 (which is the beta version for desktop Chrome), you will be able to override a request header either via UI or code. This feature will be most useful when I need to test new infrastructure.

A script to auto add // @ts-ignore to lines with TypeScript compilation error

My coworker and I have been working to make our Typescript code stricter to avoid nullability-related bugs. Since our code has a few hundred files, fixing all issues in one go was impossible. We checked out some prior arts (one with Jest and one with a package structure) but were uncomfortable with the added developer friction. So instead, we decided to run a script to mask all existing failures with the directive ts-expect-error and fix them over time.

How Discord Stores Trillions of Messages

Engineers at Discord learned that Cassandra no longer fit their needs because of its operational toil, so they migrated to ScyllaDB. This doesn’t necessarily mean their first decision to use Cassandra was bad. Circumstances do change. The scale has increased, and technology has evolved. But it’d be good to revisit the decision-making process.

People ❤️

Experimental Evidence on the Productivity Effects of Generative Artificial Intelligence

It’s unclear whether generative AI will assist humans in doing things better or replace them by doing things cheaper. This research finds the latter, unfortunately for us human workers.

Rescuing a project in progress

When things aren’t working, you can turn around by focusing narrowly, getting small wins, and building momentum.

Business 💰

Streaming services urged to clamp down on AI-generated music

Even if the trained models do not generate music similar to its input, I think the music’s copyright owner should decide if their music can be used to train a model, just as I should be able to determine the same for my personal information.

Stripe leverages GPT-4 to streamline user experience and combat fraud.

I am just amazed at how quickly Stripe adopted this technology in their business.

Young Reacts #225

After a week of attending training classes and watching hours of educational content, I am feeling the pressure to prove what I can do even though I know I shouldn’t. My manager already asked me to coach my teammate on their project, which will be both an opportunity to show my impact and a danger to derail my onboarding. I will need to keep myself balanced through these early weeks.


Software Engineering ⚙️

On Endings: Why & How We Retired Elm at Culture Amp

I found the technical discussion of their experience with Elm enlightening. But I loved reading about the psychological aspect of publicly retiring a technology they championed even more. I appreciate the author’s courage to update the decision when their circumstances have changed and to share their decision publicly.

Yarn 2.2 🚅🌟 Dedupe, Faster, Lighter, …

I was always curious why the module lock files (yarn.lock and package-lock.json) end up with duplicate sub-dependencies when one version satisfies all requirements. Yarn and npm behave slightly differently: Yarn prioritizes stability, so it may reuse but not upgrade the sub-dependency of an existing module. On the other hand, npm prioritizes novelty, so it will always choose the latest valid version for the new module’s sub-dependency.

Issue: Analyze webpack compilation stats for performance insights

I knew GitLab was transparent, but I didn’t expect their technical work artifacts like this issue to be publicly available. I was looking to measure our webpack build performance and could lean on how GitLab measured their build performance.

People ❤️

Mass Layoffs and Absentee Bosses Create a Morale Crisis at Meta

In the name of transparency, Meta announced that there would be more layoffs a month ago. The next round of layoffs is right around the corner now, and the employees are panicking. It doesn’t look like the kind thing to do, but it probably helped the employees to get more financially ready for potential unemployment.

The $26 billion design startup Canva refuses to conduct layoffs. So it’s shifting employees into new roles

An excellent internal mobility system can help the org retain its employees’ domain knowledge and cross-pollinate ideas. Many at Square considered leaving Square but instead moved to internal opportunities that suited their interests. Seeing that, I sometimes wonder whether I would have stayed longer at Netflix if I had fully explored internal options.

Business 💰

Stripe 2022 Annual Letter

I was surprised that over a hundred companies process more than $1 billion through Stripe. I assumed that it’s cheaper to build the technology in-house at that scale. But I must be underestimating the complexity of payment processing.

Happy WebGPU Day

Chrome has shipped WebGPU, which improves how web browsers utilize GPUs better. It can enable Stable Diffusion to run on web browsers without the cloud.

Interesting Finds 💡

Testing readability tests: Flesch–Kincaid, ARI, and Gunning Fog

The fact that all these online tools to calculate readability return different scores for the same tests blew my mind. It makes sense now, but I never thought to double-check those free online tools.

Young Reacts #224

I started going to the office three days a week for my new role. None of my immediate team is in the same office, but seeing my new colleagues in person was still exciting. I even have an office mentor to help me get settled. I can see myself doing this as long as the commute does not get busier than it is already.


Software Engineering ⚙️

Semantic Line Breaks

Since Git tracks diffs in lines, it’s difficult to see what changed in long prose. But this convention utilizes the fact that most document formats ignore line breaks to split paragraphs into multiple lines, making changes more understandable.

Remixing Shopify

I just learned old news that Remix, the steward of React Router and the Remix framework, got acquired by Shopify. Shopify has been leading different technology initiatives, such as headless serverless backend, so I am curious to see how it all comes together.

New functionality for developers—brought to you by WebAssembly

It lists low-level things that are now made possible thanks to WebAssembly. You can now run a SQL database, edit videos, and run games on your browsers.

People ❤️

Here’s the latest version of our Engineering Career Framework

Dropbox updated its career ladder to describe different archetypes of senior engineers, which is the first one to do so that I know of. For example, it details that a tech lead is expected to lead and mentor their immediate team, whereas a solver is expected to tackle complex technical problems. I do wonder if the archetypes are official designations/roles.

Former Start-Up CEO Charged In $175 Million Fraud

When the CEO asked the director of engineering to fake customer data to win a $175 million acquisition, the director raised concerns and declined the request. That is real courage and integrity.

Ironically, the company’s name was “Frank.”

Business 💰

Samsung reportedly leaked its own secrets through ChatGPT

Given recent leaks such as iRobot’s and Tesla’s, we must assume that anything we share with the external systems is likely viewable to other humans. Whether that’s company secrets or private moments.

European Parliament approves pay transparency directive

Similar laws in California and New York helped me skip job postings that paid below what my family needed, which saved a lot of time in my job search. I am happy to see that pay transparency continues to spread across the globe.

Young Reacts #223

I oddly feel at ease about starting the new role at The Trade Desk for some reason. Maybe it’s because it will be my fifth job, and I’ve learned from past experiences how to navigate the onboarding process. Or perhaps it’s because I’m excited about the opportunity to work with such a talented team. Whatever the reason, I’m confident that I’ll be able to make a positive contribution.


Software Engineering ⚙️

The Cost of Craft

Quantitative measures are often seen as more objective and tangible than qualitative ones, leading to teams prioritizing features and metrics over craft and user experience. However, it’s important to remember that all measures are mere reflections of reality and that we should strive to find a balance between them.

Future Proofing Your Remix App

We can learn a lot from its approach to breaking changes. Breaking changes are a fact of life in software development. However, it’s important to minimize the impact of breaking changes on developers. Ideally, any breaking changes should let the developers upgrade iteratively at their timeline, and Remix’s feature flags for the breaking changes look like a great way to do so.

People ❤️

4 Laid-Off San Francisco Techies Tell Us Where They Are Now

It’s liberating to know that losing a job won’t be the end of our long career. It can be an opportunity to start fresh and find a new job that fits us better. I know not everyone can have this privilege, but if you do, please remember that you will find a way.

Product Design is overtaking UX, and it’s because we’re in a weak economy

I started seeing more product design roles than before, but I haven’t considered their difference from UX design. As I understand from the article, product design is a hybrid of product management and UX design, which asks the designers to fill in the product manager role.

Business 💰

The Inevitably Profit-Poor State of Today’s Streaming Wars

Matthew Ball published The Streaming Book, a short book that overviews the state of streaming and how the industry will evolve. This chapter argues that the current level of investment into content is not sustainable, the smaller companies will bow out of the competition, and the remaining companies will refocus on profitability.

Googlers Will Enjoy Fewer Free Snacks and Workout Classes Under Fresh Cuts

Just another day in this downturn.

Young Reacts #222

I am excited to share that I am starting my new role as a staff engineer at The Trade Desk in April. I am excited about the role for several reasons, but here is the big one.

When I started my career, I didn’t think much about the domain/industry I was in. I assumed that my team could fill me in when necessary and that the domain knowledge was easy to pick up. So I changed my roles without considering their domains. I moved from data analytics to social media to content producing to e-commerce.

Only when I reached the senior level did I realize that my lack of domain knowledge held me back. Some of my high-performing peers, based on their understanding of the domain, had a vision of how their teams should evolve and were able to hold their teams and partners accountable for business success.

Following their examples, I wanted to build my expertise in an exciting and essential area. And I chose online advertising because it powers most of the consumer internet and continues to evolve due to changing regulations and new media platforms. So I expect this industry will continue to have many opportunities in this industry.

Software Engineering ⚙️

Kill Your Personas

When I thought about accessibility, I only considered those with permanent disabilities. So I often deprioritized accessibility for my products. This article taught me that there are temporary and situational factors, too, and that accessible tools help many more people than those with permanent disabilities.

You Don’t Need a Build Step

Since Deno doesn’t have years of legacy software to support, they challenge the status quo in the ecosystem, which helps me to solidify my mental model. This article taught me to categorize different build steps into two: those that improve the dev experience (compiling, bundling) and those that will enhance user experience (minifying, code-splitting).

How Skyscanner Embedded a Team Metrics Culture for Continuous Improvement

When you roll out new initiatives like team metrics, it’s crucial to take time to win the team’s hearts and minds, which will take much longer than the rollout itself.

Hyundai Promises To Keep Buttons in Cars Because Touchscreen Controls Are Dangerous

This isn’t about software engineering but it is still an excellent example that a high-tech solution isn’t always better.

People ❤️

The End of Front-End Development

I agree with the author that front-end engineers’ jobs are not at risk. Our jobs are just changing, but that has always been the case. We won’t be able to keep our jobs ten years later by using the same tools and methodologies. We should improve our problem-solving and prioritization and pick up the necessary skills (prompt engineering, IDEs with AI) along the way.

Managers Exploit Loyal Workers Over Less Committed Colleagues

I have an allergic reaction to the word “loyalty.” As we’ve seen from the tech layoffs, no company is loyal to its employees, and employees shouldn’t be expected to be so, either. This research that loyal workers get asked to do more free work is another reason why loyalty isn’t a good trait. Both as a manager and an employee, I much prefer the concept of an alliance.

Business 💰

Fingerprint Pro: The device identity platform for high-scale applications

Fingerprinting is a technique to identify individual machines without identifiers like cookies or device UUIDs. Instead, it uses a combination of information on the hardware, the operating system, and the browser. You can see it working on the linked website. Unlike cookies, the scary part is that one cannot opt out of fingerprinting.

Young Reacts #221

Happy Monday! I just returned from my trip to Korea, so I apologize if my jet lag shows in this issue. Enjoy 🙂


Software Engineering ⚙️

Debugging Architects

How does one stay relevant as a super-senior engineer who may not be coding as much? The author argues that debugging is an inexpensive and non-blocking way to discover the ground-level truth.

The 5 Categories of Engineering Metrics

DORA metrics (deployment frequency, lead time for changes, etc.) show an engineering team’s engineering efficiency, but the team should track more than that. Is the team meeting customers’ expectations? Are services healthy? How do individuals feel about the work?

People ❤️

Why you need a “WTF Notebook

A fresh set of eyes is a gift we can enjoy only for the first few months in a new environment. This article shares how to take full advantage of it.

Everyone messes up. Here’s how to say you’re sorry.

My takeaways are to be direct by using active language and to remember that it’s not about me but about the other person. It takes practice to apologize well. But it will further strengthen our relationships.

Life Is Easier With a Fake Assistant

Some pretend to be their assistants to be more direct in their asks and shield themselves from rejections. And it apparently works! The appearance of being important enough to have assistants helps them get dinner reservations, tickets, and so on.

Business 💰

Changes at YC

Even YC is adjusting to the macroeconomic shifts. But such an adaptation is not yet a sign of weakness.

Young Reacts #220

As I hung out with my one-month-old niece, I started thinking about what the world will be like in 20 years. I had no Facebook in high school, no smartphone in my first college year, and I still had my DVDs shipped from Netflix. It’s a very different world now, and I wonder what it will become in the coming decades.


Software Engineering ⚙️

Common Beginner Mistakes with React

It’s been a while since I worked with React, so I read this refresher. I knew most of it except the mistake with an async effect function.

Code GPT: Artificial intelligence inside your IDE with this open source extension

I wasn’t aware that there are open-source Chat GPT extensions like this. I wonder how legal it is to use this for work…

Snap.js

This “library” is not an actual library but a collection of patterns to replace lodash or underscore utilities. Even if you can’t abandon lodash due to browser compatibility, you can read different patterns on this website to test your knowledge of modern Javascript.

People ❤️

Apple Pie Position

This tweet has a lot of corporate cliches that are generally accepted well: “We have too many meetings,” “We need to replace our team meeting with written updates,” etc. The challenge is that some of these cliches are effective in some cases and not in others. So our professional responsibility is to judge when they help the business move forward and when they do not.

Staying aligned with authority

I enjoy being a contrarian and effecting changes. But this article tells me that my success also depends on my ability to align with my manager and leadership and earn sponsorship.

Business 💰

Silicon Valley Bank has failed

In case you missed the news, Silicon Valley Bank, a bank that primarily serviced startups and VCs, had a liquidity issue and was shut down by regulators last Friday. There was a fear that this failure would instigate widespread bank runs, but Federal Reserve stepped in to protect the bank’s depositors fully on Sunday.

Silvergate has collapsed

Silvergate Bank, a bank that most crypto companies worked with, also shut down last Wednesday as its financials took a hit from the recent crypto collapse.