I'm finding that it's easier to write static analysis tools for language X in language X. It's less to think about.
I've been writing an analysis for JS. I really like working with typescript but it's been easier to prototype if I dogfood.
I'm rewriting a Rust function transform function from `&mut Foo` to `Foo -> Foo`. It might be a little slower, but ownership makes it harder to miss parts of the Foo type when I work with values.
I've seen 'modularity shaming' for JS libraries that are big and make sites slow to load. I'm surprised to see Wikipedia start reporting on app size though!
Lisp macros are like salt, and a little goes a long way. Looking at some code I wrote in 2013 and I was too heavy-handed then. I learnt a lot in the process though!
Today I learnt about --ignore-rev with git-blame. Super handy if git thinks moving some code made you the author.
$ git blame --ignore-rev abcdef source_file
(Turned out I was still the author, but several years earlier!)