Remote Position
[Remote] Lead Software Engineer
π Remote Β· United States
πΌ Full-time
Note: The job is a remote job and is open to candidates in USA. Crisis Prevention Institute is a provider of evidence-based de-escalation, crisis prevention training, and dementia care services. The Lead Software Engineer will serve as the technical lead for a product engineering squad developing CPI's cloud-native Integrated Training and Learning platform, with a focus on backend C#/.NET microservices, Azure, and distributed architectures. The role combines hands-on software development with technical direction, service ownership, incident response, mentoring, and adoption of AI-assisted engineering practices.
Responsibilities
- 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
- 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
- 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
- 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
Skills
- 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
- 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)
Benefits
- Gain significant career experience within a fast-growing organization, from entry-level roles through executive leadership
- Build meaningful relationships and celebrate the wins
Company Overview