JavaScript
My initial experience with HTML + JavaScript goes back to the first personal website of mine from 1998/99. I did not learn JavaScript deeply at that point – but I would copy snippets from a site called “The JavaScript Source” and sometimes modify them a little bit.
I'd started building web apps after graduating from college in 2010. I was pretty excited at the time about experimenting with real-time applications like chat, using socket.io by fellow future former Automattician Guillermo Rauch ☺︎ – and I suppose I still am, having experimented with RethinkDB in the past, server-side events more recently, and other things in that vein.
Got into frameworks starting with Backbone and Ember.js, which kicked up the complexity of what I was prepared to build (for better and worse) – and then got deep into React + Redux when those came along. It was a thrill and a relief to start becoming deliberate about centralizing state, and being able to declaratively specify UI in a straightforward way on that basis, without having to compromise on performance. Though React is still the one I grab for, there are several modern alternatives that look appealing as well.
ReactTanStack Query has been helpful for coordinating state across the asynchronous boundary with the server, and I've enjoyed Next.js and Remix for facilitating server-side rendering via URL navigation, among other things. Though it's an understatement to say I find value in snappy and versatile interactivity, I also greatly respect the balance against more traditional practices of getting work done on the remote server when possible (and not breaking standard browser URL handling, of course) – shoutout to htmx, and of course PHP.
Speaking of “the server”, I've used Node.js on many different occasions, from smaller scripts to significantly larger server applications – including web app backends in the cases of “WooCommerce Shipping”, “RARE”, and others.
I've long loved working with graphics and visualization in JavaScript, primarily using D3 but other tools as well. I've made and publicly shared a few standalone utilities: see Small JS packages. In recent years, I always prefer TypeScript for how it helps promote intentionality about the nature and structure of data, enforce such decisions, and avoid many assumptions – while being more pragmatic than pedantic thanks to structural typing.