Basic
Details
- Using a debugger (Chrome, vscode, etc)
- settings breakpoints
- using the callstack
- watching variables
- step into/over
- etc.
- “Binary search debugging” technique
- Tracing (console.log, logger)
Links
- https://www.freecodecamp.org/news/what-is-debugging-how-to-debug-code/
- https://medium.com/codecastpublication/debugging-tools-and-techniques-binary-search-2da5bb4282c7
- https://developer.chrome.com/docs/devtools/javascript/
- https://en.wikipedia.org/wiki/Tracing_(software)
Intermediate
Details
- Basic of logging
- Log levels
- Timestamps
- Structured logs
- Log retention
- Basics of monitoring (CloudWatch, Prometheus, etc)
- Metrics
- Alerts
- Using and generating sourcemaps
- Debugging production using logs/database/etc
- Frontend monitoring and error tracking (Sentry/Rollbar/etc)
Links
- https://developer.chrome.com/blog/sourcemaps/
- https://medium.com/codex/how-to-debug-a-production-issue-755700207801
- https://tideways.com/profiler/blog/four-logging-best-practices-for-production-applications
- https://www.digitalocean.com/community/tutorials/an-introduction-to-metrics-monitoring-and-alerting
Advanced
Details
- Writing efficient logs
- Observability, monitoring distributed systems (Prometheus, Grafana, CloudWatch)
- Writing queries
- Instrumenting, choosing the right metrics
- Monitoring best practices
- Data privacy and logs
Links
- https://www.dataset.com/blog/the-10-commandments-of-logging/
- https://opentelemetry.io/docs/concepts/observability-primer/
- https://www.baeldung.com/distributed-systems-observabilit
- https://prometheus.io/docs/introduction/overview/
- 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.