Software Architecture

Mono Repo vs Poly Repo

Mono repo should apply for most cases since they reduce the amount of work to keep library in sync and also make it easier to work on issues that span multiple libraries

Poly repo is used when you have to break a piece out because multiple places are using them

Mono and poly are not exclusive, you can have a repo that can multiple libraries that are meant to be used together

Estimation

This Embedded Artistry articles demonstrates approaches to predicting. There are various rules but the good ones seem to avoid the mob effects and the come-first mentality where the first estimation is repeated by everyone else. They usually accomplish these two things by making sure everyone's estimation is taken into account anonymously and at the same time.

Designing Abstractions

As illustrated in this article, lack of abstraction is almost as prevalent as premature abstraction, when we find ourselves bolting more stuffs on the old code, it's time to rethink the design. Have patience before refactoring to avoid over abstraction.