in reply to how to become senior programmer?

The senior is the guy who drives the design decisions. Best way to do that is to practice driving design decisions. I learned how to do that doing CPAN projects. I relearn it every time I take on a project. It's a journey, not a destination.

My criteria for good software:
  1. Does it work?
  2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?