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 Tetris 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. In this Let's Code series there is also a screencasted example of how to go through that tutorial, though you should first try implementing it yourself.
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 how to go through the TDD Tetris Tutorial where you can learn Test-Driven Development by at first writing code to pass pre-written tests, so that it will be easier to write your own tests when the time for it comes.
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.
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).