Senior Principal Software Engineer at Blackbaud
About the role:
We are looking for a lead engineer for the team responsible for Blackbaud ID, our identity provider for contemporary Blackbaud products. As the front door to our modern solutions, this team is at the cutting edge of software design and delivery at Blackbaud and is faced with unique scale, security, and design challenges related to authentication and user management.
We work in an agile environment and practice continuous delivery. Teams at Blackbaud have ownership of their solutions from inception to design to delivery and support. Our services are built in C#, our frontend is built in Angular, and we deploy to Azure, but we're not worried about experience with a specific stack – instead, we value curiosity, creativity, and experience shipping a real product using contemporary technologies. Our ideal engineer is detail oriented but not to the point of pedantry; self-directed in their work but collaborative in nature; opinionated about contemporary software development practices but works to understand and incorporate contrasting viewpoints.
What you will be doing:
- Work closely with product management and user experience to define requirements and develop the team's backlog of work
- Implement critical elements of application architecture and design
- Mentor other engineers on the team via pairing and code reviews
- Evaluate performance of critical application components and optimize them to assure maximum performance and scalability
- Participate in an on-call rotation with other members of the engineering team
What we'll want you to have:
- 5+ years of experience delivering global, highly-available services in a continuous delivery environment
- 2+ years of experience using Angular to build single page applications
- Experience working with asynchronous messaging technologies (e.g. Azure Service Bus, Event Hubs, or Apache Kafka)
- Experience with C#, .NET Core, and Azure is helpful but not required
- Familiarity with SSO, OAuth, OpenID Connect, or SAML is helpful but not required