Bazel is like git... it is elegant in a lot of ways but it's also awful in a lot of ways. The nice thing about it is that, overall, it's just than the other stuff you find out there, and (I think) it's because it's very composable—a property many other build systems don't have. But it has lots of rough corners once you get your hands dirty.