Cambium Learning
Principal Software Engineer
Remote
Get past the screening software and onto a recruiter's desk
hirly rewrites your resume for this job — matching the keywords and skills in the posting, moving your most relevant experience to the top, and writing a cover letter to fit. About 30 seconds.
- Keywords matched to this posting
- Fit score before you apply
- Cover letter included
Matched against 2.6M live jobs from 210,000+ employers in 200+ countries.
Tailor my resume for this job →Apply from your AI assistant
Connect hirly to Claude or ChatGPT and ask it to apply to this job. hirly tailors your resume, fills the employer’s form and asks before sending.
Some employer sites stop an application at a CAPTCHA or sign-in and hand it back with a link. Applying needs a paid plan. Works with any assistant that supports MCP.
hirly's read of this role
- Role family
- Engineering
- Seniority
- Lead / management
- Country
- US
- Work mode
- Remote-friendly
- First seen by hirly
- 3 Nov 2026
Derived automatically from the posting. Upload your resume above to see how the role scores against it.
the posting
Job Overview:
ExploreK12 Literacy is looking for a Principal Software Engineer who combines deep technical expertise, strong engineering judgment, and hands-on execution.
This role is for an engineer who can get deeply into a complex, mature application, understand how it actually works, and help determine how it should evolve. You will work directly in the code while also helping teams navigate difficult technical decisions, modernization efforts, architectural constraints, and ambiguous engineering problems.
You will be a senior technical leader within the Literacy product area, partnering closely with engineers, engineering leaders, and architects to help shape technical direction across multiple teams and products. You will help shape technical direction, surface risks and tradeoffs, and turn complex problems into practical paths forward. You will also work across product boundaries where shared capabilities or product convergence require coordination with other engineering teams.
Modernization is an important part of this role, but it is not the goal by itself. The goal is to enable the future of the product while making the system easier to understand, change, test, deploy, and operate. Sometimes that means modernizing a system. Sometimes it means integrating with it, isolating it, incrementally replacing part of it, or deliberately leaving it alone.
We are also looking for someone who is fluent in modern AI-assisted software development and interested in applying AI thoughtfully where it can improve engineering effectiveness or create meaningful product value. You do not need to be an AI specialist.
Job Responsibilities:
Solve Difficult Technical Problems
- Get deeply into our applications, codebases, data flows, integrations, dependencies, and operational behavior to understand how the system actually works.
- Investigate complex technical problems through multiple layers of the system until the underlying causes and constraints are understood.
- Turn ambiguous or complicated engineering problems into clear problem statements, options, tradeoffs, and recommended approaches.
- Bring strong technical judgment to decisions involving complexity, risk, customer value, cost, maintainability, team capacity, and future product needs.
- Surface significant technical risks early and take clear, well-supported positions when you believe the organization is heading toward a poor technical outcome.
Remain a Hands-On Engineer
- Contribute meaningful production code and take direct responsibility for technical work where your involvement can have high impact.
- Depending on the needs of the product, own or contribute to projects, features, migrations, prototypes, architectural changes, and difficult engineering investigations.
- Work at both the architecture and implementation levels, moving between system-level reasoning and code-level details as the problem requires.
- Use hands-on involvement to build firsthand understanding of the system rather than operating primarily through architecture documents and reviews.
- Exercise judgment about when personally implementing a solution is the highest-leverage contribution and when enabling another engineer or team will create greater value.
Help Evolve a Mature Product
- Partner with architects and product engineering leaders to understand the current application landscape and help craft practical approaches for its evolution.
- Identify where architectural constraints and technical debt are materially affecting engineering effectiveness or limiting future product capabilities.
- Recommend modernization investments based on evidence, expected value, risk, cost, reversibility, team capacity, and product direction.
- Apply approaches such as incremental replacement, modularization, API enablement, migration, strangler patterns, or parallel adoption when they are appropriate to the problem.
- Help teams decompose significant technical change into achievable increments that reduce risk and produce useful progress.
- Recognize when existing technology is adequate and modernization would create more cost or risk than value.
- Help reduce friction in how engineers understand, change, test, deploy, and operate important parts of the product.
- Contribute to a credible longer-term path for the product's technical evolution rather than treating modernization as a collection of isolated projects.
Provide Principal-Level Technical Leadership
- Be a high-leverage technical partner on important architectural decisions, novel problems, technically risky initiatives, and work with significant cross-product implications.
- Identify architectural constraints, technical risks, and systemic issues that span multiple teams, products, or strategic initiatives, and help drive resolution before they become significant delivery, operational, or customer-impacting problems.
- Work with Product and Design during solution discovery and implementation planning to translate product needs into sound technical approaches and challenge proposed solutions when technical insight reveals a materially better path.
- Partner with architects on broader architectural concerns such as shared capabilities, identity, data, integration patterns, and areas where products increasingly need to work together.
- Influence technical direction across the Literacy product area by helping teams align around shared architectural assumptions, integration approaches, technical standards, and long-term evolution paths.
- Help teams make stronger technical decisions through architectural guidance, decision frameworks, and shared understanding without becoming an approval gate or centralizing decisions around yourself.
- Explain and defend technical recommendations clearly while respecting the accountability of engineering leaders and teams for final decisions and delivery.
- When important technical disagreements cannot be resolved within a team, help make tradeoffs explicit and support escalation to the appropriate engineering leader.
Develop Stronger Technical Leaders
- Intentionally develop senior engineers and technical leads by involving them in difficult technical problems and helping them strengthen their own judgment.
- Coach through design discussions, investigation, pairing, implementation, and code review rather than simply supplying answers.
- Give engineers increasing ownership of difficult technical work so that the organization becomes more capable rather than more dependent on the Principal Engineer.
- Improve technical practices, design discussions, standards, documentation, or engineering forums when doing so addresses a meaningful recurring problem.
Apply AI Practically
- Use modern AI-assisted development tools extensively and thoughtfully as part of your engineering workflow.
- Understand the capabilities and limitations of current AI technologies well enough to reason about where they can and cannot add value.
- Help identify practical opportunities for AI to improve engineering effectiveness or enable useful product capabilities.
- Prototype or contribute to AI-enabled solutions when appropriate, with appropriate attention to privacy, security, quality, cost, and responsible use.
- Help the engineering organization learn from practical AI adoption rather than pursuing AI for its own sake.
Job Requirements:
- 10+ years of professional software engineering experience, including demonstrated experience operating as a senior technical leader on complex software systems. Previous experience with the title of Principal Engineer is not required.
- Demonstrated recent, hands-on experience designing, developing, and supporting production systems using PHP, MySQL, Java, and MS SQL Server at a Principal or Staff Engineer level.
- Exceptional ability to investigate complex technical problems and work through abstractions until you understand what is actually happening.
- Strong application architecture skills, including the ability
Listed on hirly, a job board. hirly is not the employer: Cambium Learning is hiring for this role.
Similar jobs
- Lead Software Engineer - CityOKC · Oklahoma City, OK, United StatesFirst seen today
- R-565033 Software Engineer Senior Manager - Cross Channel Banker PlatformWf · COLUMBUS, OHFirst seen today
- Principal Embedded Software EngineerEmerson · Shakopee, MN, United StatesFirst seen today
- Lead Principal Application Software EngineerOracle · Nashville, TN, United StatesFirst seen today
- Principal Platform Software Engineer - Oracle HealthOracle · United StatesFirst seen today
Browse similar roles
Want this one?
Upload your resume and hirly rewrites it for this job and writes the cover letter — in about thirty seconds, before you sign up.
Tailor my resume for this job