The Delivery Newsletter #61
#61 DEC 9, 2020
The Delivery Newsletter

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

You can expect drift to occur as soon as you have more than one service. To paraphrase a few points from the post, drift looks like:

  • Inconsistent infrastructure
  • Difficult updates
  • Lack of standardization

The Lyft engineering team aimed to standardize on next.js. Read on to see how codemods and workshops shifted 40% of Lyft's frontend services so far.

eng.lyft.com

Build systems à la carte: Theory and practice

I happen to like developer tools like build systems. I know that for some, working on the build system is like eating your vegetables. This paper offers a framework to evaluate different build systems. The writers identify several judgment criteria:

Build systems vary on many axes, including: static versus dynamic dependencies; local versus cloud; deterministic versus non-deterministic build tasks; early cutoff; self-tracking build systems; and the type of persistently stored build information.

The paper is dense, and I'll have to read through it again, but my first takeaway is to evaluate Bazel.

PDF from cambridge.org

BVSSH Principles

BVSSH stands for "Better Value Sooner Safer Happier". This post distills principles from the book Sooner Safer Happier. While I haven't read the book yet, I think I'll pick it up after reading points condoning:

Long lived multi-disciplinary teams, on long lived products, on long lived value streams, aligned to the customer.

I could always use more supporting arguments around this type of transformation.

itrevolution.com

Setting Business Goals with SLOs

Outages happen from everyone to solo-founders to Amazon-sized organizations. Service Level Objectives (SLOs) express reliability targets for your services. This post marries SLOs to business goals, providing steps to create meaningful SLOs.

honeycomb.io

3x Smaller Lambda Artifacts by Removing Junk From node_modules

Why are small Lambdas best?

Reducing artifact size proportionally correlates with the cold start latency.

As with many things JS, there are multiple ways to accomplish the tasks listed in this post. For example, adding typings as devDependencies should keep them out of your Lambdas.

itnext.io

How to Make Your Code Reviewer Fall in Love with You

Top-notch suggestions for anyone who writes/reviews code 🎉 I can't pick a favorite, but I didn't realize how much I love "6. Separate functional and non-functional changes" until I saw it in writing.

mtlynch.io