We have a natural tendency to over complicate things. That's because our brain cares too much about the future and its infinite possibilities. That is certainly important for us as humans, but that's not 100% true as programmers.
When talking about software development, it's really common to see developers and even software architects complicating systems and ending up with unmaintainable little monsters. Complexity is not something you look for. Find beauty in simplicity.
Complexity comes with time whenever you need new features or scale. Why would you build a super complex system with tons of classes, modules, design patterns and other jibber jabber if you don't have any customers to use the product yet?
Don't be tricked by possibilities. Let the problem come first, then the solution.