Lead Software Engineer

Remote
Full Time
Experienced

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. 
  • Perform other position-related duties as assigned.

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
  • Experience establishing and improving CI/CD pipelines (Azure DevOps or GitHub Actions), automated test strategies, and continuous delivery practices
  • Experience leading incident response and blameless post-incident reviews for production systems
  • Experience mentoring engineers and leading technical design and code reviews
  • Knowledge of observability practices (structured logging, metrics, distributed tracing, SLOs) and security-based design patterns
  • Experience using AI-assisted development tools daily and guiding others in their effective, responsible use
  • Yearly personal development demonstrated by successfully completing an accredited software engineering course, acquiring a software engineering-related certification, or presenting a completed learning project to the team
  • Curiosity: asks why before how, digs into unfamiliar code and systems, and seeks to understand the learner, instructor, and customer problem behind every request
  • Ownership: treats the services and features they touch as theirs to keep healthy, from design through production support, and does not wait to be assigned a problem before solving it
  • Drive: a bias toward shipping working software in small, frequent increments and following through until the outcome is achieved, not just the ticket closed
  • Experimentation: comfortable proposing and running small, time-boxed experiments (spikes, proofs of concept, A/B tests) and letting evidence, not opinion, settle technical debates
  • Learning from failure: participates openly in blameless retrospectives and incident reviews, shares mistakes as lessons, and turns them into guardrails, tests, or runbooks
  • Continuous improvement: leaves every codebase, process, and document a little better than they found it
  • Ability to lead a team technically without formal authority: earn trust, build consensus, and make timely decisions when consensus is not possible
  • Ability to balance short-term delivery with long-term platform health and to explain those trade-offs to product and business stakeholders
  • Ability to facilitate evaluation of technologies and achieve consensus on technical standards and solutions among a diverse group of engineers
  • Excellent verbal and written communication; able to write clear design documents and give direct, constructive feedback
  • Demonstrated ability to attract, develop, and retain strong engineers
We'd Love to See:
  • Experience on a learning management system, EdTech, or other B2B SaaS product used by end users at scale
  • Experience decoupling a product platform from an ERP/CRM system of record such as Microsoft Dynamics 365
  • Experience with infrastructure as code (Bicep, Terraform) and containerized workloads
  • Experience with web accessibility (WCAG 2.1 AA)
  • Azure certifications (e.g., Azure Developer Associate, Azure Solutions Architect)
​​​​​​​
Crisis Prevention Institute is an Equal Opportunity Employer that does not discriminate against any applicant or employee on the basis of age, race, color, ethnicity, national origin, citizenship, religion, creed, sex, sexual orientation, gender, gender identity, or expression (including against any individual that is transitioning, has transitioned, or is perceived to be transitioning), marital status or civil partnership/union status, physical or mental disability, medical condition, pregnancy, childbirth, genetic information, military and veteran status, or any other basis prohibited by applicable federal, state, or local law. The Company will consider for employment qualified applicants with criminal histories in a manner consistent with local and federal requirements. Our management team is dedicated to this policy with respect to recruitment, hiring, placement, promotion, transfer, training, compensation, benefits, employee activities, and general treatment during employment.
Share

Apply for this position

Required*
We've received your resume. Click here to update it.
Attach resume as .pdf, .doc, .docx, .odt, .txt, or .rtf (limit 5MB) or Paste resume

Paste your resume here or Attach resume file

To comply with government Equal Employment Opportunity and/or Affirmative Action reporting regulations, we are requesting (but NOT requiring) that you enter this personal data. This information will not be used in connection with any employment decisions, and will be used solely as permitted by state and federal law. Your voluntary cooperation would be appreciated. Learn more.

Invitation for Job Applicants to Self-Identify as a U.S. Veteran
  • A “disabled veteran” is one of the following:
    • a veteran of the U.S. military, ground, naval or air service who is entitled to compensation (or who but for the receipt of military retired pay would be entitled to compensation) under laws administered by the Secretary of Veterans Affairs; or
    • a person who was discharged or released from active duty because of a service-connected disability.
  • A “recently separated veteran” means any veteran during the three-year period beginning on the date of such veteran's discharge or release from active duty in the U.S. military, ground, naval, or air service.
  • An “active duty wartime or campaign badge veteran” means a veteran who served on active duty in the U.S. military, ground, naval or air service during a war, or in a campaign or expedition for which a campaign badge has been authorized under the laws administered by the Department of Defense.
  • An “Armed forces service medal veteran” means a veteran who, while serving on active duty in the U.S. military, ground, naval or air service, participated in a United States military operation for which an Armed Forces service medal was awarded pursuant to Executive Order 12985.
Veteran status



Voluntary Self-Identification of Disability
Voluntary Self-Identification of Disability Form CC-305
OMB Control Number 1250-0005
Expires 07/31/2029
Why are you being asked to complete this form?

We are a federal contractor or subcontractor. The law requires us to provide equal employment opportunity to qualified people with disabilities. We have a goal of having at least 7% of our workers as people with disabilities. The law says we must measure our progress towards this goal. To do this, we must ask applicants and employees if they have a disability or have ever had one. People can become disabled, so we need to ask this question at least every five years.

Completing this form is voluntary, and we hope that you will choose to do so. Your answer is confidential. No one who makes hiring decisions will see it. Your decision to complete the form and your answer will not harm you in any way. If you want to learn more about the law or this form, visit the U.S. Department of Labor’s Office of Federal Contract Compliance Programs (OFCCP) website at www.dol.gov/ofccp.

How do you know if you have a disability?

A disability is a condition that substantially limits one or more of your “major life activities.” If you have or have ever had such a condition, you are a person with a disability. Disabilities include, but are not limited to:

  • Alcohol or other substance use disorder (not currently using drugs illegally)
  • Autoimmune disorder, for example, lupus, fibromyalgia, rheumatoid arthritis, HIV/AIDS
  • Blind or low vision
  • Cancer (past or present)
  • Cardiovascular or heart disease
  • Celiac disease
  • Cerebral palsy
  • Deaf or serious difficulty hearing
  • Diabetes
  • Disfigurement, for example, disfigurement caused by burns, wounds, accidents, or congenital disorders
  • Epilepsy or other seizure disorder
  • Gastrointestinal disorders, for example, Crohn's Disease, irritable bowel syndrome
  • Intellectual or developmental disability
  • Mental health conditions, for example, depression, bipolar disorder, anxiety disorder, schizophrenia, PTSD
  • Missing limbs or partially missing limbs
  • Mobility impairment, benefiting from the use of a wheelchair, scooter, walker, leg brace(s) and/or other supports
  • Nervous system condition, for example, migraine headaches, Parkinson’s disease, multiple sclerosis (MS)
  • Neurodivergence, for example, attention-deficit/hyperactivity disorder (ADHD), autism spectrum disorder, dyslexia, dyspraxia, other learning disabilities
  • Partial or complete paralysis (any cause)
  • Pulmonary or respiratory conditions, for example, tuberculosis, asthma, emphysema
  • Short stature (dwarfism)
  • Traumatic brain injury
Please check one of the boxes below:

PUBLIC BURDEN STATEMENT: According to the Paperwork Reduction Act of 1995 no persons are required to respond to a collection of information unless such collection displays a valid OMB control number. This survey should take about 5 minutes to complete.

You must enter your name and date
Human Check*