Pros
Blackbaud works hard at the process of continuous integration, and has developed an elaborate internal toolset to smooth the process. If you love building integration tools that integrate with Visual Studio and/or Visual Studio Team System, you can certainly be happy at BKB. BKB has lots of nice people. All the managers I knew are nice, decent people. The company's mission (helping non-profits succeed) is worthwhile. The company is profitable, and if you fit the mold, you can work there as long as you want. Nice facilities: good lunch room with good food at reasonable prices, nice gym. Blackbaud is doing a pretty good job of implementing the Scrum agile software methodology, and that makes the engineering process more fluid and collaborative. Teamwork really happens. Plenty of people have worked there for a decade or more, so Blackbaud must be doing something right.
Cons
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.