Comment by jlos
5 years ago
As a junior, the best I've seen is surfacing the complexity appropriately:
1) Readable Interfaces usable by juniors when parts of the code will be used by lots of devs and will almost certainly change
2) Higher complexity behind the interface for parts of the code that change less often and require more skilled engineers
And complexity needed to make a simple interface is the most forgivable complexity. Simple API, worth some cost to get there.