Documentation for starters. There are a ton of hidden gems down there in the weeds, but until you really grok the whole system they are quite hidden. I needed to have a worker query its supervisor for the start args of all of its running children once. The info existed and eventually I found it (sys:get_status called on the supervisor and then pulling data out of some heavily nested tuples), but it was not a part of the standard supervisor calls and eventaully someone pointed me to the sys module; digging in here taught me a lot about how things work, but it is not easy to find if you don't know where to look. OTP is a lot like Rails, there is a steep learning curve but once you really understand how it works you can do a lot of very cool things with the available tools.