Crisis Prevention Institute

Principal Software Engineer

Milwaukee, WI - Full Time

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 Principal Software Engineer is the senior-most individual contributor in CPI's Product Engineering organization and is responsible for the technical architecture and long-term health of the Integrated Training and Learning (ITL) platform: a cloud-native learning platform composed of 30+ C#/.NET microservices built on CQRS and event-driven patterns, communicating over Azure Service Bus, backed by Azure SQL, and delivered through a React single-page application to CPI's learners, Certified Instructors, and customer administrators worldwide. This is a hands-on principal role. The Principal Software Engineer sets the technical vision for the platform, owns cross-cutting architectural decisions, and works directly in the code with product squads and the Platform team to make that vision real: prototyping, pairing, reviewing, and shipping. The role is measured by outcomes the platform enables (deployment frequency, reliability, cost efficiency, and speed of feature delivery), not by documents produced. The Principal Software Engineer is a multiplier for the whole organization and a visible role model for the culture CPI is building: curiosity, ownership, drive, experimentation, learning from failure, and continuous improvement.
 

Architecture & Technical Vision: 

  • Own the target architecture for the ITL platform and the roadmap to get there: service boundaries and bounded contexts, event and API contracts, data ownership, integration patterns, and front-end architecture. · Lead the architectural strategy for decoupling ITL domain data from upstream enterprise systems so that ITL owns its production data, deploys independently, and can ship to production multiple times per day.
  • Design and evolve the platform's event-driven backbone: event taxonomy and routing on Azure Service Bus, filtering and prioritization, idempotency, saga and retry strategies, and throughput and cost optimization.
  • Define the standards for CQRS, domain-driven design, API design, data modeling, security, and observability across all services, and make them easy to follow through templates, reference implementations, and tooling.
  • Evaluate build-versus-buy and platform decisions with clear cost, risk, and time-to-value analysis; produce lightweight architecture decision records (ADRs) so decisions and their reasoning are durable and revisitable.
  • Keep the architecture honest by measuring it: partner with the Platform team on distributed tracing, service-level dashboards, and cost visibility, and use that data to prioritize architectural investments.
Hands-On Engineering:
  • Write production code: prototype new patterns, build reference implementations, pair with engineers on the hardest problems, and contribute directly to critical initiatives.
  • Lead technical design reviews for significant changes across squads; review code for architectural consistency and teach through the review.
  • Run time-boxed experiments and proofs of concept to de-risk major decisions before committing the organization to them; kill ideas that the evidence does not support.
  • Serve as the final technical escalation point for complex production incidents; lead blameless reviews of systemic failures and drive architectural remediation.
AI-First Engineering:
  • Lead the technical strategy for AI-assisted software development across Product Engineering: tooling selection, guardrails, evaluation of quality and productivity impact, and shared practices.
  • Identify and architect opportunities to apply AI within the ITL product itself where it creates measurable value for learners, instructors, and customers.
Leadership, Mentorship & Culture: 
  • Raise the technical bar of the entire organization: mentor Lead and Senior engineers, run architecture guilds and tech talks, and grow the next generation of technical leaders.
  • Partner with the VP of Engineering, engineering managers, product leadership, and the Platform team to align technical strategy with product and business strategy; translate architecture into business outcomes for executive stakeholders.
  • Provide direction to a group of peers; achieve team buy-in and shape decisions using evidence, customer knowledge, and CPI business context; focus on reaching the right conclusion rather than winning the argument.
  • Model curiosity and continuous learning: stay current on industry trends in .NET, Azure, distributed systems, and AI, and apply what is relevant with pragmatism.
  • Make technical and financial decisions that are responsible, accountable, justifiable, and defensible in accordance with organizational policies and procedures.
  • Perform other position-related duties as assigned.

You Need to Have:
 

  • Bachelor's degree in computer engineering, computer science, or a related field.
  • Twelve years or more of professional software engineering experience, including five years or more in a principal, staff, or architect role responsible for the architecture of a multi-team product platform
  • Deep, hands-on expertise in C# and .NET (ASP.NET Core, .NET 6+) designing and building production services at scale
  • Demonstrated experience designing and operating event-driven microservice architectures in production: message brokers (Azure Service Bus or equivalent), event contracts, sagas, idempotency, back-pressure, and failure handling at high message volume
  • Demonstrated experience applying CQRS, event sourcing, and domain-driven design to real products, including defining bounded contexts and decomposing or re-drawing service boundaries
  • Experience leading the decoupling or migration of a product platform from a monolithic system of record (ERP/CRM or legacy application) without a big-bang cutover
  • Deep experience architecting on Azure: App Service, Functions, Service Bus, Azure SQL, Azure Monitor / Application Insights, Key Vault, networking and identity, and cost management
  • 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 set technical direction across multiple teams and bring them along through influence, evidence, and demonstrated results rather than authority
  • Ability to hold a long-term architectural vision while delivering pragmatic, incremental steps toward it alongside ongoing feature work
  • Ability to translate architecture into business terms (cost, risk, speed, reliability) for executive stakeholders and into concrete guidance for engineers
  • Excellent analytical and problem-solving skills; comfortable with ambiguity and able to make sound decisions with incomplete information
  • Well-developed interpersonal, negotiation, writing, speaking, and listening skills
  • Strong business acumen and strategic thinking ability

We'd Love to See:
  • Experience architecting learning management, EdTech, or other B2B SaaS platforms serving end users globally
  • Experience with Microsoft Dynamics 365 integration patterns and Dataverse
  • Experience applying large language models or other AI capabilities within a product
  • Experience with infrastructure as code (Bicep, Terraform), containers, and Azure Kubernetes Service
  • Azure Solutions Architect Expert or equivalent certification
  • Public speaking, technical writing, or open-source contributions in distributed systems or .NET
What We Offer:
  • Competitive salary
  • Comprehensive benefits package
  • 401(k)
  • PTO
  • Health & Wellness Days
  • Paid Volunteer Time Off
  • Continuing education and training
  • Hybrid or remote work schedule
  • Paid Parental Leave

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.
Apply: Principal Software Engineer
* Required fields
First name*
Last name*
Email address*
Location
Phone number*
Resume*

Attach resume as .pdf, .doc, .docx, .odt, .txt, or .rtf (limit 5MB) or paste resume

Paste your resume here or attach resume file

What’s your employment eligibility?*
Are you a current Crisis Prevention Institute Employee?*
Have you previously worked for Crisis Prevention Institute? If Yes, please list the date(s) and position(s):*
Have you previously applied to Crisis Prevention Institute? If Yes, please list the date(s) and position(s) applied for:*
Do you have relative(s) currently employed with Crisis Prevention Institute? If Yes, please list their name(s):*
Are you be able to perform the essential functions of this job with or without reasonable accommodation?*
The following questions are entirely optional.
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.
Gender
Race/Ethnicity

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
I IDENTIFY AS ONE OR MORE OF THE CLASSIFICATIONS OF PROTECTED VETERAN LISTED ABOVE
I AM NOT A PROTECTED VETERAN
I DON’T WISH TO ANSWER

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:
YES, I HAVE A DISABILITY, OR HAVE HAD ONE IN THE PAST
NO, I DO NOT HAVE A DISABILITY AND HAVE NOT HAD ONE IN THE PAST
I DO NOT WANT TO ANSWER

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.

Name Date
Human Check*