filmov
tv
Practical software debugging from software engineering and production perspective
Показать описание
🔍 Debugging isn't just about using a debugger. It's the art of finding the root cause! With the rise of distributed systems and multi-language stacks, debugging has become even more challenging. 🌐
🤔 Questions this course dives into:
🛠️ What are the top tools for debugging?
❄️ How to tackle a freezing program?
🧵 Debugging multi-threaded programs: How?
📚 Best practices in debugging: What are they?
🧠 How to handle memory leaks?
Deep Dive Topics:
🌍 Domain's role in debugging
🤖 Considerations of software engineers during debugging
🚨 Handling high-pressure production debugging
🛡️ Approaching SRE
🤖 Can all scenarios be automated for easier debugging?
📊 Role of monitoring & observability in debugging
🐞 Can we spot bugs during the design phase?
🌐 Why are distributed systems tough to debug?
📚 Debugging vs. programming language expertise
🛠️ Techniques beyond windbg & gdb
🔍 Debugging vs. reverse engineering
🌱 DevOps mindset over specific tools
🤝 Creating a blame-free DevOps culture
🚀 How DevOps problem-solving boosts career growth
📌 Course Overview: Debugging is at the heart of software development. As tech evolves, so do debugging methods. Engineers must stay updated. Debugging ensures software stability and performance and saves resources. It's a continuous journey vital for project success and career growth. 🚀
🔥 Key Takeaway: Building large systems is the essence of a long software career. Such systems go beyond a single machine or language. To lead, one must become a generalist engineer. This course offers a holistic view of debugging in large systems, emphasizing a mental framework over specific tools. 🧠
🚫 Who is this NOT for? If you believe only devs should debug or only support should interact with customers, this course might not align with your beliefs.
Join us to become a problem solver beyond titles and qualifications! 🌟🚀
00:00 Introduction
03:23 Purpose of course
07:10 The big picture in a nutshell
19:17 Concept of Data Boundaries
31:49 Traceability in SRE
36:29 Production Issues, Playbooks, and Protocols
46:20 Role of Log files in debugging.
01:00:04 Core files
01:09:00 Debug Binaries
01:19:16 Reminder about Security procedures
01:22:40 Platform compatibility
01:26:57 Dealing with scale as part of debugging
01:39:00 Fault Tolerance
01:46:11 Disaster Recovery
01:50:25 Upgrades and Rollbacks
02:01:47 Configuration Management
02:07:00 Observability
02:17:00 Integration Testing
02:20:42 Backward Compatibility
02:27:12 Unit tests
02:32:00 Other considerations like APIs and abstractions
02:41:23 Case Studies from real-life scenarios of production debugging
02:42:05 MOOC compatibility issue
02:45:20 Data loss while using a database with ACID guarantees
02:51:40 Operating systems issues mistaken for application layer issues. Copy on Write
03:00:21 When hardware issues become part of software behaviors.
03:12:40 Debugging distributed systems. Thundering herd. Queuing
03:27:40 Cross-continent networking issue debugging.
03:46:28 Conclusion
#programming #debugging #coding #softwareengineering