Debug December is a series of 24 coding challenges where you solve bugs!
One challenge unlocks each day, and we hold a raffle for swag on days 6, 12, 18, and 24.
I've encountered a bug with the platform - where can I get support?
Support for Debug December can be found in our official Discord, in the #debug-december
channel: https://discord.com/invite/sentry
How will I know if I won a raffle?
Sentry will hold a raffle for swag on days 6, 12, 18, and 24. The event will run from December 1st through December 24th. Once random winners for the swag are chosen winners will note a popup in-app indicating they have won a specific day's raffle and that a representative of Sentry will contact the winners from our debugdecember@sentry.io email with instructions and links to redeem the prizes.
What do I need to do to be eligible for the raffle?
Raffles will be held automatically at the end of days 6, 12, 18, and 24 (based on the UTC timezone). Anyone who has completed all of the challenges leading up to and including those days will be eligible for the raffle.
What's the environment/"engine" the challenge solutions are run in?
Debug December solutions are running in a sandboxed v8 engine (please note it is not the latest version of the v8 engine).
Many of the typical server/browser methods should not be accessible for security reasons.
For example: on the console
object, everything but log
function is ignored.
Often there are some limitations enforced per challenge, e.g. on day 6 we prevent you from using Array.protoype.reverse
to force the use of generator instead. On other challenges this method is available.
Will the source code of Debug December be made public?
At this time we have not decided if the source code of Debug December will be made public. That being said, there will likely be a blog post where we describe the architecture of the whole system.
Do you have any tips for how to solve each daily challenge?
Review the Provided Code
- Look through the given code to identify how it aligns with the expected behavior. Pay attention to:
- Variable names
- Function definitions
- Conditional logic
- Loops and iterations
Use console.log
-
console.log
is available to use in the engine (onlyconsole.log
any other function likeconsole.error
,console.debug
, etc. is not available) - Insert
console.log
statements at key points in the code to check the values of variables or the flow of logic. - Focus on areas where the issue might occur, such as:
- Input values
- Intermediate calculations
- The final return value
Understand Test Cases
- Pay close attention to the test cases being run against your code.
- Test cases often reveal edge cases or scenarios where the code fails. Look at the expected vs. actual output for clues.
-
Check for Common Bugs
- Logic Errors: Are all conditions in if-else or loops correctly set up?
- Off-by-One Errors: Are loops starting or ending at the correct indices?
- Type Issues: Are you comparing or manipulating the right data types?
- Undefined or Null Values: Are all variables properly initialized?
Iterate and Test
- After fixing a suspected bug, re-run the code to ensure it works for all test cases. Don’t stop at the first fix—other bugs might still exist.
- each challenge have multiple test case.