Note: The job is a remote job and is open to candidates in USA. CMG Financial operates a marketing technology platform supporting consumer websites, loan-officer microsites, marketing products, lead routing, and integrations with loan and marketing systems. The Senior Software Engineer will deliver and operate .NET-based capabilities, integrations, APIs, and background jobs while tracing production issues across application code, databases, vendor APIs, and Azure. The role also focuses on modernizing legacy systems, improving test coverage, and maintaining safe, evidence-based deployments.
Responsibilities
- Ship fast against structured requirements. Product hands us typed GitHub issues with testable acceptance criteria. The main number we watch is how quickly an accepted requirement becomes a production deployment. On this team most PRs merge the same day they open, and a bug fix routinely ships with its tests, evidence, and release notes in one pass. We are hiring for that pace, sustained, without skipping the quality gates that make it safe
- Own your systems end to end. The things you build are yours from requirements review through production. Most of the work is delivery: new capabilities on the loan-officer platforms, vendor API integrations, internal APIs that replace legacy coupling, hardening background jobs that move real loan data. And when something you own misbehaves in production, you're the one who can trace it across application code, SQL Server, vendor APIs, and Azure infrastructure and fix it at the right layer, because you understand the whole path. There's no separate ops team to hand off to; that's why our deploys are gated, evidence-backed, and reversible, and it's also why engineers here get to make real architectural decisions about the systems they run
- Modernize as you go. This is not a cleanup job, and it's not a greenfield job either; the two run side by side. The target architecture already exists in our newest platforms, the remaining tech debt has been audited and ranked into concrete backlogs (you will never be guessing where to dig), and modernization work is first-class roadmap work here, not something you sneak in between features. You'll pull the older half of the portfolio toward the standard the newer half already meets: extract services out of oversized controllers, bring schema under source control, replace shared-database coupling with internal APIs, retire end-of-life frameworks, and add test suites where they're missing. Every one of those changes makes the codebase faster and safer for both people and coding agents to work in, which feeds directly back into the delivery speed we care about
- Every change ties to an accepted, typed issue with testable acceptance criteria, and engineers send vague tickets back to product before writing code. Completion runs a validation gate, and the PR carries the evidence. Agents write a large share of the code, so your value is judgment at the gates: is the plan right, is the generated test real or tautological, does the evidence actually prove the acceptance criterion, is this safe to ship
- Two things above the rest: cycle time from product-accepted requirement to production deployment, and the trend line on the codebases you own — fewer EOL frameworks, more tests running in CI, fewer places where an agent or a new engineer gets trapped
Skills
- * Deep C#/.NET experience across generations: productive in .NET 8/9 (where new work happens) and unafraid of the .NET Framework apps, Azure Functions, and Hangfire jobs we're still migrating — reading unfamiliar legacy code and improving it as you pass through is a core skill here
- * Strong SQL Server skills: T-SQL (procedures, views, triggers, window functions), query and index tuning, and disciplined production data changes. Our data access spans EF Core, EF6, Dapper, and raw ADO.NET; you should be able to read and safely change all of them
- * Evidence-first debugging. You reproduce before you fix, you can tell a code defect from a config, data, or infrastructure problem, and you can show your work
- * Integration engineering: REST APIs and webhooks, OAuth/JWT, retries and idempotency, file feeds, and the patience to work with imperfect vendor APIs. Our current set includes Salesforce, BytePro, DocuSign, Stripe, Cloudinary, Uberall, and Testimonial Tree, among others
- * Testing habits that survive legacy code: xUnit/NUnit with mocking, regression tests that fail on the old behavior, and the will to bootstrap the first test project in a solution that has none
- * CI/CD and Azure operations: GitHub Actions, Docker to App Service, Azure Functions, Application Insights, deploy sequencing (database before code), feature flags, and dev-to-main release promotion
- * Refactoring judgment: blast-radius analysis before touching shared objects, incremental strangler-style migrations, and parity testing with a rollback path for anything risky
- * Clear technical writing. Requirements clarification, PR narratives, runbooks, and rules files are daily output here, and they are how both the team and the agents stay effective
- * Proactivity. The best people in this role file their own tickets: they notice the missing index, the silent failure path, the credential sitting in source, and turn it into scoped, prioritized work without being asked
- We expect fluency with agentic development on day one. You don't need to have used our specific tooling. You do need to know how to get reliable output from a coding agent and how to catch it being confidently wrong
- * Mortgage or fintech domain experience (rate locks, LOS data, NMLS compliance)
- * Frontend range: React/TypeScript on the new stack; jQuery, Knockout, and webpack on the old one
- * Terraform, Okta, or headless CMS (Kentico Kontent) experience
Benefits
- Eligible employees also receive a comprehensive benefits package.
Company Overview
Company H1B Sponsorship