This question is about mining pools specifically, which is why I don't think it's a duplicate of this question.
I understand that with most Bitcoin mining pools, the mining pool computes the header that miners then add a random nonce to. That header is shared across all miners in a mining pool, as a way to minimize the amount of computation that individual miners have to do.
Is it the same for Ethereum mining pools? Do we even know what strategy each mining pool uses to pick which transactions to include? I assume it considers gas price of transactions, but surely there's got to be more. For instance, it appears that f2pool includes significantly fewer transactions than etermine in their blocks. So surely they don't use the same strategy to include transactions.
Related: is most mining pool software open-source? The best I could find is etherchain's ethpool-core, but that's not the full source code. Or is that mostly proprietary code?