Organize your software! It's as important as the engineering quality, a coherent codebase and design is better than a terrible one with perfect one. This will give you leverage for refactorings and later down improvements.
Actions:
- You need to write your designs down, get them challenged. Why this approach? But don't overthink it, or you'll experience a second system syndrome (probably).
- You need to use your SME PL. (Programming Language), it may be C++ or Java or Go, pick what's best for you and the team and go with it.