- use monorepos
- share as much code as you can from one project to another
- keep all your code up to date
- always refactor and improve your code
- use tests to avoid regression
- use lint and prettier to keep code consistent
- open source as much code as your can
- automate everything using CI/CD
- use lambda or kubernetes to automate your release process
- it should be easy to add new deployments
- only accept projects that uses your stack or very close to it
- focus on full stack projects where you don't depend on third-parties
- focus on building blocks
- instead of solving one problem, try to solve a set of problems
- use monorepo to make it easy to build white label apps and products
- software house does not scale much
- do software house until you build your own SaaS
- software house causes a lot of stress