Miško Hevery a Google Best Practices Coach gives an excellent talk what Clean Code. He's pitching writing testable code, pointing out problems that make code difficult to test. If you're already practicing TDD there will be very little new here. But if you're struggling either not convinced that TDD is worth the learning curve or convinced that you design well without TDD, then this video is for you. In addition he provides one of the better arguments for and descriptions of dependency injection.
He also has an interesting blog, Interesting entries: Testability Explorer: Measuring Testability, Dependency Injection Myth: Reference Passing, To “new” or not to “new”… and Application Wiring on Auto-Pilot.