One word of warning about Debian, you may be already aware of this: resist the urge to add remote apt repos that replace packages that are provided by Debian (same package name).
It's ok if the packages are named differently even if they do the same thing, as long as they don't pretend to be the same package. One good example of this is the Docker repo, which gives their own packages different names from the Docker packages on Debian.
If the repo overwrites native packages you will eventually end up with dependency relations which cannot be solved by apt anymore (most often happens when you remove a 3rd party repo). This usually comes back to bite you after a couple of years when it's time to upgrade to the new Debian release – and you can't.
aptitude can sometimes figure out a way to straighten things out but it can involve uninstalling/reinstalling and then upgrading a huge amount of packages which is never fun.