Job description
What this role is about
This position is responsible for designing, developing, and maintaining enterprise software applications across the full technology stack. The Sr. Software Developer works within a small, high-impact technology team to build and evolve the internal platforms that power construction operations, project management, logistics, financial reporting, and AI-driven decision support systems. This role requires strong expertise in .NET backend development and modern JavaScript/TypeScript frontends, with a growing emphasis on integrating AI and large language model capabilities into business applications. Essential duties and other responsibilities include, but are not limited to, the following: Design, develop, and maintain backend APIs and services using .NET 9 and ASP.NET Core, following Clean Architecture and CQRS patterns with MediatR. Build modern, responsive frontends with Next.js, React, TypeScript, and Tailwind CSS using component libraries such as shadcn/ui and AG Grid Enterprise. Integrate AI and large language model capabilities into internal tools using Anthropic Claude, OpenAI, and emerging agent frameworks such as Microsoft Agent Framework. Develop and optimize SQL Server databases, writing performant queries, managing Entity Framework Core migrations, and leveraging Dapper for high-throughput data access. Modernize legacy systems by migrating older .NET and Angular codebases to current frameworks and architectures. Build and maintain CI/CD pipelines with GitHub Actions, deploying applications to Windows Server/IIS and Azure cloud infrastructure. Implement and maintain background processing systems using Hangfire for scheduled jobs, queue processing, data synchronization, and automated notifications. Design and build reporting solutions using QuestPDF and ClosedXML, replacing legacy Crystal Reports and SSRS-based workflows. Integrate with external systems including Viewpoint Vista ERP, Microsoft Graph API, and Azure Active Directory (Entra ID). Collaborate with a small technology team to scope, architect, and deliver features end-to-end, from database schema through API design to user interface. Participate in code reviews, architectural discussions, and continuous improvement of development practices and tooling. Support and troubleshoot production applications, diagnose performance issues, and implement monitoring and logging solutions using NLog, Serilog, and related tools.