Functional programming is often a great first choice, but that doesn't mean it's always the best choice. Designing software is an art unto itself because of the huge number of tradeoffs to take into consideration. Come join a veteran polyglot architect in exploring these design choices with an eye towards building the best software possible with the tools at hand.