Here are screencasts of developing non-trivial open source projects, the way that I normally develop software. They might give you some tips on using TDD, refactoring, evolutionary design and other development practices. I hope these screencasts will help any aspiring software craftsmen on their road to mastery by providing some examples to look up to.
If you do not yet know how to do TDD, please have a look at my TDD Tutorial in GitHub. It will help in getting a start on TDD by providing some pre-written tests for a Tetris game and steps on how to proceed.
New episodes will be announced at the Let's Code blog. Please subscribe to the web feed of that blog to get notified about new releases. You might also be interested in James Shore's Let's Play TDD which is an endeavour similar to this one.
Shows the development of a highly complex distributed application server using TDD. The project's implementation was well under way when the Let's Code series started (7000 LOC production code, 9000 LOC test code).
Shows since day one the development of a test runner to surpass JUnit as the de facto test runner on the Java platform. Programming is done with TDD, with the unit-level TDD driven by end-to-end level TDD.