Software Design
Understanding design principles is essential - especially if you plan on breaking them. Getting pinned in a code review is never fun, but if you can clearly explain your reasoning then breaking the rules is fun!

Repositories and Unit of Work Don't Mix
There is a trend in the .NET space of trying to abstract EF behind a Repository. This is a fundamentally bad idea and hopefully I'll explain why.
Testing Your Code: TDD and BDD
Testing code has moved beyond the realm of QA and into the realm of design, asking you to think about what you do before you do it. Let's have a look at some strategies.
Principles of Software Design
You've heard the terms before: YAGNI, SOLID, Tell Don't ASK, DRY... what are they and what do they mean?
Design Patterns: Behavioral
Mediators, Decorators and Facades - this is the deep end of object-oriented programming and something you'll come face to face with as your application grows.
Design Patterns: Structural
As your application grows in size you need to have a plan to handle the increase in complexity. The Gang of Four have some ideas that could work for you.