Riddles about the machinery software actually runs on — caches, indexes, replicas, deadlocks, tokens and race conditions. Each answer explains the concept, so they double as revision.
98 riddles · all with hints and worked answers
I hold nothing of my own, yet almost everything passes through me. When I run out of room I forget the oldest thing first. You only notice I exist on the day I am wrong.
I make finding fast and writing slow. I am useless when you do not know what you are looking for, and I take my fee on every single insert.
Add more of me and the work finishes sooner — until it does not. Past a certain number I spend more time coordinating than working.
I always give you an answer. I never promise it is the newest one.
Anyone holding me can read every word I carry. Only a signature makes me worth believing. And the moment my clock runs out, I am worthless.
To understand me, you must first understand me. Stop asking and I will never finish.
I am not zero. I am not empty. I am not false. Compare me with myself and even I will not agree.
I appear only when nobody is watching. Add a log line to catch me and I vanish. Two of you did the same thing at the same time, and that was enough.
I tidy up after you, but never while you are looking. You know I have been only because everything stopped for a moment.
You know the name. I know the number. Without me you would have to memorise the internet.
Everyone talks to me. Nobody remembers me. My whole job is to be forgettable.
I read what you meant to say and write what the machine will actually do. I refuse more often than I agree, and every refusal is a favour.
Give me the same thing twice and I answer identically. Give me my own answer and I will never hand back what you started with.
I am a photograph of everything, though I am described only by what moved. I know my parent. I can never change my own name.
I am judged entirely by what I refuse. Let one thing through by mistake and nobody remembers the thousands I stopped.
I have what you need. You have what I need. Neither of us will let go first, and so we will wait here forever.
Throw away half of my world with every question you ask me, and I will find anything in a room of a million in twenty guesses. But only if you sorted the room first.
Each of us politely asks the next to do a little less. We are perfectly well behaved, and we will still bring the whole program down if nobody ever says stop.
I am scrupulously fair: whoever waited longest goes next, always. Let me grow unchecked and the fairness stops being a comfort — everyone is served in order, and everyone is late.
The last to arrive is always the first to leave. I remember exactly where you came from, and I am how a program finds its way home.
Each of us knows only who comes next. Ask for the thousandth of us and you must greet all nine hundred and ninety-nine before. But cut one of us out and nobody has to move.
I do not hold the thing. I hold where the thing is. Lose track of what I refer to and I become the most dangerous value in your program.
I promise never to change, and the compiler holds me to it. Break my promise and you will not find out at midnight — you will find out before you ever ran.
I will do the same thing forever, quite happily, and it is entirely your job to tell me when to stop. Forget, and I will still be doing it when the power goes out.
I am thrown rather than returned, and I travel upward through everyone who did not expect me until somebody agrees to catch me. Nobody catches me and the whole program stops.
I am a contract, not a program. Honour me and you may rebuild everything behind me without telling a soul. Break me quietly and you will break people you have never met.
I mean the thing you asked for is not here. My unluckier cousin means I am here, but you may not have it. People confuse us constantly, and the difference decides whether you look for a typo or for a password.
The protocol I live in forgets you the instant you leave. I am the note you carry so it can pretend to remember. Anyone who steals my note becomes you.
I speak on your behalf, so the far end learns my name instead of yours. Trust me and I see everything you say. That is the whole bargain.
The building has one address. I am the number on a door inside it. Knock on the wrong one and nobody answers, even though the building is very much occupied.
I am cut into pieces to travel, and the pieces do not agree to arrive together or in order. Something at the far end quietly reassembles me and lets you believe I was never divided.
One of us is how wide the road is. The other is how long the journey takes. Buy more of the first when you needed less of the second, and you will have spent a great deal to change nothing.
I make things smaller purely by noticing what repeats. Hand me something with no pattern at all and I will hand it back very slightly larger, and I will not apologise.
We come as a pair. One of us you hand out to strangers; the other you would burn a datacentre down to protect. Anything locked by the first can only be opened by the second.
Two people choose the same password. I am the reason their stored records look nothing alike. I am not secret, and I never needed to be.
Knowing is no longer enough. Now you must also hold. Steal one from me and you have nothing; you need the other in the same moment.
I am worthless every day of my life except one. Nobody checks whether I actually work until precisely the day it is too late to find out.
I keep working when a disk dies, and people therefore assume I am a backup. Delete a file by mistake and I will faithfully delete it everywhere, instantly, with perfect reliability.
I am extraordinarily fast and utterly faithless. Cut my power for one second and I forget everything I ever knew, without regret.
I stand between every program and the metal. No application may touch a disk, a network card or another program's memory without asking me first — and I am entitled to say no.
I pretend to be an entire computer, right down to the imaginary hardware. My lighter cousin does not bother pretending — he shares the real machine's core and only pretends about the walls.
I am a recipe, not a meal. You cannot eat me, and yet everything you eat here came from me. Change me and nothing already served changes at all.
I read every line you wrote and complain about the ones nobody would have noticed. I have never once found a logic error, and I have still saved more arguments than any reviewer.
I am three numbers separated by dots, and each one is a promise about how much I will hurt you. Change my first and I am allowed to break everything.
I am code you did not write, cannot see, and ship to production anyway. I bring friends. Their friends bring friends. Nobody has met most of us.
Two people were both right, and both careful, and neither did anything wrong. I am what is left over, and no tool on earth can decide between them.
I make the past look like it always meant to be this way. Do it to work only you have seen and it is tidying. Do it to work others have built on and it is vandalism.
I solve problems by making you explain them to something that cannot possibly help. The moment you reach the part you assumed, you stop talking and go fix it.
You borrowed against the future to ship on Friday. I am the interest, and I am charged in units of everyone's afternoon, forever, until somebody pays the principal.
I stand in for something real so your test never has to touch it. Rely on me too heavily and you will have proved only that your imagination is self-consistent.
Nobody touched it. It used to work. Now it does not, and the change that broke it was made somewhere entirely else by someone with no idea I existed.
I change every line and no behaviour whatsoever. If anyone can tell I happened by using the product, I was done wrong.
I am not a bug. Everything works. I am simply the smell in the room that tells you something nearby has gone off.
I run before anybody can talk me out of it, on every change, whether it is convenient or not. My whole value is that I have no judgement at all.
The code is live for everyone and the feature exists for nobody. I let you separate the day it shipped from the day it happened.
I send a small number of you into the new thing first, and watch. If you come back unhurt, everyone follows. If you do not, only you were hurt.
Ask me once or ask me five times — the world ends up the same either way. Without this promise, every retry becomes a gamble.
When the thing I call keeps failing, I stop calling it entirely for a while. It looks like giving up. It is the only thing that lets it recover.
I will do everything you asked or absolutely nothing at all. There is no arrangement in which I do half, and that refusal is the only reason anyone trusts a bank.
The shop grew too big for one building, so I split the stock across several. Ask for one thing and it is fast. Ask for a total across all of them and you will wait.
I fetched your list in a single tidy query, and then quietly went back for each row, one at a time, a hundred times over. Your logs look fine. Your database does not.
Opening a new one each time is ruinously expensive, so I keep a small set and lend them out. Run out and everyone simply waits — politely, invisibly, and for a very long time.
I insist every fact be written down in exactly one place. My opposite deliberately writes some facts twice, and both of us are right, in different rooms.
I refuse to let a child exist whose parent has gone. People disable me for speed and then spend years finding rows that point at nothing.
I am a change to the shape of the thing rather than to the thing itself. Run me twice by accident and a careless version of me will do real damage.
I let you pretend the database is just more objects. The pretence holds beautifully right up until performance matters, and then you must know exactly what I was hiding.
I take a little more each time and never give any back. For an hour nobody notices. By morning there is nothing left to take.
You gave me a space for ten and handed me eleven. I wrote the eleventh somewhere it did not belong, and that somewhere decided what happened next.
You meant it as a name. I read it as an instruction, because you glued it into a sentence I then obeyed. A single quotation mark was all it took.
I am not on your server at all. I run in your visitor's browser, wearing your site's name, with every permission your site was given.
You were logged in. Another site asked your browser to do something on mine, and your browser helpfully attached your credentials without asking you.
The people who could fix me have known about me for zero days. There is no patch, because until this moment there was nothing anyone knew to patch.
I give every part of the system exactly what it needs and not one permission more. I make daily life mildly inconvenient and disasters dramatically smaller.
The question is not whether it fails. The question is how much of the world goes dark when it does — and the answer to that was decided long before the failure.
One of us is a promise to a customer with money attached. The other is the tighter target the team holds itself to, so the first is never in danger.
I woke you at three in the morning for something that did not matter, and I did it enough times that when it finally did matter, you rolled over.
One of us describes exactly what happened to one request. The other counts what happened to a million but can tell you about none of them individually.
I keep two complete worlds running, identical but for their version. Moving everyone between them takes one flick, and so does moving them back.
I am the reason you cannot have everything at once. I look like an obstacle to one person and like fairness to everybody else.
Stop asking me every second whether anything happened. Give me an address and I will knock precisely once, when it does.
Ordinary conversation here is a letter and a reply, then silence. I keep the line open in both directions so either of us may speak first.
I did not make the warehouse faster. I opened a small branch on your street and stocked it with whatever people near you keep asking for.
One of my siblings vanishes when the tab closes. One expires on a date you set. One stays until it is explicitly removed. Choosing the wrong sibling is how secrets outlive their welcome.
I say nothing at all about what is true, only about what is permitted to be said. Break me and the message is rejected before anyone reads a word of it.
The first time I failed, I tried again immediately. Then I waited a second, then two, then four. That patience is the only reason the thing I was calling ever got back up.
Consistency, availability, and surviving a broken network. The last is not optional in the real world, which means you are really only choosing between the first two.
The cache expired at midnight for every key at once, and ten thousand requests all decided at the same instant that they would go and ask the database themselves.
Nobody edits me. New facts are added to the end and the old ones stay exactly as they were, wrong or not. The current truth is something you calculate, not something I store.
I promise to arrive. I do not promise to arrive exactly once, and I will not tell you which time was the duplicate. Design for that and I am reliable; assume otherwise and I am a bug.
Improve anything else and the total barely moves. Improve me and everything moves at once. Everyone optimises the part they understand instead of finding me.
Ninety-nine of you had a lovely time. The average says everything is excellent. The hundredth waited eleven seconds, and there are a hundred thousand of them a day.
I am a perfect copy of the truth, delayed by a moment nobody measured. Write to the original and read from me too quickly, and you will be told your own change never happened.
The old way was a person, a console, and a memory. I am a file in version control, and I will rebuild the whole thing identically at three in the morning without being asked twice.
Nobody patches me, logs into me, or fixes me. When I am wrong, a new one of me is built and I am destroyed. I never grow old enough to become unique.
The outage is over. Everyone is tired. I am the part that decides whether it happens again, and the fastest way to ruin me is to ask whose fault it was.
I break your systems deliberately, while everybody is awake, caffeinated and watching. The alternative is finding out the same information at four in the morning.
I assume nothing inside the walls is safe, because I do not believe there are walls. Every request proves itself again, no matter where it came from.
Everyone plans for the deploy working. I am the far shorter document that assumes it did not, and I am the only one anybody reads under pressure.
They test whether you can recognise a concept from its behaviour rather than its definition, which is closer to how debugging actually works. Each riddle here explains the underlying idea in its answer, so getting one wrong still teaches you something.
Not for most of them. The riddles describe what a thing does rather than naming it, and the answer explains the concept from scratch — so they work as an introduction as well as a test.
21 categories · pick one to explore
Real journeys from the SkillVeris community — swipe for more.