Hacker News new | ask | show | jobs
by nickls 2900 days ago
I had a similar problem at one of my first jobs, I was given ownership of a few different highly complex and lightly documented codebases: sshd, kerberos, ntp, netsnmp, etc.

Other commenters are giving great advice around burn out, depression and health -- I'll leave that to them.

On the technical side, two things helped me with understanding complex code bases:

1. Write and draw on paper the object model, stack, protocol, interface, anything you can glean from the code or docs. Start small and keep adding to it. This helps you "chunk" the new information and have somewhere to attach new insights.

2. Run the system (or parts) in debug mode with maximum logging. Save the output and then start stepping through it line by line from the top. Find the source of each output in the code, try and understand the general area and then move to the next line. This will start to give you a good understanding of program flow.

Combined these two techniques will make it much easier to understand what is happening and when -- all you have left is to figure out why.