Lead Software Engineer
Crisis Prevention Institute · United States
Skills in this posting
The posting
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.
The Role
The Lead Software Engineer is the technical lead of a Product Engineering squad on CPI's Integrated Training and Learning (ITL) platform, the cloud-native learning platform used by CPI's learners, Certified Instructors, and customer administrators worldwide.
This is a hands-on, backend-focused role: the Lead spends the majority of their time designing and writing code in C#/.NET microservices built on CQRS and event-driven patterns in Azure, and is comfortable working across the full stack, including the React front end, when the squad's work requires it.
As technical lead, the Lead Software Engineer owns the technical direction and delivery health of the squad: translating product outcomes into a sound technical approach, breaking work into small shippable increments, setting engineering standards, and ensuring the services the squad owns are reliable, observable, and easy to change.
The Lead is a player-coach, not a manager: they raise the squad's technical bar through design reviews, code reviews, pairing, and mentorship, and they model the culture CPI is building in Product Engineering: curiosity, ownership, drive, experimentation, learning from failure, and relentless improvement.
Technical Leadership & Delivery
Own the technical approach for the squad's roadmap: partner with the product owner to shape problems, evaluate options, and choose the simplest design that achieves the customer and business outcome.
Lead technical design for new features and services in the ITL platform: C#/.NET microservices, CQRS command/query handlers, event contracts on Azure Service Bus, Azure SQL data models, and React front-end integration.
Break epics into small, independently deployable increments; drive the squad toward frequent, low-risk production deployments using feature flags, trunk-based development, and automated testing.
Remain hands-on: write production code daily, take on the hardest or most ambiguous technical problems, and unblock the squad when it gets stuck.
Provide task breakdowns, identify dependencies and critical path, and give realistic effort estimates and risk assessments to the product owner and engineering manager.
Demonstrate the squad's work to business stakeholders and clearly connect technical work to customer and business impact.
Service Ownership & Operational Excellence
Own the health of the services the squad is responsible for: define SLOs, ensure meaningful alerting and dashboards exist, participate in and help run the on-call rotation, and lead the response to production incidents.
Lead blameless incident reviews for the squad; ensure follow-up actions are prioritized and completed so the same failure does not recur.
Drive the incremental decoupling of ITL domain data from upstream enterprise systems: for each feature, identify the data ITL should own, design the migration, and ensure it flows to the data warehouse for reporting.
Champion continuous improvement of the codebase: identify and pay down technical debt deliberately, improve build/test/deploy times, and reduce operational toil through automation.
Ensure secure coding practices, accessibility standards (WCAG 2.1 AA), and performance considerations are built into the squad's definition of done.
AI-First Engineering
Lead the squad's adoption of AI-assisted development tools (e.g., GitHub Copilot, Claude, Cursor): establish norms for using them well, including review and testing expectations for AI-generated code, and measure their impact on delivery speed and quality.
Use AI tools daily in your own work for design exploration, code generation, test writing, refactoring, and debugging, and model responsible use for the squad.
Partner with the Principal Software Engineer on the Product Engineering AI strategy; pilot new tools and techniques on the squad and share results across teams.
Identify and champion opportunities to apply AI within the ITL product or internal tooling where it creates measurable value for learners, instructors, and customers.
Team Growth & Culture
Set and uphold engineering standards for the squad: code review expectations, testing strategy, documentation, and architectural consistency with the broader ITL platform.
Mentor and coach engineers on the squad through pairing, design reviews, and regular feedback; help each engineer grow their technical skills and sense of ownership.
Create space for experimentation: sponsor time-boxed spikes and proofs of concept, insist on evidence in technical debates, and make it safe to try things that might not work.
Model learning from failure: own mistakes openly, turn them into lessons, guardrails, and runbooks, and lead retrospectives that produce real change.
Collaborate with other squad leads, the Platform team, and the Principal Software Engineer to align on cross-cutting technical decisions and shared standards.
You Need to Have
Bachelor's degree in computer engineering, computer science, or a related field, or equivalent practical experience
Seven years or more of professional software engineering experience building and operating production web applications and distributed services
Two years or more of experience as a technical lead, tech lead, or senior engineer responsible for the technical direction and delivery of a team
Five years or more of hands-on experience with C# and .NET (ASP.NET Core, .NET 6+) designing and building backend services and APIs
Deep experience with distributed, event-driven architectures: message brokers (Azure Service Bus or equivalent), idempotency, retries, sagas, and eventual consistency
Experience designing systems using CQRS, event sourcing, and/or domain-driven design, including defining bounded contexts and event contracts
Working experience with React and modern JavaScript/TypeScript sufficient to design, review, and contribute to front-end features
Experience designing relational data models and tuning SQL performance (SQL Server / Azure SQL)
Experience building and operating services in Azure (App Service, Functions, Service Bus, Azure SQL, Azure Monitor / Application Insights, Key Vault) or an equivalent cloud platform
The PivotHop read
- What a software engineer actually earnsmedian, seniority, by country
- Software Engineer career changes, measuredevery measured route out
- Backend Developer → Software Engineer70% readiness
- All open software engineer rolesthe full board
Where these skills also reach
- 1328 open backend developer roles73% readiness from software engineer
- 438 open mobile developer roles68% readiness from software engineer
- 2361 open solutions architect roles53% readiness from software engineer
- 73 open developer advocate roles46% readiness from software engineer
More software engineer roles
- Senior Software Engineer, Chaos Engineering at Direct employerParis, FranceTodayUnlock
- Senior API Engineer at Direct employerMadridTodayUnlock
- Software Engineer III at Direct employerErie, USTodayUnlock
- Software Development Engineer, II, 3DLN at Direct employerMapbox GermanyTodayUnlock
- Senior Software Engineer II at Direct employerMexico, Mexico CityTodayUnlock
Backfilled listing, refreshed with the nightly scrape; the employer has not claimed it yet. Are you the employer? Claim this listing and it can be featured to the candidates whose skills already reach it, first month free.