The Senior Software Engineer is a key technical contributor and team leader who designs, builds, and maintains applications across the full stack-including .NET/C# applications, and our data services platform. Working on an Agile team, the Senior Software Engineer consistently delivers well-engineered, maintainable, and tested solutions on time, while championing user-centered design, sound architecture, and engineering best practices.
Principal Responsibilities
Engineering Execution & Delivery
- Develop features for the compliance management platform on an Agile team, consistently delivering well-engineered, maintainable, and tested solutions within agreed-upon timeframes.
- Build and maintain efficient, reusable code across the stack: message handlers, ASP.NET Core APIs, SQL Server stored procedures and migrations, and Blazor UI.
- Support critical business logic across a suite of robust services and scalable data processing jobs.
- Diagnose production issues in distributed systems: trace requests across services, reason about dependency injection lifetimes in long-running hosted processes, understand retry and dead-letter behavior.
- Practice and promote Test-Driven Development (TDD), participate in sprint planning and code reviews, and adapt to new languages, tools, and frameworks as needed.
System Design & Architecture
- Lead architectural discussions for mid-to-large systems, designing modular, extensible, well documented components that scale and minimize rework.
- Apply UI principles, cross-browser compatibility, and web standards; advocate for security, reliability, and operational excellence, including e-commerce security principles and current website security patches.
- Model business problems in C#. Clean domain types, well-chosen abstractions, code that reads like intent rather than plumbing.
- Strong object-oriented design instincts. SOLID is a starting point, not a religion. You know when to compose, when to inherit, when to keep things procedural.
- Solid understanding of dependency injection, including lifetimes, scope boundaries, captive dependencies, how DI behaves across long-running hosted services.
- Integrate with external services and SDKs as the business needs them. Ex. Azure Storage, Key Vault, Microsoft Graph, third-party APIs.
- Champion user-centered design processes that address real user needs.
Web Development & User Experience
- Build and maintain scalable, reusable Razor/MVC components, layouts, and forms.
- Develop site architecture and wireframes; optimize SEO and functionality to meet web standards and major-browser compatibility.
- Analyze, test, and troubleshoot website performance and coding issues; stay current on web technologies, browsers, and mobile platforms.
Code Review, Quality & Mentorship
- Perform detailed code reviews to uphold engineering standards and grow peers through constructive feedback; champion consistent coding standards and maintainability.
- Mentor and guide other software engineers through coaching, pairing, and knowledge sharing; take ownership of team delivery quality and unblock teammates.
- Lead by example in resilience, collaboration, and a growth mindset, and contribute to peer evaluations and growth planning.
Cross-Functional Collaboration & Continuous Improvement
- Collaborate with the product team, designers, QA, and stakeholders to understand business requirements and to scope, estimate, and deliver features.
- Communicate user needs through storytelling and data, demonstrating how proposed designs solve those needs for internal teams and senior partners.
- Work comfortably across multiple teams and projects, including remote and local collaboration.
- Identify inefficiencies and lead small to mid-sized engineering efforts (e.g., migrations, tech debt cleanup, platform upgrades); contribute to hiring, onboarding, and engineering culture.
Education, Experience, Skills & Abilities
- Bachelor's degree in Computer Science, Information Technology, or a related field preferred.
- 8+ years in software engineering or a related field, including 5+ years with dynamic and/or compiled languages and 5+ years in front-end web development.
- Strong understanding of distributed messaging - Azure Service Bus or similar, queue-based workers, idempotency, retry and dead-letter strategies.
- Demonstrated experience mentoring engineers, leading code reviews, contributing to architectural decisions, and working with APIs from concept to completion.
- Strong portfolio including mobile web, desktop, and app experiences; comfortable working on multiple teams and projects simultaneously.
- Proficient in C#, .NET, MVC, jQuery, HTML, CSS, AJAX, JavaScript, XML, and PHP.
- Very strong proficiency with relational databases, including modeling and performance optimization (MySQL, PostgreSQL, Aurora); familiarity with SQL Server preferred. ORM's (Dapper, EF Core)
- Familiarity with SaaS models and cloud services, preferably AWS; Microsoft Azure a plus.
- Functional expertise with browser debugging tools and clean, maintainable coding practices.
- Believer in Lean and Agile values; strong understanding of user-centered design.
- Strong communication, adaptability, attention to detail, and a collaborative mindset; comfortable with remote and in-office engineering teams.
- Detail-oriented, self-motivated, and willing to learn new technologies.
#LI-JW2
#LI-REMOTE