I've found Jetbrains.Annotations to be a subjective thing. While I love them, as a senior / lead dev on a team, I'd only use them in areas largely maintained by me, not the more shared areas of our codebase. Now as a technology manager, I get to set standards and it's part of the standard I set.
I wasn't aware ImmutableJS did anything beyond help freeze your objects. I love it for that. Does it offer advanced querying capabilities or other capabilities from things like underscore or lodash?
ImmutableJS has Seq<T> which offers you lazy-evaluation so you can write functional chains while reducing the number of iterations (just like LINQ does).
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.