The lessons we learned from the design of a question-answering chatbot show that fully end-to-end training of the system is not possible due to the lack of data. Therefore, while certain components can be trained end-to-end by adapting existing datasets, others must rely on handcrafted algorithms, and the entire system can only be optimized through repeated evaluations.