In regards to "Big Interfaces make weaker Abstractions", I disagree with your example - you have to balance it with clean code. "toHex" and "toOct" methods make more sense and is more readable than a signature of "to(value, radix)". The former doesn't require knowledge of the method's signature, the latter does to know that the second value is what base you're converting the number to. However, I do agree with the point of the section.