Senior Software Architect
Summary
Hands-on Senior Software Architect at Ncontracts, a risk & compliance software provider for financial institutions. The role spends most of its time in the codebase implementing architectural patterns across a .NET/C# and React stack, reviewing code, pairing with developers, and occasionally standing up LLM-powered features; distributed systems, messaging, and Azure/AWS experience are central.
WHO WE ARE
Headquartered in Nashville, Tennessee, Ncontracts leads the industry in integrated risk management and compliance solutions, serving over 5,000 financial institutions nationwide. As an eight-time Inc. 5000 Fastest Growing Companies honoree and consistent year-over-year recipient of "Best Places to Work" awards, we offer a thriving, work environment where career growth and life-work balance go hand in hand.
At Ncontracts, you'll join a team of industry experts dedicated to strengthening the financial services sector through innovation and thought leadership. We're seeking creative, collaborative, and self-driven professionals across all areas of our business - from developing cutting-edge solutions to sales, marketing, customer support, and beyond. Join us in our mission to make the financial industry stronger and more resilient, while advancing your career in a supportive, dynamic environment that values your unique skills and perspectives.
ABOUT THE ROLE
We are seeking a Senior Software Architect with deep .NET expertise to work alongside engineering teams, helping implement architectural patterns and standards defined by our Enterprise Architect and Software Architects. This role focuses on execution, translating architectural decisions across our core .NET application stack into working software.
This is a highly hands-on role. You’ll spend significant time in the codebase, implementing patterns, reviewing code, pairing with developers, and ensuring that day-to-day technical decisions (including distributed systems and integration design) align with our architectural standards. You’re not just advising; you’re building.
You’ll work with teams on specific initiatives or problem areas, helping implement a new integration pattern, supporting a modernization effort, standing up an LLM-powered capability. Your impact is direct and tangible.
Key Responsibilities
Architectural Implementation
Implement architectural patterns and standards defined by the Enterprise Architect and Senior Software Architects, including distributed systems and messaging patterns across our .NET services
Work within engineering teams to ensure solutions, across our .NET application stack align with established architecture decisions
Identify implementation challenges early and escalate to the team when decisions need to be revisited
Validate that completed implementations meet architectural requirements through hands-on review
AI & LLM Implementation
Note: this is a nice-to-have specialization for this role, not a core requirement — it applies when you’re assigned to a team building an AI-powered feature, not as a default part of the day-to-day work.
Design and implement patterns for integrating LLMs into product features, including prompt design, context management, and retrieval-augmented approaches
Apply prompt engineering techniques to build reliable, maintainable AI-driven features, and iterate on prompts based on observed model behavior
Use LLM observability tooling such as Langfuse to trace, evaluate, and debug AI workflows in development and production
Help define and apply evaluation approaches for AI features, covering accuracy, latency, cost, and safety considerations
Hands-On Technical Work
Write code regularly, this role requires significant time in the codebase implementing patterns and working alongside developers
Conduct detailed code reviews focused on architectural alignment, code quality, and maintainability
Pair with developers to work through complex implementation challenges, including those involving distributed systems, messaging, or, occasionally, LLM integrations
Help teams evaluate, and implement document chunking and embedding strategies to optimize for their customer’s use cases
Prototype approaches to validate architectural decisions before broader rollout
Team Collaboration
Embed with engineering teams on focused assignments based on architectural priorities
Build strong working relationships with developers and engineering leads
Participate in technical discussions, bringing architectural perspective to implementation decisions
Help teams understand the “why” behind architectural standards, not just the “what”
Surface patterns and challenges observed in teams back to Solution Architects and Enterprise Architect
Learning & Development
Seek feedback on architectural thinking and implementation approaches
Study our existing architecture, understanding the rationale behind current patterns and the history of key decisions
Develop broader perspective across the platform by working with multiple teams over time
Documentation & Communication
Document implementation patterns and approaches that teams can follow, including AI implementation patterns
Contribute to architecture decision records (ADRs) by capturing implementation learnings
Communicate clearly with developers about architectural expectations and rationale
Raise questions and surface ambiguities in architectural guidance to improve clarity for all teams
Required Qualifications
8+ years of progressive experience in software engineering, with demonstrated technical leadership or senior developer experience
3+ years of making technical and architectural decisions for your team
Strong hands-on coding skills, you’re an experienced developer who writes production code regularly
Deep, hands-on expertise in .NET/C# and React our core application language — you’re comfortable architecting across the full stack, not just a single service or layer.
Working familiarity with distributed systems and messaging frameworks (e.g., pub/sub, message queues, event-driven communication)
Familiarity with cloud platforms, particularly Azure or AWS
Understanding of modern application architectures: microservices, API design, event-driven patterns
Ability to work across different teams and adapt to varying codebases and contexts
Strong communication skills, you can explain technical concepts clearly to other developers
Curiosity about the “big picture,” you want to understand how systems fit together, not just your piece
Working familiarity with Python
Bachelor’s degree in Computer Science, Information Systems, or related field
Preferred Qualifications
Experience with the broader tech stack: React, Python, Snowflake, dbt
Hands-on experience building with large language models (LLMs) in production or near-production settings
Practical experience with prompt engineering, including designing, testing, and iterating on prompts for reliability and consistency
Experience with LLM observability or evaluation tooling such as Langfuse (or comparable platforms)
Familiarity with retrieval-augmented generation (RAG), vector databases, or agentic workflow patterns
Familiarity with our toolchain: TeamCity, Octopus Deploy, Azure DevOps, GitHub Actions
Exposure to integration patterns: REST APIs, message queues, CDC
Experience with database design and data modeling concepts
Background in DevOps practices and CI/CD pipelines
Experience working in multi-tenant SaaS environments
Prior experience in B2B SaaS or enterprise software development
WE OFFER ALL REGULAR FULL-TIME TEAM MEMBERS:
A fun, fast-paced work environment
Responsible PTO Plan that meets or exceeds state and local medical and family leave laws
11 paid holidays
Community and social events to keep you connected and engaged
Mental Health Benefits
Medical, Dental and Vision insurance
Company-paid Group Life Insurance, Short- and Long-Term Disability
Flexible Spending Account & Health Savings Account
Aflac Benefits – Critical Illness, Cancer Protection, & Hospital Choice
Pet Insurance
401 (k) with company match with eligibility on Day 1 of employment
2 Paid Volunteer Time Off Days
And much more!
*Part-Time and Contractor positions are not eligible for company benefits, including paid time off, health insurance, and other employee benefit programs. Full-time temporary employees are eligible for certain group benefits after a waiting period; specific eligibility timing will be provided at the time of offer.
AAP/EEO Statement
Ncontracts provides equal employment opportunities to all employees and applicants for employment and prohibits discrimination and harassment of any type without regard to race, color, religion, age, sex, national origin, disability status, genetics, protected veteran status, sexual orientation, gender identity or expression, or any other characteristic protected by federal, state, or local laws.
This policy applies to all terms and conditions of employment, including recruiting, hiring, placement, promotion, termination, layoff, recall, transfer, leaves of absence, compensation, and training.
Other Duties
Please note this job description is not designed to cover or contain a comprehensive listing of activities, duties or responsibilities that are required of the employee for this job. Duties, responsibilities, and activities may change at any time with or without notice.
As published by ashby · 14 questions
Basics
Resume, Legal Name, Email, City/State
Short answers (7)
- Address
- Phone
- LinkedIn Profile URL: optional
- Website, blog, or portfolio: optional
- Desired Salary:
- Earliest Start Date? optional
- If "Referral Source" is Employee Referral, please list their name below. Skip if not applicable. optional
Pick from a list (7)
- Are you 18 years of age or older?
- If extended a job offer, are you willing to submit to a detailed background check?
- What are your preferred pronouns? optional
- Referral Source?
- Are you legally authorized to work in the United States?
- Will you now or in the future require sponsorship for employment visa status?
- I certify that I, the undersigned applicant, have personally completed this application. I further certify that I have not knowingly withheld any information that might adversely affect my changes for employment and that the answers given by me are true and complete to the best of my knowledge. I understand that any omission or misstatement of fact on this application, or in any interview or document used to secure employment shall be grounds for rejection of this application or for immediate discharge if I am employed, regardless of the time elapsed before discovery. I hereby authorize Ncontracts and any of its subsidiaries (the “Company”) to investigate all statements given in this application, including my references, work record, and educations as well as all other matters related to my suitability for employment, and unless otherwise noted, to contact my present and former employers. I also authorize the references and employers I have listed to disclose to the Company any and all documents and other information related to my work records and employment, without giving me prior notice of disclosure. In addition, I hereby release the Company, my present and former employers and all other persons and entities from any and all claims, demands or liabilities arising out of or in any way related to such investigation or disclosure. I understand that nothing in this application or communicated during any interview creates a contract for employment between me and Ncontracts or any of its subsidiaries (the “Company”). I further understand that if hired, my employment with the company is at will, and that I or the Company may terminate my employment at any time without notice and without any reason. I understand that no promises or representations to the contrary are binding on the Company unless made in writing and signed by me and the CEO or an authorized representative of Ncontracts.