Functional programming requires a new way of thinking compared to the imperative styles that many languages have offered. Although the shift may be daunting, besides providing parallelization potential, functional programming tends to reduce the overall size of an application’s code base by expressing logic more compactly and generates thought patterns that apply to frontend and backend code alike. In this presentation, I will discuss my journey from being an imperative style developer to having a preference toward functional programming, sharing all the lessons I learned and lightbulb moments I had along the way.