There are always a thousand ways to solve a problem. The great developer looks for the solution that is both simple and extendible. It does not have to be complex to be great code.
Impress the next guy who has to support your production code. Keep it simple.
Say "yes" to readible function names, and variables named so they explain what they are. Insead of var rec how about var currentRecordInQueryResullt. Too wordy for you? You probably comment your code a lot.
I like to read. I write code not just to run, but to be read.
A great way to enhance performance, extendability, and security are to create a natural separation of concerns. That does not mean that every application needs 20 different layers of obfuscation. Do what makes sense, not what makes complex.
Three, four, five layers are great. More than that, I hope you are baking a wedding cake, not building an application.
With enough time and money a good developer can build you anything. But what do you actually need? I hate to waste time, and money (mine or yours) on extra features or extra layers. Let's look at today's problem. Solve today's problem. Then leave room for tomorrow's problem.
Focus. Fight scope creep. And always have a mint.