And, unrelated, but why are there pictures of sushi everywhere? It's very late, I'm very tired, and suddenly, I'm very hungry for what is not a standard late-night snack...
But I've never really had this experience, except for code I wrote a long time ago (15+ years) when I didn't know enough kinds of abstractions and how to judge their weights, and I was susceptible to over-engineering. When I come back now to code I wrote a 4 or 8 years ago, it seems written in a fairly obvious way, and it's easy to modify.
My 'architecture' skills are not so great. My naming is inconsistent (something to work on), and I'm still not sure when to separate something out into an object or when to leave it in.
My plain ole' coding skills are skill developing as well. Whenever I pick up a new library, I spend hours poking through documentation and examples, and I usually end up doing things twice when I realize my first approach was totally wrong.
Someday, someday...
Also, I prefer to establish a beachhead of code and evolve it towards the finished product - that idea of debugging another product until I reach the final result sounds a lot like me.
However, I'd like to add that I feel humbled by many programmers I meet.
I also really enjoy reading code (hacker) and occasionally go a bit superhero when time-frames are short and important work is due.
architecture is fun too, but i don't do it as much as i probably ought to. and debugging is something i know i'll have to do, but try to avoid.