Thomas Chetwin

@tchetwin.bsky.social

JavaScript Infrastructure and Tooling at Bloomberg. Opinions are my own.

Landed a few improvements to the error reporting for require(esm) with top-level await (behind --experimental-print-required-tla for now): - No longer need to run the code to collect the TLA locations, so it can be enabled by default soon - Added require stack and location metadata to the error

Before: extra noisy arrow pointing to internals, no require stack, needs to run the code to find the top-level await location
After: no more noisy arrows, added require stacks to the output, finds location without running the codeNew ERR_REQUIRE_ASYNC_MODULE includes error.requireStack and error.topLevelAwaitLocations metadata properties

Today a number of my Investec friends ran, walked and jogged from the City of London all the way to Twickenham and I got to see everyone! It was an absolutely beautiful and kind gesture - they are amazing ❤️

Me crouching in a road surrounded by many of my Investec friends

Bloomberg uses a lot of C++ & contributes to the standard as well as various industry conferences and libraries. I’m looking for an experienced engineer to join a distributed systems team in New York working on our core Deployment Infrastructure for the Bloomberg Terminal 🗽 🧵

Five engineers in a glass meeting room with a whiteboard wall

Hello friends and welcome to another “how’s ESM vs CJS doing?!” A big win this time, at a year of `require(esm)` available! 38.0% of the popular npm packages now have ESM, up from 33.4% half a year ago. ESM-only is up from 12.6% to 16.0%. Particularly this non-dual, “vanilla” growth is very big!

Graph showing the status, in raw CSV:

```csv
date,total,esm,dual,faux,cjs
2021-08-24,5617,341,95,832,4349
2021-11-09,5647,411,119,809,4308
2022-08-01,5734,496,207,791,4240
2022-11-04,5747,518,216,785,4228
2023-05-29,6240,630,417,783,4410
2023-11-22,6818,734,510,881,4693
2024-05-27,7042,819,736,826,4661
2024-11-27,8087,942,1152,843,5150
2025-06-05,8677,995,1573,859,5250
2025-12-04,14159,1779,2947,1522,7911
2026-06-08,16231,2590,3574,1689,8378
```

Today is a big day for @socket.dev. We raised a $60M Series C at a $1B valuation, led by Thrive Capital. 20,000+ orgs, 1.5M repos protected, 1,000+ supply chain attacks blocked per week. 3/5 FAANG companies are customers. We're just getting started.

Bild

Some time ago, @jonkuperman.com & @tchetwin.bsky.social had a dream for the JS engineers at Bloomberg to be more public about the cool JS work we have going on. That dream has come true - now we have a blog platform 🎉 (You'll see more articles over the next few days) bloomberg.github.io/js-blog/

Bloomberg JS Blog

The official Bloomberg JavaScript blog - insights, tutorials, and best practices from Bloomberg's JavaScript engineering team.

bloomberg.github.io

Your TypeScript year in review You "silenced" 417 errors with `as any` that turned into runtime errors as soon as the code ran TypeScript printed 4,693 error messages. 26 of them made sense You spent 98 minutes waiting for tsc to run. During this time you spent 544 minutes reading social media

Stalled this PR for almost a year due to CI build cache issues, last week I realized (once again?) the Linux binary size is a bit out of hands and gave the CI another try, and the CI miraculously handled it , so finally landed this and shed of 8MB off the binaries at least github.com/nodejs/node/...

build: build v8 with -fvisibility=hidden -fvisibility-inlines-hidden by joyeecheung · Pull Request #56290 · nodejs/node

Split from #56275 since it seems to cause gcc on some machines in the CI to time out or run out of memory. Trying to see if it's just a CI hiccup or if it's something that needs to be worke...

github.com