#310 — October 17, 2019

Read on the Web

We're experimenting with a tweak to the format this week. There are a lot of 'newsy' items we want to include, but which don't need a full write up. So we're including them in a smaller list below the bigger features. This way we get to cover more stories but in less space. Enjoy! 🙂

Node Weekly

Node v12.12.0 (Current) Released —

  • The fs module has added opendir() and fs.Dir as ways to asynchronously iterate through directories.
  • A --force-context-aware flag has been added to prevent addons that aren’t context aware from being loaded (this will help systems that embed V8 contexts, such as Electron – more info).
  • JSON module support has also been made experimental again, due to security concerns in the Web-based implementation of the idea.

Node.js Foundation

New Course: Hard Parts of Functional JavaScript Fundamentals 🧡 — Explore the increasingly popular paradigm of functional programming in JavaScript. Go under the hood of powerful techniques like: Higher Order Functions, Function Composition, Pure Functions, and Immutability of State.

Frontend Masters sponsor

The Perfect Architecture Flow for Your Next Node Project — Outlines a set of architectural rules and best practices to consider to ensure your next Node project starts on the right path.

Piero Borrelli

Zero: A Plain Text, Terminal-Based 3D Graphics Rendering Pipeline — Yes, this is really just a bit of fun, but is a nice example of building up a 3D rendering engine from scratch.

Haydn Paterson

Quick bytes:

💻 Jobs

Senior Node.js with Big Developer Energy Wanted (London, UK) — What if you could have that can-do start-up energy in an established company that deals with the likes of Pepsi, Coke, Boeing, and Rolls Royce?


Find A Job Through Vettery — Vettery specializes in tech roles and is completely free for job seekers. Create a profile to get started.


📚 Articles and Tutorials

Developing with Node.js on Windows and WSL2 — Microsoft has been working on their getting started documentation, so if you’re on Windows (or thinking of moving to it), these tutorials should help.


What's Behind Bringing Colorful Output to the Terminal — The short answer is to use something like Chalk, but if you’ve wondered how such libraries work under the hood, here’s a brief tour.

Chidume Nnamdi

Monitoring, Alerting, and Distributed Tracing For Your Node Applications. Try It Free

Datadog APM sponsor

Sending Scheduled Messages to Slack with the Google Calendar API

Wilco Schoneveld

JavaScript Naming Conventions — An introduction to ‘common sense’ conventions around naming variables, classes, functions, and more.

Robin Wieruch

Reducing Docker Image Size and Cutting Google Cloud Costs

Matt Zeunert

How to Build Command-Line 'Spinners' in Node

Chidume Nnamdi

🛠 Code and Tools

Vandelay: Automatically Generate Import Statements in VS Code — This VS Code extension keeps track of all available imports and allows you to quickly import them. Supports both Node and Python.

Visual Studio Marketplace

A Node REST API Development Boilerplate App — There are a lot of boilerplate apps but this one is pretty good. It brings together Node, Express, and MongoDB along with basic authentication, account confirmation, testing, code coverage, linting, and more.

Maitray Suthar

human-signals: Human-Friendly Process Signal Info — Basically a JavaScript object that contains info about the various POSIX signals.


middy: A 'Stylish' Node Middleware Engine for AWS Lambda — Bringing Express-style middleware to the serverless experience.


25x Faster Than Firebase & MongoDB Atlas: Macrometa Global Database — Serve DB & API from the edge in milliseconds. Build & run stateful REST API & serverless functions on 175 edge locations.

Macrometa sponsor

Convict 5.2: A 'Featureful' Configuration Management Library — A Node config library aimed at projects with multiple collaborators who need more robustness, context, and validation of settings.


User Agents: Generate Random, But Real-Looking, User Agents — Use this for good, not evil, but it’s interesting how it gets updated almost every day.