Basic

Details

  1. Using a debugger (Chrome, vscode, etc)
    1. settings breakpoints
    2. using the callstack
    3. watching variables
    4. step into/over
    5. etc.
  2. “Binary search debugging” technique
  3. Tracing (console.log, logger)
  1. https://www.freecodecamp.org/news/what-is-debugging-how-to-debug-code/
  2. https://medium.com/codecastpublication/debugging-tools-and-techniques-binary-search-2da5bb4282c7
  3. https://developer.chrome.com/docs/devtools/javascript/
  4. https://en.wikipedia.org/wiki/Tracing_(software)

Intermediate

Details

  1. Basic of logging
    1. Log levels
    2. Timestamps
    3. Structured logs
    4. Log retention
  2. Basics of monitoring (CloudWatch, Prometheus, etc)
    1. Metrics
    2. Alerts
  3. Using and generating sourcemaps
  4. Debugging production using logs/database/etc
  5. Frontend monitoring and error tracking (Sentry/Rollbar/etc)
  1. https://developer.chrome.com/blog/sourcemaps/
  2. https://medium.com/codex/how-to-debug-a-production-issue-755700207801
  3. https://tideways.com/profiler/blog/four-logging-best-practices-for-production-applications
  4. https://www.digitalocean.com/community/tutorials/an-introduction-to-metrics-monitoring-and-alerting

Advanced

Details

  1. Writing efficient logs
  2. Observability, monitoring distributed systems (Prometheus, Grafana, CloudWatch)
    1. Writing queries
    2. Instrumenting, choosing the right metrics
  3. Monitoring best practices
  4. Data privacy and logs
  1. https://www.dataset.com/blog/the-10-commandments-of-logging/
  2. https://opentelemetry.io/docs/concepts/observability-primer/
  3. https://www.baeldung.com/distributed-systems-observabilit
  4. https://prometheus.io/docs/introduction/overview/
  5. https://www.skyflow.com/post/how-to-keep-sensitive-data-out-of-your-logs-nine-best-practices

Notes

debugging binary search technique

  • Reproduce the bug
  • Determine the surface area.
  • Determine the affected area.