Sign in

Thomas Chetwin

@tchetwin.bsky.social
198 followers 336 following 52 posts

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

PostsRepliesMedia
Reposted by Thomas Chetwin
Rob Palmer @robpalmer.bsky.social · 16h
ECMAScript excitement 😉 Congrats to @peet.bsky.social from TechAtBloomberg advancing JSON.parse Options to Stage 2.7 at @TC39 today 🎉 There are two independent opt-ins. 🔶 deep freezing the entire object 🔶 non-array objects get a null prototype Names may change ⚠️
JSON.parse(
    input: string, 
    reviverOrOptions?: Function | JsonParseOptions
): object
type JsonParseOptions = { 
    freeze?: boolean; 
    preferNullPrototype?: boolean 
}
1366
Reposted by Thomas Chetwin
Nico Kaiser @nico.kaiser.me · 29/09/2026
📸 #NodeConfEU Group photo
Group photo of NodeConf EU attendees standing in front of the conference venue.
161
Thomas Chetwin @tchetwin.bsky.social · 29/09/2026
Big FOMO by not being at NodeConf EU this year, it looks great!
2132
Reposted by Thomas Chetwin
Nico Kaiser @nico.kaiser.me · 29/09/2026
📸 #NodeConfEU @nodeland.dev kicking off NodeConf EU 2026, Bologna, Italy.
0227
Reposted by Thomas Chetwin
Rob Palmer @robpalmer.bsky.social · 27/09/2026
ECMAScript excitement 😉 Sony Interactive Entertainment will host this week's TC39 meeting in Tokyo. Potential advancements: 4⃣ Dynamic Code Brand Checks 4⃣ Iterator Chunking/Includes/Join 3⃣ Thenable Curtailment 2⃣.7⃣ default in export * 2⃣.7⃣ export defer 2⃣.7⃣ JSON.parse opts 🧵
2517
Reposted by Thomas Chetwin
Michael Small @michaelsmalldev.bsky.social · 26/09/2026
Here it is, the main @angular.dev blog post version blog.angular.dev/an-update-on...
blog.angular.dev
An update on Angular’s TypeScript 7-powered Compiler
Alex Rickabaugh & Mark Techson
1154
Reposted by Thomas Chetwin
Savannah Ostrowski @savannah.dev · 22/09/2026
my husband just interrupted putting dishes away because he wanted to show me something called a “jj megamerge”. i’m scared i’m losing my husband to jj.
621313
Reposted by Thomas Chetwin
Joyee Cheung @joyeecheung.bsky.social · 05/09/2026
Landed fixes in GCC & Clang for [expr.static.cast]/8 wrong-code bugs when investigating a V8 bug related to it. Previously: enum Flag : bool { kNo, kYes }; static_cast<Flag>(2); // kNo in GCC ❌, kYes in Clang ✅ static_cast<Flag>(0.5); // kNo in GCC and Clang ❌
192
Reposted by Thomas Chetwin
Jake Bailey @jakebailey.dev · 04/09/2026
this'll be exciting to a very specific kind of person github.com/microsoft/Ty...
github.com
Strongly type file paths by jakebailey · Pull Request #64159 · microsoft/TypeScript
This is a wacky change I&#39;ve wanted to try out for a while and finally started screwing around with with copilot. Right now (and in Strada), we have just two kinds of paths: string - 🤷 Path - a...
6845
Reposted by Thomas Chetwin
Seb ⚛️ ThisWeekInReact.com @sebastienlorber.com · 01/09/2026
One of the most exciting JS proposals now has a draft spec tc39.es/proposal-com... Aiming for stage 2 at the next TC39 meeting github.com/tc39/agendas...
2667
Reposted by Thomas Chetwin
Tim Perry @pimterry.fyi · 24/08/2026
Coming soon to a Node.js near you: a small issue I spotted on Friday and fixed with a tiny little change now makes every typical small API response with Node.js ~10% faster for free: github.com/nodejs/node/... 🚀
github.com
http: improve performance for end() with known-length string by pimterry · Pull Request #65466 · nodejs/node
When you call end(data) on an outgoing HTTP request, we previously wrote the data, and then ran _send(&#39;&#39;, ...) just to trigger flushing the headers, which resulted in an extra zero-byte wri...
1132
Reposted by Thomas Chetwin
Ashley Claymore @ashley-c.bsky.social · 11/08/2026
Just added Composites* for Stage 2 to the next TC39 agenda. github.com/tc39/proposa... Slides: docs.google.com/presentation... PR: github.com/tc39/agendas... *API name placeholder
github.com
GitHub - tc39/proposal-composites
Contribute to tc39/proposal-composites development by creating an account on GitHub.
2507
Reposted by Thomas Chetwin
Rob Palmer @robpalmer.bsky.social · 10/08/2026
We're hiring a Technical Product Manager for Web Platform & Frameworks infrastructure at Bloomberg in New York. You'll be working with me and @jonkuperman.com plus a whole bunch of folks excited by web technologies ✨ Feel free to DM with questions. bloomberg.avature.net/careers/JobD...
bloomberg.avature.net
Technical Product Manager - Web Platform &amp; Frameworks - CTO Office
03617
Reposted by Thomas Chetwin
Joyee Cheung @joyeecheung.bsky.social · 08/08/2026
Added some new commands to the GDB & LLDB plugin for V8.. `v8 source`: shows the JS source of the selected frame `v8 isolate`: find the isolate address in the current thread, works from the coredump too (implementing that in LLDB was quite a bit of challenge!)
Screenshot showing v8 isolate and v8 source
0153
Reposted by Thomas Chetwin
Philipp Dunkel @pipobscure.com · 01/08/2026
I‘ll be celebrating tonight! Part 1 of my NodeJS ambitions were merged today github.com/nodejs/node/... Now we have ZipArchive support in NodeJS
github.com
zlib: add ZIP archive support to zlib (ZipFile,ZipBuffer,ZipEntry) by pipobscure · Pull Request #64339 · nodejs/node
Summary Add ZIP archive support to the node:zlib module through three classes and a set of helpers: ZipEntry: a single archive member, with buffered reads (content()), bounded-memory streaming rea...
1325
Reposted by Thomas Chetwin
Brian Kardell @bkardell.com · 15/07/2026
If you're looking for Igalians on BlueSky, there is a starter pack... go.bsky.app/LDZPFo4
1277
Reposted by Thomas Chetwin
James @43081j.com · 15/07/2026
new @npmx.dev timeline chart 👀 this shows the segmented view of how much the install size changed between versions, split by package (deps + self). big thanks to @graphieros.npmx.social pairing with me on this one! npmx.dev/package-time...
the install size of vite over time, across versions. showing the distribution of the install size between dependencies and vite itself.
04911
Reposted by Thomas Chetwin
Rob Palmer @robpalmer.bsky.social · 08/07/2026
TypeScript 7.0 is out 🎉 It's the 10x faster Go-based port 🔥 🔷 `tsc6` is for side-by-side API access 🔷 --checkers sets checker thread count 🔷 --singleThreaded keeps parsing/emit/checking together 🔷 TS 6.0 deprecations are hard errors 🔷 API access is planned for TS 7.1
19918
Reposted by Thomas Chetwin
Mikhail Barash @mikbar.bsky.social · 07/07/2026
Excited to share Nav262, our experimental IDE for navigating ECMA-262 algorithms, implemented by @albertotontoni.bsky.social at the University of Bergen. Repo: github.com/bldl/nav262
github.com
GitHub - bldl/nav262: An IDE to navigate the JavaScript specification.
An IDE to navigate the JavaScript specification. Contribute to bldl/nav262 development by creating an account on GitHub.
1156
Reposted by Thomas Chetwin
Joyee Cheung @joyeecheung.bsky.social · 07/07/2026
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
1378
Reposted by Thomas Chetwin
John Reilly @johnnyreilly.com · 02/07/2026
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
0162
Reposted by Thomas Chetwin
Rob Palmer @robpalmer.bsky.social · 27/06/2026
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
56816
Reposted by Thomas Chetwin
AG Grid @ag-grid.bsky.social · 19/06/2026
We are so moved that we got to host this fantastic crowd in our humble corner of London 🥰 Much love to @npmx.dev community 🥰
2525
Reposted by Thomas Chetwin
Titus 🇵🇸 @wooorm.com · 08/06/2026
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
```
911123
Reposted by Thomas Chetwin
Feross @feross.bsky.social · 20/05/2026
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.
118514
Reposted by Thomas Chetwin
Joyee Cheung @joyeecheung.bsky.social · 07/05/2026
Landed a set of LLDB & GDB plugins in V8 to help inspect JS states in a live process/coredump together with native states ✨ The initial implementation just supports JS stack trace annotations in bt; support for object inspection is coming up! chromium.googlesource.com/v8/v8.git/+/...
Without the plugin, debugging a coredump from a release build of V8 shows no JS-level information in the stack trace; with the plugin the stack trace is annotated with JS source positions of the functions on the frames.
2232
Reposted by Thomas Chetwin
Paweł Grzybek @pawelgrzybek.com · 25/04/2026
✨ New post “Vim tip: substitute pattern delimiter doesn't need to be a slash” pawelgrzybek.com/vim-tip-subs... #vim #neovim
pawelgrzybek.com
Vim tip: substitute pattern delimiter doesn't need to be a slash | pawelgrzybek.com
Did you know that slash is not the only valid pattern delimiter? How many times in the past have you escaped all the slashes in the URL or file path?
172
Reposted by Thomas Chetwin
performance.now() conference @perfnow.nl · 23/04/2026
performance.now() 2026 is coming. Ticket sales will open in May with cheap and ultra-cheap early bird tickets. These will be announced in our newsletter first. So subscribe via perfnow.nl/subscribe perfnow.nl
perfnow.nl
performance.now(); 19th and 20th of November 2026, Amsterdam
On 19th and 20th of November 2026, the seventh edition of performance.now() will take place in Amsterdam—a single track conference, covering today’s most important web performance insights.
073
Reposted by Thomas Chetwin
shri @shrikhalpada.dev · 15/05/2025
Have you ever scanned a dirty or crumpled up QR code, *certain* it wouldn't work, and then it instantly does? They're built to be really resilient! Here's a guide I put together, full of interactive visuals to show the design choices in the QR spec. perthirtysix.com/how-the-heck-do-qr-codes-work
perthirtysix.com
How The Heck Do QR Codes Work? (An Interactive Exploration)
Interactively dive into the layout and encoding of QR codes
13716
Reposted by Thomas Chetwin
Joyee Cheung @joyeecheung.bsky.social · 17/04/2026
Had a blast in London! Thanks @tchetwin.bsky.social, @legendecas.bsky.social and many volunteering Bloombergers for organising a great Node.js collab summit 😇 This was one of the most attended summits I’ve been to, so didn’t get to say hi to everyone, but very happy to see many new faces!
Mexican orange blossomA crow having a snack in the Forgotten StreamsCalifornia lilacSt. Paul’s Cathedral
1192
Reposted by Thomas Chetwin
London Web Standards @londonwebstandards.org · 18/03/2026
The recording of @jason-williams.co.uk talk ‘Temporal: It’s about time!’ is now available to watch online! 2026.stateofthebrowser.com/speaker/jaso... And Temporal has reached Stage 4: www.igalia.com/2026/03/13/T...
A banner that reads: Temporal: It's about time!, Jason Williams, 2026 State of the Browser and it features a colourful geometric graphic in the background.
11412
Reposted by Thomas Chetwin
Jason Williams @jason-williams.co.uk · 11/03/2026
Temporal is now Stage 4 at TC39 🎂🎂🎂 Thanks to all the other champions of JavaScript's new date-time API. It has been a wild ride over many years! I wrote a blog post explaining how we got here 📜 bloomberg.github.io/js-blog/post...
Code example showing the usage of Temporal.ZoneddateTime

```js
// London DST starts: 2026-03-29 01:00 -> 02:00
const zdt = Temporal.ZonedDateTime.from(
  "2026-03-29T00:30:00+00:00[Europe/London]",
);

console.log(zdt.toString());
// → "2026-03-29T00:30:00+00:00[Europe/London]"

const plus1h = zdt.add({ hours: 1 });

console.log(plus1h.toString());
// "2026-03-29T02:30:00+01:00[Europe/London]" (01:30 doesn't exist)
```
2034782
Reposted by Thomas Chetwin
Jon Kuperman @jonkuperman.com · 10/03/2026
bloomberg.github.io/js-blog/post...
bloomberg.github.io
Source Maps: Shipping Features Through Standards
Source maps are a vital part of modern web development, but a lack of standard has made it impossible for us to add new features or improve the debugging experience. This is the story of how we standa...
2234
Reposted by Thomas Chetwin
Rob Palmer @robpalmer.bsky.social · 09/03/2026
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.github.io
Bloomberg JS Blog
The official Bloomberg JavaScript blog - insights, tutorials, and best practices from Bloomberg's JavaScript engineering team.
47214
Reposted by Thomas Chetwin
Sam Rose @samwho.dev · 01/03/2026
Request volume to jsdate.wtf (from the nginx logs). Is this you state of the browser folks? 🥲
A bar graph showing requests per 12 hours. It sits nicely at 1000 or so until the last 2 bars where it jumps to ~3300.
6453
Reposted by Thomas Chetwin
Rob Palmer @robpalmer.bsky.social · 28/02/2026
For those who were not in London today for State of the Browser 2026 conference, Josh relays @jason-williams.co.uk's talk!
072
Reposted by Thomas Chetwin
Sacha Greif @sachagreif.com · 03/02/2026
It took a while, but the State of JS 2025 survey results are now live! 2025.stateofjs.com/en-US Thanks to @danielroe.dev for contributing the conclusion.
2025.stateofjs.com
State of JavaScript 2025
The 2025 edition of the annual survey about the latest trends in the JavaScript ecosystem.
38831
Reposted by Thomas Chetwin
e18e @e18e.dev · 24/01/2026
here's a brief look ahead at what we have planned in the e18e community for 2026 🎉 great collaborations, and many useful developer tools are in the works. also a huge thanks to all who contributed so far - many of the libraries, tools, and frameworks we use today are faster because of you 💙
e18e.dev
The Year Ahead (2026)
A look ahead at what's coming in 2026 for the e18e community
14115
Reposted by Thomas Chetwin
Alexander Lichter @thealexlichter.com · 24/01/2026
Can’t wait for the first @e18e.dev and friends edition! ✨ Honored to host the show 🙌🏻
2254
Reposted by Thomas Chetwin
Ryan Cavanaugh @searyanc.dev · 30/12/2025
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
518217
Reposted by Thomas Chetwin
Julia Evans @b0rk.jvns.ca · 02/12/2025
this fall I worked with the core Git folks on writing an official data model for Git and it just got merged! I learned a few new things from writing it. github.com/git/git/blob...
github.com
git/Documentation/gitdatamodel.adoc at master · git/git
Git Source Code Mirror - This is a publish-only repository but pull requests can be turned into patches to the mailing list via GitGitGadget (https://gitgitgadget.github.io/). Please follow Documen...
840262
Reposted by Thomas Chetwin
Jason Williams @jason-williams.co.uk · 31/10/2025
Thanks @mmocny.com for the container timing shoutout and stealing my low effort diagram 😂 Great talk @ #perfnow
1184
Reposted by Thomas Chetwin
OpenJS Foundation @openjsf.org · 23/10/2025
Missed #JSConf 2025? No worries, we’ve got you. 🎬 All the talks are now on YouTube. Watch them here: hubs.la/Q03PNmCK0
063
Reposted by Thomas Chetwin
Joyee Cheung @joyeecheung.bsky.social · 20/10/2025
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/...
github.com
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&#39;s just a CI hiccup or if it&#39;s something that needs to be worke...
1243
Reposted by Thomas Chetwin
VoidZero @voidzero.dev · 20/10/2025
⚓ Oxlint now supports plugins written in JavaScript ⚓ Developers can customize and extend Oxlint using JavaScript, but at a speed approaching Rust, due to 'raw transfer' between Rust and JS, and other breakthroughs Many ESLint plugins can run without any modification. Read the full post👇
712015
Reposted by Thomas Chetwin
Nordic.js @nordicjs.com · 16/10/2025
"No more juggling CommonJS and faux-ESM." - @joyeecheung.bsky.social revealed how @nodejs.org is moving to full ESM and why the future looks brighter for developers. www.youtube.com/watch?v=I0jv...
03011
Reposted by Thomas Chetwin
Firefox for Web Developers @webdevs.firefox.com · 09/10/2025
As an experiment, we (the Firefox team) wanted to try a new way to get feedback on which Interop proposals matter most. So, here's a web app where you can rank the proposals you care about, giving us data we can use when reviewing which ones to champion. interop-rank.jakearchibald.com
interop-rank.jakearchibald.com
Interop Feature Ranking
Rank the web platform features you care most about
18247113
Reposted by Thomas Chetwin
Rob Palmer @robpalmer.bsky.social · 09/10/2025
Glad to see TypeScript's Isolated Declarations feature already mentioned in three talks this morning at @viteconf.org 👍 It's one of the reasons tsdown and Oxc can generate Type Declarations so quickly ⚡ The main ID developer @titiancernicova.bsky.social is here if you wish to meet him.
1256
Reposted by Thomas Chetwin
Titian Cernicova-Dragomir @titiancernicova.bsky.social · 09/10/2025
Always happy to see something you worked on out in the wild! Love to see isolated declarations being used 😊. #viteconf.amsterdam
1132
Reposted by Thomas Chetwin
ViteConf (Oct 15, 2026) @viteconf.org · 09/10/2025
We are readyyyyyy!! Join the live stream right now via viteconf.amsterdam
1416