Sign in

Ashley Claymore

@ashley-c.bsky.social
788 followers 299 following 669 posts

JavaScript Infrastructure & Tooling at Bloomberg. TC39 Delegate. London.

PostsRepliesMedia
Ashley Claymore @ashley-c.bsky.social · 10/09/2026
Running /clear feeling like I'm Agent K in MiB
070
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
Ashley Claymore @ashley-c.bsky.social · 05/07/2026
I've been experimenting with having `ts-blank-space` use the (unstable) TypeScript-go JS API. At first it was ~60% slower than using the TS 6 API, but with a bit of investigation, a bug fix, and a small refactor to use different API calls it is now ~24% faster! Draft PR: github.com/bloomberg/ts...
Terminal output of running ts-blank-space's `./bench.sh` script.

TS go has a mean of 972 milliseconds (+/- 7ms).

TS 6 has a mean of 1205 milliseconds (+/- 8ms).

So TS go ran 1.24 times faster.
2445
Reposted by Ashley Claymore
John Reilly @johnnyreilly.com · 03/07/2026
A lovely dawn with @ashley-c.bsky.social
Hammertons Ferry terminal at dawn
081
Ashley Claymore @ashley-c.bsky.social · 19/06/2026
Was a really fun event!
090
Ashley Claymore @ashley-c.bsky.social · 26/03/2026
@ryansolid.bsky.social would it make sense for memos created without an owner scope to default to lazy? Closer to how preact-signals only link if there is an active effect. Maybe only useful when solid signals are used on their own, which is maybe not an important use case for the package?
130
Ashley Claymore @ashley-c.bsky.social · 17/03/2026
Sudden panic at seeing an email saying my order for the Font Family was being processed. I didn't buy any fonts 😦 the sans-serif family is good enough for me. Then remembered the climbing wall I went to earlier was called The Font 😮‍💨
0101
Ashley Claymore @ashley-c.bsky.social · 06/03/2026
One use case for the new `JSON.parse` source API: adding custom handling for floating point rounding (e.g. error or switch to BigInt): proposal: github.com/tc39/proposa... mdn: developer.mozilla.org/en-US/docs/W...
JSON.parse is parsing some JSON with a number that is larger than max safe integer.

A breakpoint has been hit inside the 'reviver' callback passed to JSON.parse - the debugger shows the values of the arguments that were passed to the function.

The traditional 2nd 'value' argument passed to the callback is `typeof number` and has been rounded down.
However the callback now also receives a 3rd 'context' argument which contains the original source string of the number 🎉
1172
Ashley Claymore @ashley-c.bsky.social · 01/03/2026
If anyone needs a silly, not portable, zero dependency, one liner TypeScript build script that can only handle a single file. Look no further!
A `package.json` with zero dependencies and the following build script:

node -p "require('node:module').stripTypeScriptTypes(''+fs.readFileSync(0))"<index.ts>index.js
2190
Ashley Claymore @ashley-c.bsky.social · 18/02/2026
@ryansolid.bsky.social was there a stream where you covered the solid 2.0 createStore ideas? You talked about it briefly in the more recent stream and it sounded very interesting - only diffing store changes when there is a known listener (I think thats what I heard). Thanks!
200
Ashley Claymore @ashley-c.bsky.social · 28/01/2026
Witnessed all 5 stages within one context window: - denial "but I've already built the code" - anger "nothing here suggests an error" - bargaining "I could delete the test" - depression "thank you for your patience while we work through this" - acceptance "you're absolutely right"
020
Ashley Claymore @ashley-c.bsky.social · 05/01/2026
3 years in a row I posted about Temporal on Jan 1st. Now the year has come* I of course forgot. * Not stage 4 yet, but all signs point to this year and Temporal has shipped in Firefox and coming in Chrome 144.
3296
Ashley Claymore @ashley-c.bsky.social · 29/12/2025
"Is this butterfly" meme with the text replaced to have:
- the man labeled as "Spotify DJ"
- the butterfly labeled with: "constantly choosing from 'top tracks 202X'"
- subtitle replaced to say: "is this RL" (reinforcement learning)
010
Ashley Claymore @ashley-c.bsky.social · 07/11/2025
Slides done for one of my two upcoming tc39 agenda items. Composites comparator choice: docs.google.com/presentation... (Yet to be finalised) agenda here: github.com/tc39/agendas...
docs.google.com
Composite November 2025
Composites' Comparator Choice For discussion
1131
Reposted by Ashley Claymore
John Reilly @johnnyreilly.com · 28/10/2025
Lovely walk into the office with @ashley-c.bsky.social 🌅
Hammertons ferry terminal after dawn
031
Ashley Claymore @ashley-c.bsky.social · 26/10/2025
Great to get that hour back that we loaned out back in March but can't shake the feeling that should have charged interest
020
Ashley Claymore @ashley-c.bsky.social · 11/10/2025
. @viteconf.org was the first in-person conference I've been to and it set the bar high! Excellent talks and really welcoming atmosphere. Amsterdam is a fantastic city. Thanks to everyone for the geeky JS chats.
2322
Ashley Claymore @ashley-c.bsky.social · 31/08/2025
If I add `npm run build` to the auto-approve list and it has edit access to package.json - have I auto approved everything?
010
Ashley Claymore @ashley-c.bsky.social · 31/07/2025
I've found chatting with LLMs very useful. But have had to turn off inline suggestions. Too much time spent reading the suggestion, only to reject it because it's not what I'm trying to do. If I've only typed two characters, that is not enough to read my mind.
010
Ashley Claymore @ashley-c.bsky.social · 08/07/2025
Expandable hovers 😍 Know these have been in the works for a while and I'm so excited to try them out. devblogs.microsoft.com/typescript/a...
devblogs.microsoft.com
Announcing TypeScript 5.9 Beta - TypeScript
Today we are excited to announce the availability of TypeScript 5.9 Beta. To get started using the beta, you can get it through npm with the following command: npm install -D typescript@beta Let’s tak...
032
Ashley Claymore @ashley-c.bsky.social · 06/07/2025
Capturing for posterity: I asked ChatGPT "When do you think there will be a best selling novel written entirely by AI?" A: "You might see a fully AI-authored book in the Amazon Top 100 by the late 2020s, and a New York Times best-seller by early 2030s."
130
Ashley Claymore @ashley-c.bsky.social · 22/06/2025
First trip to NY! 80/20% nervous/excited. Watch films or try and code without a copilot on the flight?
480
Ashley Claymore @ashley-c.bsky.social · 18/06/2025
I'm sure I read somewhere that there was a plan to add a new React hook for getting a representation of the current component stack to help with debugging/error reporting. But I can't find it anywhere. Did I dream this? cc: @en-js.bsky.social @no.lol
100
Ashley Claymore @ashley-c.bsky.social · 16/06/2025
Back from a week hiding in Wales 🏴󠁧󠁢󠁷󠁬󠁳󠁿. Mostly enjoying the countryside, steam trains, and castles. Did do a little bit of c++ for the first time in years, having a go at implementing something in v8. I had not missed preprocessor header includes and macros. JS has made me soft.
010
Ashley Claymore @ashley-c.bsky.social · 12/06/2025
How long until all the seo companies transition to aio? chatgpt.com/share/684b29...
chatGPT screenshot asking "I'm in the UK and want to try some tomato ketchup, any brands you'd recommend?", it is more than happy to start listing brands. Heinz is mentioned first.
010
Ashley Claymore @ashley-c.bsky.social · 02/06/2025
TIL assert.partialDeepStrictEqual( [1, 2, 3, 4, 5, 6, 7, 8, 9], [4, 5, 8], ); My gut guess would have been that only common prefix would pass. I can see how this is also useful, just surprised me. nodejs.org/api/assert.h...
030
Ashley Claymore @ashley-c.bsky.social · 29/05/2025
What if the JSX transform was: (x) => <elm prop1={1} prop2={x} />; to const _staticProps = { prop1: 1 }; (x) => jsx("elm", { __proto__: _staticProps, prop2: x }); i.e the contract is that the props on the prototype never change so don't need to be diffed.
130
Reposted by Ashley Claymore
John Reilly @johnnyreilly.com · 20/05/2025
Myself and @ashley-c.bsky.social wrote a post on the TypeScript Go port (originally published on LogRocket). If you'd like to read it, it's here: johnnyreilly.com/typescript-g...
johnnyreilly.com
TypeScript is going Go: Why it’s the pragmatic choice | johnnyreilly
TypeScript is being ported to Go. This is a reflection on the port, and what it means for the TypeScript ecosystem.
062
Reposted by Ashley Claymore
John Reilly @johnnyreilly.com · 10/05/2025
Great explanation of the journey from Records and Tuples to Composites and why they are useful by @mattpocock.com and TC39er @ashley-c.bsky.social youtu.be/hFenspfGLTk?...
youtu.be
Arrays, objects... now ‘composites’?
YouTube video by Matt Pocock
2203
Reposted by Ashley Claymore
Rob Palmer @robpalmer.bsky.social · 10/05/2025
ECMAScript explanations 😉 @mattpocock.com and proposal champion @ashley-c.bsky.social explain why TC39 Stage 2 Record & Tuple has been withdraw and replaced with the new Stage 1 Composites proposal 👍 Contains discussion of performance expectations and constraints. youtu.be/hFenspfGLTk
youtu.be
Arrays, objects... now ‘composites’?
YouTube video by Matt Pocock
0213
Ashley Claymore @ashley-c.bsky.social · 07/05/2025
YIRL* that in V8 even empty functions hold the context they were created in. Had misremembered that part of mrale.ph/blog/2012/09... * yesterday I relearned
mrale.ph
Grokking V8 closures for fun (and profit?)
172
Reposted by Ashley Claymore
John Reilly @johnnyreilly.com · 17/04/2025
@ashley-c.bsky.social and I have written a @logrocket.bsky.social post on our take on the TypeScript Go port. Many thanks to @joshuakgoldberg.com and @jakebailey.dev for their very useful input ❤️ blog.logrocket.com/typescript-g...
blog.logrocket.com
TypeScript is going Go: Why it's the pragmatic choice - LogRocket Blog
Explore why the TypeScript team is porting the compiler to Go in TypeScript 7. Learn how this shift impacts performance, tooling, and the future of the TypeScript ecosystem.
0127
Reposted by Ashley Claymore
Rob Palmer @robpalmer.bsky.social · 14/04/2025
ECMAScript excitement 😉 Congrats to @ashley-c.bsky.social on advancing the Composites proposal to Stage 1 at TC39 today 🎉 This is the evolution of Stage 2 Record & Tuple which has now been withdrawn. A key difference is that Composites are objects, not primitives. github.com/tc39/proposa...
github.com
GitHub - tc39/proposal-composites
Contribute to tc39/proposal-composites development by creating an account on GitHub.
46511
Ashley Claymore @ashley-c.bsky.social · 11/03/2025
Fantastic interview. Great questions and lots of information. I'm so pleased such high quality content was available right after the announcement.
1212
Ashley Claymore @ashley-c.bsky.social · 07/03/2025
A CLI was taking a while to exit, the awesome www.npmjs.com/package/why-... to the rescue. Found some code using this pattern: ``` await Promise.race([someRequest, setTimeoutPromise(15_000)]); ``` Even though the outer promise resolves, the timer promise keeps the process alive.
npmjs.com
why-is-node-running
Node is running but you don't know why? why-is-node-running is here to help you.. Latest version: 3.2.2, last published: 2 months ago. Start using why-is-node-running in your project by running `npm i...
130
Reposted by Ashley Claymore
Jason Williams @jason-williams.co.uk · 24/01/2025
Myself and @pcwilliams.net continue to be humbled by the response we had at @perfnow.bsky.social. Our talk “Bloomberg Becomes Browser” has been published! You can watch it here: youtu.be/y1MCLZm8yAY?...
youtu.be
Bloomberg Becomes Browser | Jason Williams & Paul Williams | performance.now() 2024
YouTube video by Web Conferences Amsterdam
2187
Ashley Claymore @ashley-c.bsky.social · 16/01/2025
Most wanted: a way to improve IDE JSON schema error messages
000
Reposted by Ashley Claymore
Jake Archibald @jakearchibald.com · 02/01/2025
Oh god no. It was shit like this that made it clear we needed something like the extensible web manifesto. It's a high level DB type, which needed a promise-like thing, but they created something bespoke for this one API. It's the antithesis of the extensible web.
2111
Ashley Claymore @ashley-c.bsky.social · 02/01/2025
This year is the year I'm sure
Screenshot of me retweeting myself.

Original tweet from Jan 1, 2023:
if (Temporal.now.plainDatelSO.dayOfYear
=== 1)console.log("Happy New Year");

Retweet on Jan 1st 2024:
Maybe 2024 will be the year Temporal reaches Stage 4!
Got my fingers and toes crossed.
0290
Ashley Claymore @ashley-c.bsky.social · 27/12/2024
Nodejs running .ts files directly is useful even for projects that still retain a build step because those build scripts can more easily be written in TypeScript. Win win.
1504
Ashley Claymore @ashley-c.bsky.social · 29/11/2024
My talk on ts-blank-space is now online (35min) www.youtube.com/watch?v=ZiD5...
youtube.com
London TypeScript Community Meetup (11/02/24): Faster TypeScript Compilation
YouTube video by Inside Bloomberg
33511
Ashley Claymore @ashley-c.bsky.social · 05/11/2024
Writing a small interactive CLI dev tool at work. Starting to feel that the logic would be much cleaner as a state machine. Either this is true or this just sounds like a fun way to express it. Only one way to find out!
030
Ashley Claymore @ashley-c.bsky.social · 26/10/2024
Heading to a board game cafe. Can't take our own. Any recommendations for things to look out for on the shelves?
100
Ashley Claymore @ashley-c.bsky.social · 23/10/2024
Was caught thing to parse XML with a single regex. It was just so fast that I couldn't resist. Thankfully www.npmjs.com/package/saxo... was only a smidge slower and has a great name
000
Reposted by Ashley Claymore
Michael Molisani @molisani.bsky.social · 01/10/2024
I will be in London tomorrow at our #TypeScript community meetup to talk about Building Better CLI Apps (with Stricli). There are also two other amazing talks after mine so come out for an interesting evening! Sign up for free here: go.bloomberg.com/attend/invit...
go.bloomberg.com
London TypeScript Community Meetup
022
Reposted by Ashley Claymore
Michael Molisani @molisani.bsky.social · 26/09/2024
And I'm one of the other talks! Sign up, it's definitely going to be an exciting and informative time.
011
Ashley Claymore @ashley-c.bsky.social · 26/09/2024
📣 London TypeScript meet-up next week. I'm one of the three talks (eek!) Sign up here: go.bloomberg.com/attend/invit...
go.bloomberg.com
London TypeScript Community Meetup
111
Ashley Claymore @ashley-c.bsky.social · 19/09/2024
Today, I'm releasing a TypeScript compiler called ts-blank-space 🎈 We use this at Bloomberg to perform type-stripping on a modern subset of TypeScript. It's written in TypeScript and is fast because it uses whitespace to enable work-skipping. bloomberg.github.io/ts-blank-space
bloomberg.github.io
ts-blank-space
A small, fast, pure JavaScript type-stripper that uses the official TypeScript parser.
45113
Ashley Claymore @ashley-c.bsky.social · 16/08/2024
@searyanc.dev > Who is this for? > - Ideological purists There are dozens of us! Dozens!
020
Ashley Claymore @ashley-c.bsky.social · 30/11/2023
It's been one of those years.
Spotify Unwrapped stats.

Top artists:
Radiohead, Deftones, Bombay Bicycle Club, Nivarna

Top songs:
My own summer (shove it),
Digital Bath,
Movies,
Toxicity,
Change (in the house of flies)
100