1. A solid state storage device, comprising: a non-volatile memory controller configured to store data in a non-volatile memory via respective channels of the plurality of channels, wherein the stored data is encoded using a low density parity check code; the non-volatile memory controller including a hard-decision Low Density Parity Check (LDPC) decoder to decode encoded data received from the non-volatile memory via respective channels of the plurality of channels and provide a decoded data output; and the hard-decision LDPC decoder dynamically adjusting a voting algorithm for LDPC decoding to adjust a strength requirement for bit flipping.