It is not object oriented. Interfaces and struct methods with composition and not inheritance is much more C than Java (no not overriding methods) kind of the C or compiled version of duck typing. Reading thru OpenSSL code is not that different from reading thru Go code. Typed but not a artificial hierarchy of types.