In my experience junior developers write clear and simple code, because it’s easy for them to understand; mid-range developers write complicated code, because it proves what a clever developer they are; and senior developers write clear, simple code, so that they won’t have to answer questions from junior and mid-range developers about how it works.