Free course

Practical Debugging Course

Debug code, browser requests, runtimes, and production incidents with reproducible evidence, focused tools, regression tests, and safe recovery actions.

5 modules · 25 lessons · No signup

Prerequisites: JavaScript, Shell Commands, HTTP and Testing JavaScript Applications

~~~

Your progress

of lessons completed.

Course completed.

What you'll learn

Move from symptom to first failing boundary, prove the cause, ship a regression-tested repair, and preserve a useful incident record.

Take this course offline

Subscribe to my newsletter to get every free book and course in PDF and EPUB format.

Get the downloads

Course contents

  1. Debugging method

    Reproduce the problem, define expected behavior, minimize the case, and test one hypothesis.

    1. Make the bug reproducible
    2. Separate facts from hypotheses
    3. Reduce to a minimal case
    4. Change one variable
    5. Check your understanding: debugging method
  2. Debug code

    Read stack traces, add focused logs, pause execution, and convert the failure into a regression test.

    1. Read the stack trace
    2. Add focused diagnostic logs
    3. Pause with a debugger
    4. Write a regression test
    5. Check your understanding: debug code
  3. Debug the web path

    Use browser and curl evidence across requests, responses, CORS, TLS, storage, and frontend state.

    1. Inspect the Network panel
    2. Reproduce the request with curl
    3. Classify CORS and TLS errors
    4. Inspect browser state
    5. Check your understanding: debug the web path
  4. Debug the runtime

    Inspect configuration, permissions, processes, ports, dependencies, and build artifacts.

    1. Compare effective configuration
    2. Diagnose file and permission errors
    3. Diagnose processes and ports
    4. Verify dependencies and build output
    5. Check your understanding: debug the runtime
  5. Debug production safely

    Use timelines, observability, bounded mitigations, rollback, and an incident record to recover without destroying evidence.

    1. Build a change timeline
    2. Use metrics, logs, and traces together
    3. Mitigate and roll back safely
    4. Finish with a debugging record
    5. Check your understanding: debug production safely