15 refers to the the base-2 logarithm of the LZ77 sliding window size, and a negative value is what allows us to suppress the zlib header.

zlib:inflateInit/2
------
Since we are negotiating an unconstrained deflate-frame then we must be willing to accept frames using the maximum window size which is 15 (which happens to be the default window size in zlib:inflateInit/2, but I prefer to be explicit)

zlib:deflateInit/6
------
We are free to use a smaller window size here, since we negotiate an unconstrained window size, however, choosing a smaller window size will reduce the effectiveness of the compression. 15 happens to be the default value for zlib:deflateInit we just need to suppress the zlib headers, which is why we specify -15

Regarding the 9 value, the default is 8 and it refers to the speed/memory-usage balance, a value of 9 means max memory usage, a value of 1 means less memory usage. Maybe I can change this one back to the default zlib value?