Fiduciary Technology Partners
Senior DevOps Engineer - platform Azure & Full Stack
Share this job
Job Description
Overview
Senior Engineer — Platform, Azure & Full Stack FidTech Partners — Remote or hybrid — Full-time — Reports to the CTO
About us : FidTech Partners builds software that community foundations and philanthropic organizations use to run their funds, gifts, grants, donor relationships and reporting.
There are three products
FoundationHub for foundation staff, DonorSphere for their donors, and GranteeSphere, our newest, which ships its first release in October.
When a foundation approves a grant or sends a donor their quarterly statement, that is our software doing it. It is real money and real donor data. Getting the number right matters more here than shipping fast.
Read this part before the bullet points
This role is not a pure SRE position, and it is not a pure application-developer position. It is both: you write features in C# and React alongside the rest of the team, and you own the platform those features run on.
If you only want to do one of those two things, this is the wrong posting, and we would rather you knew that now.In exchange, you get something small companies can offer and large ones cannot: you will not have to lobby three committees to fix something that is obviously broken. You will fix it.
What you would own
The Azure estate. Multiple environments from development through to production: Function Apps, App Service and IIS, Azure SQL and SQL Server on VMs, Key Vault, App Configuration, virtual networks and private endpoints, managed identity end to end.Delivery pipelines across roughly forty repositories. GitHub Actions with OIDC federation, infrastructure as code in Bicep.
The database estate. SQL Server, a separate database per client, replication, backup, restore and disaster recovery. This is not a DBA role, but you cannot be squeamish about databases and do this job well.
Observability and incidents. Application Insights, alerting, and the internal operations dashboard we built to watch all of it. When production misbehaves, you are one of the people who finds out why.
Security posture. Entra ID, conditional access, WAF and secrets hygiene.
And the products themselves. Not as a footnote: you will write a great deal of application code.
GranteeSphere, launching in October, is our newest product and the most modern thing we have built. It includes a drag-and-drop grant application builder, a review-workflow designer, and AI-assisted scoring of incoming applications. The stack is current: dot.NET Core 10 on the back end, and React 18 with TypeScript in strict mode on the front end, with Vite, Redux Toolkit with RTK Query, Tailwind, Zod-validated forms, Storybook, Vitest and Playwright. It was designed properly, from scratch, this year. If you have spent the last three years fighting somebody's decade-old stack, this is the antidote.
FoundationHub is the opposite end: a large Classic ASP application, roughly twenty years old, carrying an enormous amount of hard-won financial logic. We are migrating it onto React and .NET screen by screen while foundations use it every day. This is difficult, careful, interesting work, and it is nothing like a greenfield build.
Most engineers only ever get to see one of those two worlds. Here you get both, usually in the same week.What we are looking for
The core
Enough years to have formed opinions and to have been wrong about a few of them. Call it seven or more, though we will judge the work rather than the number.
Strong C# / .NET. Our newest service is on dot.NET Core 10; our oldest is rather further back. You have designed REST APIs rather than just inherited them, and you have the judgment to know when a background job beats an endpoint.
Comfortable in React and TypeScript. You do not need to be equally strong on both sides, but you should be able to take a feature all the way to the screen without waiting for someone else. Strict-mode TypeScript, modern React and a tested component library are the standard we hold our new work to.
Azure in production, not in a tutorial. You have deployed it, broken it, debugged it, and written the infrastructure as code afterward so it did not happen twice.
SQL Server you can tune. Execution plans, indexing, and the confidence to open a two-thousand-line stored procedure without flinching.
You have owned something operationally. You have run an incident, written the post-mortem, and shipped the fix that stopped the alert recurring.An automation reflex. If you have done it by hand three times, you are already annoyed about it.
You use AI development tools every day. We use Claude across the team, and this is not decoration; it is how we work.
We will ask you specifics.You can explain your work clearly in writing: what you changed, why, and what others should watch for.
If your stack is adjacent: if you are strong on AWS or GCP rather than Azure, or Java or Node rather than .NET, and you have crossed that kind of gap before, apply.
Platform judgment transfers. We would rather have an excellent engineer learning our stack than an average one already fluent in it.
What would make you stand out
Infrastructure as code at real scale: Bicep, Terraform, or having migrated an estate from click-ops to something reproducible.Azure networking in depth: private endpoints, VNet integration, egress control, and the failure modes that only appear in production.
Cloud cost work. Finding and removing wasted Azure spend without hurting reliability.
Incremental modernization of a legacy system that could not be taken offline: the strangler-fig pattern, characterization tests, running old and new side by side.
Regulated environments: experience handling PII, financial or payment data, with the access and change controls that come with it.
SQL Server replication, high availability, or performance work at a level most developers never reach.
A record of raising the standard around you: reviews that teach, documentation people actually read, mentoring that stuck.
What we offer
Salary: $120,000–$130,000, depending on experience.
Paid time off: 15 days, plus all federal holidays.
Health coverage: health, dental and vision, fully covered.
Retirement: 401(k) eligibility.
Remote or hybrid, and unusually high autonomy: there is no layer of management between this role and the CTO.
How to apply
A human reads every application. No keyword filter, no automated rejection.Answer one of the two questions below, whichever is closer to your wheelhouse.
Answering both tells us something too, but it is not required. Short and clear beats long everytime.
Question 1: the database one. This query runs without error, but the totals it returns are wrong. In your own words: what is wrong, how would you fix it, and how would you stop the same class of bug reaching production next time?sqlSELECT f.FundName, SUM(g.Amount) AS TotalGranted FROM Funds f JOIN Grants g ON g.FundId = f.FundId JOIN Payments p ON p.GrantId = g.GrantId WHERE g.GrantDate BETWEEN '2026-01-01' AND '2026-03-31' AND f.Status = 'Active' GROUP BY f.FundName;
Question 2: the platform one. A .NET service runs perfectly in staging. The identical build, deployed to production, fails at startup with Login failed for user.
Same code, same container, same database schema.
Where do you look, in what order, and what are the two or three causes you would bet on before you look at anything?
We will pick your answer back up in the interview, so write something you would be happy to defend.
Pay: $120,000.00 - $130,000.00 per year
Benefits
- 401(k)
- 401(k) matching
- Dental insurance
- Health insurance
- Paid time off
- Parental leave
- Vision insurance
Application Question(s)
- Question 1: the database one. This query runs without error, but the totals it returns are wrong. In your own words: what is wrong, how would you fix it, and how would you stop the same class of bug reaching production next time?sqlSELECT f.FundName, SUM(g.Amount) AS TotalGranted FROM Funds f JOIN Grants g ON g.FundId = f.FundId JOIN Payments p ON p.GrantId = g.GrantId WHERE g.GrantDate BETWEEN '2026-01-01' AND '2026-03-31' AND f.Status = 'Active' GROUP BY f.FundName;
- Question 2: the platform one. A .NET service runs perfectly in staging. The identical build, deployed to production, fails at startup with Login failed for user ''.
Education
* Master's (Required)
Work Location: Remote
Keep looking
Similar Remote Jobs That Pay Well
Northwest Open Access Network
Senior Full Stack DevOps Engineer
fal - Features & Labels
Senior/Staff Software Engineer, Kubernetes Infrastructure
fal - Features & Labels
Senior/Staff Software Engineer, Network Infrastructure
Massachusetts Bay Transportation Authority
Software Engineer (Platform Engineering)
Starmax Group