Linear-time encodable and decodable error-correcting codes | Synapse