Weekly Notes 010 - Building avocado-ui, Comparing javascript build tools, and Migrating DevTools to TypeScript

Hey, and Welcome to my weekly notes. I hope you find something useful from my experience this past week.

  • I started working on avocado-ui last week. Avocado is an experiment to make a design system that is accessible, themeable, and beautiful by default. So far, I have 3 components on the documentation site. I'm working on theming this week.
  • I talked about putting together a 3-4 months CS curriculum to compensate for my lack of a CS background. This is still a work in progress and I'll update this article when I'm done.

Stuff I'm reading

  • DevTools architecture refresh: migrating DevTools to TypeScript - An article from Engineers on the Google Chrome team. DevTools previously used a closure compiler for type checking. They embarked on a 9 months journey to migrate to Typescript. Everything was successful except for this part

    The biggest problem we are currently dealing with today is the slow performance of the TypeScript compiler. Given the number of engineers building Chromium and DevTools, this bottleneck is costly. Sadly, we were not able to identify this risk prior to our migration, and it was only at the point where we had migrated the majority of files to TypeScript that we discovered a noticeable increase in time spent across Chromium builds: https://crbug.com/1139220 - From the article

  • Comparing the New Generation of Build Tools - Informative article about frontend build tools. One important lesson is that javascript is too slow for build tools. Here's what the author of esbuild has to say

    Most other bundlers are written in JavaScript, but a command-line application is a worst-case performance situation for a JIT-compiled language. Every time you run your bundler, the JavaScript VM is seeing your bundler's code for the first time without any optimization hints - Source

This is a space I'm very excited to learn more about.

  • Life with ESM - Article by Chris Coyier on how the new generation of javascript tooling is influenced by the availability of Ecmascript Modules (ESM) in the browser.

  • JavaScript Pass By Value Function Parameters - Kent C. Dodds explains something very subtle in Javascript - Memory and values. As someone without a strong CS background, it took me lots of tries to understand this concept. Reading this article cemented my mental models. Very grateful Kent C, Dodds put this out.

  • Typescript Notes - Just discovered these awesome Typescript learning notes by Orta Therox who works on the Typescript language. This is soo deep and detailed. I didn't understand a huge part of the notes, but I somehow got the basic idea. I plan to spend a few more minutes learning a lot more.

  • LEARN, EARN or QUIT - Most jobs are repetitive. If you aren't learning at a job, then you should be compensated by earning a lot of money. If you don't learn or earn, you should quit. This is something almost no one will tell you about. Gary Tan's videos are so good.

  • HOW TO DECIDE by Annie Duke | Core Message - Most decisions won't matter in a week's time. Time and energy spent on these kinds of decisions won't yield high returns. This is a book summary of How to Decide. My biggest learnings are to always ask these 3 questions when faced with a hard decision -

    • Will this decision matter in a week's time?
    • Would I go with this option if it were the only one?
    • Is it easily reversible?

These questions help put decisions in the right priority.

Resources

Music

The past week has been me mostly consuming Youtube and finding inspiration for starting a YouTube channel. This has made me appreciate music videos a lot. The amount of work required to put out a 3 mins youtube video is unbelievable to a regular person.

2 videos that have stood out lately.

  • Peaches by Justin Bieber, Daniel Caesar & Giveon.
  • Essence by WizKid and Tems.

That'll be all for this week. See you next week!!!