The rapid development of memory technologies has introduced challenges to the continued scaling of memory devices in density and access speed. Many of these challenges can be mitigated by coding techniques, which optimize the representation of data within these memories. In this talk, we present a practically-motivated model, where the use of novel coding frameworks improves performance. We start with introducing the class of partial-erasure channels, where the channel output is a set containing the input symbol. We focus on a channel model we term the q-ary multi-bit channel, which models errors with graded levels of severity (common in non-volatile memories). Our results include asymptotic and finite-length iterative-decoding analysis and code design and maximum-likelihood decoding analysis of GF(q) low-density parity-check (LDPC) codes.