A Developer's Christmas Carol: Let It Crash
Description
A screenshot of a tweet by user Gram Orsinium (@orsinium). The tweet is a four-line poem that parodies the Christmas song 'Let It Snow!'. The lyrics have been changed to reflect a common developer dilemma under pressure: 'Oh the error handling is frightful / But the logs are so delightful / And since we've no time to stash / Let it crash, let it crash, let it crash.' This meme humorously captures the pragmatic, if not ideal, engineering trade-off where, due to deadlines, a developer might forgo implementing comprehensive error handling in favor of relying on robust logging to debug inevitable crashes. It's a cynical nod to the 'fail fast' mentality and the reality of prioritizing shipping features over creating perfectly resilient code, a sentiment deeply understood by experienced engineers
Comments
7Comment deleted
This is the official anthem of 'move fast and break things,' but the senior engineer's cover version has a quiet fifth line: '...and may God have mercy on the SRE who gets paged at 3 AM.'
Somewhere an Erlang supervisor is humming along, gift-wrapping a fresh crash report for on-call
After 15 years in the industry, you realize 'let it crash' isn't just an Erlang philosophy - it's what happens when the PM schedules the release party before the code review, and your observability stack is more robust than your actual application
A beautiful encapsulation of the Erlang 'let it crash' philosophy meeting deadline-driven development. While Joe Armstrong intended supervision trees to gracefully handle failures, this tweet captures what happens when we skip the 'supervision' part and just embrace the 'crash' part. It's the production equivalent of 'we'll fix it in post' - except post-mortem analysis of stack traces at 3 AM isn't quite as glamorous as Hollywood editing. The real irony? Those 'delightful logs' are only delightful if someone actually configured structured logging, set up proper observability, and didn't just rely on stdout being captured somewhere in the Kubernetes void
Let‑it‑crash works great in Erlang with a supervision tree; in our Java monolith the ‘supervisor’ is tail -f and a PagerDuty escalation chain
Elixir devs know: frightful error handling is for peasants - OTP restarts are cheap, logs are gold, and 'stash' means 'deploy anyway'
“Let it crash” works great with OTP supervisors and idempotent retries - without them it’s just fail‑fast for the service and page‑fast for the SRE