Engineering Learning Resources

Post-Mortem Collection

  • GitHub - danluu/post-mortems
  • Comprehensive collection of engineering post-mortems from various companies
  • Learn from real-world failures and incident responses
  • Valuable resource for understanding system reliability and failure modes

Learning from Failures

  • Incident Analysis: Detailed breakdowns of what went wrong and why
  • Root Cause Analysis: Deep dives into underlying causes of failures
  • Prevention Strategies: How teams prevent similar incidents
  • Cultural Insights: How different organizations handle failures
  • Technical Patterns: Common failure modes across different systems

Notable Companies

  • Major Tech Companies: Google, Amazon, Microsoft, Facebook outages
  • Financial Services: Bank and trading system failures
  • Infrastructure Providers: Cloud provider and CDN outages
  • Startups to Enterprises: Lessons from organizations of all sizes

Data Visualization Tools

termplotlib - Terminal Plotting

  • GitHub - nschloe/termplotlib
  • Python library for creating plots directly in the terminal
  • Useful for quick data visualization in command-line environments
  • ASCII-based plotting for servers and headless environments

Terminal Plotting Benefits

  • No GUI Required: Works in SSH sessions and headless environments
  • Quick Visualization: Fast plotting for exploratory data analysis
  • Scriptable: Easy integration into automation and monitoring scripts
  • Lightweight: Minimal dependencies and resource usage

Use Cases

  • Server Monitoring: Plot metrics directly on servers
  • Data Analysis: Quick plots during data exploration
  • CI/CD Pipelines: Visualize test results and metrics
  • Log Analysis: Plot trends from log data

Technical Community

Technical Twitter Account

  • Happy Automata Twitter
  • Technical Twitter account sharing interesting content
  • Curated technical content and discussions
  • Part of the broader technical Twitter community

Key Takeaways

  • Learning from Failures: Post-mortems are invaluable for understanding system reliability
  • Visualization Accessibility: Not all visualization needs complex GUI tools
  • Community Learning: Technical communities share valuable insights and resources
  • Multiple Learning Channels: Combine formal documentation with community resources
  • Practical Tools: Simple tools often solve real-world problems effectively

These resources demonstrate different ways to learn and grow as an engineer - from studying failures to creating quick visualizations to engaging with technical communities.