Warmups
Layered encodings, one new layer most days (Base64, Base32, Atbash, Morse, zlib, and more), all peeled by one growing decoder.
Day by day
A Little Based
Recognising and decoding Base64 · peeling layered encodings · checking answers against a stated format · building a timed solver
STTMHalf a Turn
Recognising ROT13 · not trusting output that merely looks valid · per-line mixed encodings · reusing a solver across days
STTMHex Appeal
Recognising hex · the many ways hex gets written · per-line mixed encodings · fixing a solver before the day that needs it
STTMTwo of a Kind
Reading binary · planning decoders ahead from the next days' prompts · scoring decodes that contain no ordinary words · handling a server 503 safely
STTMBy the Numbers
Decimal character codes · building a decoder a day early · per-line decoding of five mixed encodings
STTMEight Is Enough
Octal · telling octal from decimal · scoring decodes when a word is split across lines · checking a fix against every past answer
STTMPercent Chance
URL percent-encoding · a week of compounding decoders · seven-way per-line decoding
STTMEntity Relations
Recognising HTML character references, layered decoding, reusing a decoder chain
STTMEscape Room
Recognising backslash escape sequences, JSON string unescaping, extending a decoder chain
STTMThirty-Two Below
Recognising Base32 by its alphabet, strict decoder guards, extending a decoder chain, profiling a slow solver
STTMSafe Travels
Layered decoding (Base64url, plus the whole earlier decoder chain), per-line decoding, debugging a false positive
STTMBack at You
String reversal as a decoding layer, per-line multi-encoding decoding, bounding a search under a deadline, choosing between ambiguous decodes
STTMOpposite Day
The Atbash cipher as a decoding layer, per-line multi-encoding decoding, extending a compounding solver without changing old answers
STTMSeven Steps
Caesar cipher with an unknown shift; scoring candidate decodes against the known instruction sentence and slug vocabulary; bounded search over stacked encodings
STTMRoom Forty-Seven
ROT47; guessing the next layer in a series and building for it ahead of time; strict checks against a known sentence so a guess never sends a wrong answer
STTMDot Com
Morse code, hex, layered decoding, per-line decoding of a mixed-layer blob
STTMBacon Bits
Baconian-style binary groups, hex, layered decoding
STTMOff the Rails
Recognising a transposition cipher (rail fence), layered decoding
STTMLittle Things
Recognising UTF-16LE under hex, layered decoding, rehearsal before timed runs
STTMBig Entrance
UTF-16 big-endian under hex, byte-order marks, reusing a compounding solver unchanged
STTMUnder Pressure
Base64, gzip magic bytes, reusing a compounding solver unchanged
STTMDeflated Ego
zlib under Base64 (eN), rail-fence transposition, keeping every reading of a layer in play, rehearsal limits
STTMEighty-Five Alive
Adobe Ascii85 (<~ … ~>), layered blob lines, slug grammar, tie rules, rehearsal
STTMString Theory
Netstrings (<length>:<data>,), strict length-prefixed parsing, layered blob lines, regression rehearsal
STTMYou Have a Point
Unicode code-point notation (U+XXXX), strict token parsing, layered blob lines, regression rehearsal
STTMFood for Thought
Brainfuck (an esoteric "very small language"), a bounded interpreter that treats the program as data, layered blob lines, regression rehearsal
STTMMonkey Business
Ook! (a Brainfuck dialect), translation to Brainfuck, Day 26's bounded interpreter, layered blob lines, regression rehearsal
STTMBack in Sixteen
Layered blob decoding with the existing Warmups chain; no new layer
STTMRotten Base
Layered blob decoding: ROT13 over Base64; the labelled 29-line Mastery blob
STTMPercent Percent
Layered blob decoding; double percent-encoding; a strict per-day reading of the labelled Mastery blob
STTMOne More Thing
Layered blob decoding: Base32, gzip, and Base64 stacked; a strict per-day layer table for the 31-line Mastery
STTM