Użyj cache (zależności i artefaktów builda), uruchamiaj testy/linty inkrementalnie dla zmienionych modułów i równoleglij joby. Pomaga też niezależność modułów, żeby nie przebudowywać wszystkiego po małej zmianie.