Almost all meaningful business logic is encoded in T-SQL form at Blackbaud, and that is a unusual architecture decision by BKB. T-SQL is great for exercising set logic--for example performing an efficient search--but it is much less suitable for crafting domain logic. No inheritance, no data structures, no passing data by reference, no enums, etc. As an example of where this can take your coding practice if you're at Blackbaud...in the code base you can find stored procedures that take approximately 70 parameters and then pass almost all of them down a branching tree of user-defined functions. Eventually you reach one of a myriad of endpoint functions, which are using *only* 2 or 3 dozen parameters but remain highly complex. If this business logic were coded in VB.NET it could be radically simplified by the use of well-known design patterns and data structures, but generally that is not the approach that Blackbaud engineering management or its toolset (e.g., unit testing utilities) supports. Yes, there are rarely used ways to write domain logic in VB.NET and access it via the Blackbaud-proprietary Infinity platform, but you definitely have to swim upstream to pull it off.
Almost everything else about how you write software at BKB involves learning their Infinity platform, which involves an extremely detailed and idiosyncratic programming-by-XML paradigm. XML is quite suitable for serializing structured data, but not so much for programming logic. No one has figured out how to debug through XML, for example.
Bottom line: if you care a lot about developing and/or maintaining skills in object-oriented programming and service-oriented architecture, you're probably not going to be happy at Blackbaud. I care about those things, which explains my rating. If you enjoy coding business logic at the database layer and don't particularly mind missing out on a hands-on experience with OOP and SOA, then you might rate Blackbaud as a 4 or 5 based on Blackbaud's positives.
It's particularly difficult to join BKB as a senior software engineer or architect. A junior guy who's been there 2 years is going to be more productive then you because he or she knows a lot more about the business domain than you, and a *whole* lot more than you about the "Infinity" platform. In other words, all your experience with design patterns and MVC and best practices in VB.NET/C# and SOA are mostly irrelevant when you're swimming in the Infinity development sea.
To be fair, I must mention one exception to the rule about engineering practices at Blackbaud: if you're on the "platform" team, then you get to use the full range of Microsoft tools, technologies and development paradigms in order to fashion the newest wrinkles in the Infinity platform. But that's a hard team to get on; the platform team is small, and basically all of its members have been at Blackbaud for 7-8 years minimum.