https://medium.com/@santosh_joshi_data/understanding-programming-paradigms-in-data-engineering-a-concise-guide-2c96460537e4