We’re going on a memory leak hunt
#470 — January 19, 2023
Fixing a Memory Leak in a Production Node App — Kent encountered a variety of weird memory and CPU usage spikes in his Node-powered app and decided to figure out what was going on. This post walks through his complete journey, with plenty of side problems encountered along the way, before discovering the root cause was where he least expected it.
Kent C Dodds
How To Handle Asynchronous Tasks with BullMQ — BullMQ is a Redis-based job queue system you can use to offload asynchronous tasks from your app to run in the background. This is a very thorough, practical walkthrough in typical DigitalOcean style.
Stanley Ulili
Learn the Stack and Master the Server — Expand your abilities with this wide-ranging collection of courses on full stack engineering, databases, VIM fundamentals, API design, containers, and more.
Frontend Masters sponsor
Bun v0.5 Released — Bun is another JavaScript runtime taking the world by storm and unlike Deno, some level of Node compatibility has been considered important from the start. v0.5 adds support for node:readline, workspaces, a node:dns shim, and network socket creation support such that more Node.js-based database libraries work out of the box.
Ashcon Partovi
From Ruby to Node: Overhauling Shopify’s CLI — E-commerce platform Shopify is well known as a Ruby shop but even they found a compelling reason to switch to Node for their CLI tool. There are numerous reasons explained here, though easier cross-platform packaging was clearly a big motivation.
Pedro Piñera (Shopify)
IN BRIEF:
The OpenJS Foundation has published a Node.js security progress report with a few brief updates on security work done in December 2022.
The folks at NodeSource have put together a top 10 list of Node open source projects ‘to keep an eye on’ in 2023.
Blue Green Deployment for Node.js without Kubernetes — Discover how to perform Blue-Green deployments from scratch without Kubernetes, along with CI/CD integration, some Nginx, and the PM2 process manager.
Bikash Paneru and Dan Ackerson
The Gotcha of Unhandled Promise Rejections — A rough edge with promises that can sneak up on you. Jake looks at a ‘gotcha’ around unhandled promise rejections and how to work around them.
Jake Archibald
▶ Whiskey Web and Whatnot: Your New Favorite JavaScript Podcast
Whiskey Web and Whatnot sponsorpodcast
Send UDP Messages in Node Without dns.lookup
Herman J. Radtke III
🛠 Code & Tools
Glob 8.1: Match Files Using Shell-Style Patterns — “Match files using the patterns the shell uses, like stars and stuff.” I still think this is the cutest logo of any Node project out there (if you disagree, hit reply and show us a cuter one).
Isaac Z. Schlueter
Prisma 4.9: Node + TypeScript Database Toolkit — The popular ORM adds initial support for database views and multi-schema support for SQL Server, amongst other minor things and bug fixes. A live ▶️ what’s new in Prisma session takes place on YouTube next Thursday.
Prisma
Let Us Help You Reduce Your Tech Debt. Let’s Modernize Your JS Stack — Need a reliable, cost-effective service agency to upgrade your dependencies? Contact UpgradeJS to reduce your tech debt.
UpgradeJS: A Productized Node.js Upgrade Service sponsor
node-html-to-image: Generate Images from HTML — Wraps around Puppeteer, but also lets you use Handlebars for added logic in your HTML.
Yvonnick Frin
Blockman: Highlight Nested Code Blocks in VS Code — If you’re working with deeply nested code, this could be handy as it provides a more visual way to see each nested block than VS Code’s usual pale lines. There’s a ▶️ one minute introductory video to convince you.
Levan Katsadze
Remix 1.10.0
↳ Full stack web framework.
Commander.js 10.0
↳ Command-line interfaces made easy.
Restify 11.0
↳ REST-oriented web service framework.
Postgraphile 4.13
↳ Spin up a GraphQL API for a Postgres database.
create-dmg 5.5
↳ Create good-looking DMGs for macOS apps.
file-type 18.2
↳ Detect the file type of a Buffer. Just added: Apache Parquet support.
node-mysql2 3.0 – Fast MySQL driver.
💻 Jobs
Backend Engineer, TypeScript (Berlin / Remote) — Thousands of people love our product (see Trustpilot for yourself). Join the team behind it and help us scale. 🚀
Feather
Find Tech Jobs with Hired — Create a profile on Hired to connect with hiring managers at growing startups and Fortune 500 companies. It’s free for job-seekers.
Hired