Senior Software Engineer (.NET / Azure)
Zephyr Wind Services · Fully remote (Boise-area candidates only) · Must be authorized to work in the U.S. without sponsorship · In-person interviews required · $130,000–$140,000
The short version
We're a small software team inside a 150+ person wind energy company, and we're growing the crew. We want a Senior Software Engineer — a strong, trusted builder who'd rather be on a tiny team where every person's work matters than buried in an eight-person feature team where nobody owns anything.
We're an AI-first shop: we plan and design our solutions with Claude Code, let it write the code, then bring deep expertise to bear making sure that code is right. That's the heart of the role, and the first thing we'd want you to be excited about.
This is an individual contributor role reporting to the Director of Software Engineering, working shoulder-to-shoulder with our Senior engineer and the Lead we're also hiring. A handful of people building software that runs a real, growing business. We move fast, hold a high bar, and have fun doing it.
What we actually do all day
This part will either light you up or send you running — worth knowing which before you apply.
Our day-to-day is not typing out .NET by hand. It starts with planning: genuinely designing the solution alongside Claude Code, thinking through the approach before a line is written. Then we let it write the code and work with it to get that code right — making sure it follows our established patterns, doesn't quietly invent new ones, doesn't ship subtle bugs, and reflects the big-picture context the tool simply doesn't have. We bring the large context to the small context of the agent. That's the craft now. We work in Claude Code inside Visual Studio — every task starts in plan mode, working out the architecture and decisions with the agent before a line of code is written. We use Skills to keep our patterns consistent, and we track everything in Azure DevOps.
A huge part of “right” is keeping it simple. Left unsupervised, an AI will happily over-engineer, reinvent wheels, and build clever, convoluted code paths. We don't want any of that. The simple solution is almost always the correct one, and code should be human-readable: if a teammate can't understand it, it gets rejected — partly because it's hard to troubleshoot, partly because complicated code is more likely to need troubleshooting in the first place.
So when we say “deep .NET experience is non-negotiable,” it's not because we want you grinding out boilerplate. It's because you can't supervise code you can't read fluently. The .NET fluency is what lets you spot the wrong pattern, the un-idiomatic API, the introduced bug, the thing that works but is needlessly complex. Our API, Functions, and services are where the sharpest eye is needed.
One thing to be clear about up front: this is a shared, standardized workflow — same tools, same model, same patterns, on purpose. We're looking for someone genuinely fired up to push the limits of that paradigm with us. If agent-driven development sounds like a step down, we're probably not your shop, and that's okay.
The kind of thinking we're hiring for
The clearest way to describe the level is with an example.
A ticket comes in to build a dashboard listing active projects, each row showing a few summary numbers — open tasks, hours logged, that kind of thing. The obvious implementation loads the projects, then loops through them firing a query per project to fetch its numbers. Works great in testing with a dozen projects. Then it hits real data, the page is firing hundreds of queries on every load, and it crawls.
A strong Senior engineer recognizes that per-row query pattern for the trap it is — ideally while reviewing the code before it ships — understands why it's slow, and knows the clean fix is to let the database do the aggregation in one query rather than looping in code. We don't expect you to have solved every scaling problem in your sleep. We want the engineer who understands these patterns, gets why they matter, and is sharpening that instinct every day — someone hungry to see the whole machine, not just close the ticket.
What you'll do
- Plan and build alongside Claude Code, then rigorously review the .NET and Angular it produces — holding the line on quality, simplicity, and our established patterns.
- Write clean, readable, well-tested code your teammates can pick up without a decoder ring.
- Bring real judgment to technical decisions. On a small team every voice is valued, and we set direction together.
- Review your teammates' work with a sharp eye, learn from theirs, and raise everyone's game.
- QA what we build before it ships. We don't lob unverified code over the wall.
- Work across the stack: .NET APIs and Azure Functions, Angular front ends, SQL Server, and the Azure plumbing that ties it together (Web Apps, Static Web Apps, Functions, Service Bus, and friends).
- Help integrate the third-party systems our business runs on — ERP, WorkYard, SharePoint, and the rest.
What we need from you
- Deep, genuine .NET expertise. Non-negotiable. It cuts across our entire stack and it's where the most watchful eye is required.
- A bias toward simplicity and a growing sense for systems. You keep code as simple as it can be and you're hungry to understand how the whole thing fits together — the dashboard example above is exactly the instinct we want.
- Enthusiasm for AI-first development within a shared toolchain, and the discipline to make the AI produce great work.
- Strong generalist instincts and a hunger to learn. We'd take a sharp generalist over a narrow specialist every time.
- Solid Azure and SQL Server experience. On Azure, ideally including event-driven and async patterns (Service Bus, Functions); if you're light there but strong everywhere else, we'll help you ramp. On SQL, we care about people who write efficient queries and think about data access before it becomes a problem.
- Angular is a strong plus — enough hands-on experience to credibly work in and judge front-end code. A sharp generalist from any modern SPA framework who's ready to own ours counts for a lot.
- You're a teammate, not a job title. Software is how we deliver value most of the time — but once in a while (genuinely rarely) the most useful thing is translating between a field tech and our managed services provider, or standing up a server for a tool a client wants to run. We want someone who sees that as a welcome change of pace, not a violation of the job description.
Who we are
We're hardworking and lighthearted, and we don't think those are in tension. We take immense pride in our work and hold each other to a high standard — and we crack jokes, we don't do stuffy, and we'd rather enjoy the people we spend our days with. We're a small crew of kick-ass engineers using modern tools to deliver quality and speed that teams ten times our size can't match.
A straight answer on hours, because you'll want one: a normal week is a standard 40, and when it's done you go home — we're not a nights-and-weekends shop and we don't pretend otherwise. The honest exception is that we're a small team running software that real people depend on, including field crews working weekends and odd hours. So when something genuinely breaks — an outage, a critical issue, a hard deadline — we need to be able to respond, and once in a while that lands outside business hours. It's the trade-off of being a small crew that truly owns its production software, and we'd rather you know it going in than meet it for the first time during your first incident.
If that sounds like your kind of place, we'd love to talk.
Pay: $130,000.00 - $140,000.00 per year
Location:
Work Location: Remote