If I had any wisdom to teach younger devs it would be this:
1. Program against, consider, and handle the error path first and foremost. Include useful logging, telemetry, and error messages.
2. Utilize your type system, whatever that may be, to make as many invalid states unrepresentable
If you do this, regardless if youโre using OOP, FP, whatever, youโll be end up with higher quality software that is easier to maintain and scale