At Attentive we have all our core code in a single repository. That code is responsible for: Database models, async tasks, API, Serialization,…. Our frontend (in Angular5 is in a different one).
I think building the code as a single repo wasn’t the wrong decision at the time. But now we have growing pains. We started noticing that we can’t just push code on top of each other. If someone has a feature in UAT the others can’t have it until the previous is tested. Everyone’s just always stepping on each others toes.
If we expect to grow the team and the company we need to split our codebase into microservices.
This will allow us to have teams taking care of each service and become autonomous. Microservices will allow us to deploy code with more confidence because one push to production can’t break the entire system.
The road waiting for us won’t be easy.
We just started hiring so if you think you can help us get in contact. jobs@attentive.us