Serialization Formats
Implement the encoders and decoders that move data between systems — Base64, CSV, JSON, MessagePack, Protocol Buffers, YAML.
Course sequence
- 01
Build a Base64 Encoder/Decoder
Not startedImplement RFC 4648 base64 encoding from scratch: the alphabet, 3-byte to 4-char encoding, padding, decoding with error handling, and the URL-safe variant used in JWT. Used in email, data URIs, HTTP Basic auth, and PEM-encoded keys.
beginner8 lessons~2h - 02
Build a CSV Parser
Not startedImplement a CSV parser that survives the real world: custom delimiters, quoted fields with escaped quotes, multi-line fields, edge cases (BOM, mixed line endings, unbalanced quotes), and streaming for huge files. The format that runs every spreadsheet and data import.
beginner8 lessons~2h - 03
Build Your Own JSON Parser
Not startedBuild a fully RFC 8259-compliant JSON parser from scratch. You'll tokenize structural characters, decode escape sequences and Unicode, parse numbers with strict grammar, and recursively assemble objects and arrays. By the end you'll deeply understand how json.loads, JSON.parse, and every other parser actually works.
beginner12 lessons~3h - 04
Build a MessagePack Parser
Not startedBuild a MessagePack encoder/decoder: format byte detection, varint-style integer encoding, length-prefixed strings/bytes/arrays/maps, ext types for custom types (timestamps, UUIDs), and the binary alternative to JSON used by Redis, Pinterest, IoT systems.
intermediate10 lessons~3h - 05
Build a Protobuf Encoder
Not startedBuild a Protocol Buffers encoder/decoder: varint encoding, ZigZag for signed ints, wire types, message + repeated/packed encoding, schema evolution rules, .proto compilation, and gRPC service definitions.
intermediate13 lessons~3h - 06
Build a YAML Parser
Not startedBuild a YAML 1.2 parser: indentation-based block style, flow style for inline data, scalar type inference (and the Norway problem), multi-line literal/folded strings, anchors + aliases for DRY configs, and the format behind Kubernetes/Helm/Ansible/GitHub Actions.
advanced10 lessons~3h
Create a free account to track your progress across this path.