Just because call_to_get_info_from_remote_system fails doesn't mean you have to be done.
user_method(tries)
while i < tries
if call_to_get_info_from_remote_system() == FAIL
# log error
if check_remote_system_reachable()
# fatal error be done
i++
granted this makes all kinds of assumptions like you can afford to retry this operation up to N times. It also may break the rule of "Stupidity"
2. Find a work flow that keeps you moving forward no matter how slowly. here is mine. Basically design, top down then code bottom up, testing each piece as you go. An example of when I finally get to coding.
a. write the comment for the function
b. write the signature
c. write the tests
d. write the internals of the function
It will never almost never work out that perfectly but you should have the goal that, when you are done with that function you should never have to look at it again*
* you will. I do. Being perfect would be nice, but it just isn't going to happen.
Your presentation is fantastic. That could be enough to get people interested, finding a way to build a large database of quality recipes that is easy to navigate is what will keep them there.