Senior Software Engineer
Our Story:
Crisis Prevention Institute Inc. (CPI) is the worldwide leader in evidence-based de-escalation and crisis prevention training and dementia care services. Our programs teach professionals the skills to recognize, prevent, and respond to crises in the workplace. Since 1980, we’ve helped train more than 17 million people within service-oriented industries including education, health care, behavioral health, long-term care, human services, security, corporate, and retail.
At CPI, we are dedicated to changing behaviors and reducing conflict for the Care, Welfare, Safety, and Security of everyone. We believe the power of empathy, meaningful connections, personal safety, and security are the antidotes to fear and anxiety. It’s a philosophy that is central to everything we do, and traces back to our beginning.
As a member of the team, you can expect to:
- Make a difference through your work – You’ll be proud to tell your family and friends about what you do.
- Gain significant career experience only obtained within a fast-growing organization – Entry-level roles through executive leadership.
- Feel fulfilled and have fun – We work hard but make the time to build meaningful relationships and celebrate the wins.
- Serve as the senior technical development lead during team projects and sprints.
- Develop, test, deploy, and maintain software, while collaborating with team members on product refinements, sprint planning, execution, and reviews.
- Own services end-to-end, including defining and meeting SLOs/SLAs, participating in on-call rotations, and leading incident response and postmortems to continuously improve system reliability.
- Design and maintain CI/CD pipelines and infrastructure as code (IaC) (e.g., GitHub Actions/Azure DevOps, Terraform), enabling automated, repeatable, and secure delivery across environments.
- Integrate AI capabilities into applications, including the use of LLM APIs, retrieval-augmented workflows, or intelligent automation to deliver enhanced product functionality.
- Drive quality and reliability engineering practices, including automated testing strategies (unit, integration, contract, performance) and proactive validation techniques such as load testing or chaos engineering.
- Develop positive relationships with clients, stakeholders, and internal teams with the ability to discuss problems, solutions, functions, and benefits your work has achieved.
- Design and implement microservices-based architecture
- Build and maintain event-driven systems using messaging platforms (e.g., Azure Service Bus, Event Grid)
- Develop and operate REST and asynchronous APIs
- Implement observability (logging, tracing, metrics) using Azure-native tooling
- Ensure resilience patterns (retry, circuit breaker, idempotency, eventual consistency)
- Optimize and manage cloud infrastructure (cost, performance, scaling)
- Contribute to platform standards (API design, service contracts, messaging patterns)
- Provide support for onsite and system emergencies.
- Evaluate new technical developments and investments that will advance company objectives.
- Transform complex customer requirements into working, maintainable solutions.
- Work collaboratively on creative solutions with engineers, product managers, and designers in an Agile (Scrum/Kanban) delivery model
- Perform, design and code reviews.
- Assist in preparation of functional and technical documentation to provide troubleshooting to end users.
- Investigate and resolve critical application functionality related issues and provide high level support to the Service Desk team.
- Process build and pull requests, change form requests, and manage the release of code into production.
- Operate as a mentor, offering technical guidance to less experienced engineers on the team, both onshore and offshore.
- Perform other position-related duties as assigned.
- Assess existing and new technologies that may advance function, performance, or scale
- 8–10+ years of work experience in the technology industry
- 8–10+ years of work experience designing and implementing large scale distributed systems
- Experience working with agile and iterative project management methodology
- Experience building high-quality user experiences (UI/UX) for high-volume applications
- Experience working with application interface design, modelling, and implementation
- Experience working with all core software development activities, including requirements gathering, design, construction, and testing
- Experience building APIs and services using C#, .NET (Core/.NET 6+)
- Experience with React (hooks, state management, component architecture), TypeScript and modern frontend tooling
- Experience browser testing for desktop, tablet, and mobile applications
- Experience working with source code management such as Visual Studio Online or Gitlab
- Experience leveraging AI tools (Copilot, Claude, etc) and agents in multiple aspects of the software development process
- Experience with Microsoft Azure, including: App Services / Container Apps, Azure Functions, Azure Service Bus, Azure SQL, Azure Monitor / Application Insights
- Experience with modern identity and access management (IAM) solutions, including OAuth 2.0, OpenID Connect, and token-based authentication, and integration with providers such as Azure AD (Entra ID), Auth0, or similar platforms
- Knowledge of security-based design patterns • Knowledge of DevOps and cloud-based storage, and communication patterns
- Knowledge of current software engineering trends, best practices, and standards
- Bachelor’s degree in computer science, business, or a related field
- Experience working with Software as a service (SaaS) providers
- Experience managing cloud-based technology services
- Azure cloud certifications
- Competitive Salary
- Comprehensive benefits package
- 401k
- PTO
- Health & Wellness Days
- Paid Volunteer Time Off
- Continuing education and training
- Hybrid or remote work schedule
- Paid Parental Leave