#11 / May 5, 2021

How we use Web Components at GitHub

With component frameworks being the de facto standard for modern frontend development, it's interesting (and even a bit refreshing) to hear how GitHub has doubled down on Web Components as their chosen method of componentization. While I still find the imperative nature of Web Component code far less ergonomic and readable than declarative code (e.g. JSX), it's hard to argue with their motive:

We were happy to experiment with Web Components alongside our existing front-end infrastructure since it doesn’t incur any upfront cost or “buy-in” to a specific framework.

GitHub seems to be making a long play having been burned by "nearly 85,000 lines of [jQuery] code". That's not to say that JSX will age like jQuery, but that having framework-agnostic components offers a lot of flexibility for the future.

Customization vs. Configuration in Evolving Design Systems

An excellent article on levels of abstraction in design systems by the engineering team at Spotify. The article compares low level component abstraction (customization) to high level abstraction (configuration). It's so good I wish I'd written it myself.

When evolving a design system, there is a range of strategies you can take. A more abstract configuration approach can increase consistency and maintainability, but at the risk of the system being a bottleneck for outgoing features. The less abstract customization approach enables quicker feature development; however, overall consistency of the product can suffer as a result.

Testing fonts for accessibility

Colin Shanley sheds light on a rarely discussed aspect of accessibility: font legibility. You may have heard that Comic Sans is actually easier to read for people with dyslexia. This article explains why.

career-ladders.dev

Sarah Drasner open sourced a set of career ladders that are easy to understand, describe meaningful progression and contribution, and are brief(!). I especially liked this bullet point under the description for tech lead:

A tech lead gently enforces standards- culture and attitudes included. If the team has misalignment, a tech lead spends time alongside the Engineering Manager to guide them towards productivity.

The Intangible Skills You Can't Interview For

I expected this to be an article about interview questions but was pleasantly surprised to find an article about under-appreciated non-technical skills in software development.