Debugging Systems: Software engineering perspective
Duration: 55m | .MP4 1280x720, 30 fps(r) | AAC, 44100 Hz, 2ch | 558 MB
Genre: eLearning | Language: English
Duration: 55m | .MP4 1280x720, 30 fps(r) | AAC, 44100 Hz, 2ch | 558 MB
Genre: eLearning | Language: English
Debugging is identifying the root cause of an unexpected behavior in a software system. Beyond gdb,windbg, jsconsole etc
What you'll learn:
Debugging as a deductive process
Things to consider in production system analysis
Methods to isolate root cause without rushing to attaching debuggers
Understanding systems as permuatation of components
Factors to consider while dealing with systems with components owned by different teams
Different engineering communication channels that dictate the scope for debugging
Requirements:
Familiarity of systems with more than couple of services
Knowledge about more than one programming langauge
Willingness to followup on ideas in daily engineering tasks.
Description:
This course is meant for people who consider themselves problem solvers ahead of their designation and qualifications. In case you believe only developers should debug or only support should talk to customers then this course is incompatible with your ideas.
Debugging is more than attaching a debugger to a running program. Identifying the correct root cause is a skill. The complexity of distributed systems and multi-language stacks makes debugging even harder.
The key to a long career in software is the ability to build large systems. Large-scale systems cannot be built on a single machine in a single language. Hence one has to evolve into a generalist engineer to lead such efforts. Irrespective of role, understanding complexity and ability to navigate it during production fire fighting is a growth accelerator in the industry.
The course takes a generic view around the workflows leading to frequently occurring debugging problems in large systems. Intentionally no tool details or deep dives are included. A guidance framework is provided for the students to explore further in their day job or software projects.
Each section represents the debugging consideration for a particular scenario.
Course Outline
Section 1: Introduction to communication flows in the industry
Section 2: Ecosystem Overview
Section 3: Production and Maintenance
Section 4: Deployment
Section 5: Integration
Section 6: Implementation
Section 7: Conclusion
Who this course is for:
Active programmers in any language with polyglot systems
Full stack engnieers
Product developers targeting technical career path
Students looking forward to work in software industry
More Info