The Senior Software Engineer is responsible for designing, developing, testing, deploying, and supporting production-grade software products and shared platform capabilities within DNV’s Digital & Transformation organization. This role sits within the Application Engineering section and contributes to the development and modernization of scalable web applications that support digital delivery across Energy Systems.
This role helps to advance how DNV performs Due Diligence, Verification & Assurance, and Renewables Certification work across Energy Systems.
This is not a project-based delivery or staff-augmentation role. Engineers are expected to develop deep product knowledge and remain accountable for the quality, maintainability, and operation of the software they build.
Working in close partnership with Frontend Engineers, Product leadership, Data & AI Engineering, Solution Engineering, Platform Reliability, Solution Architecture, and Platform Security & Compliance, this role helps bring application capabilities, data services, AI-enabled features, workflows, and APIs into one cohesive platform and product experience.
The Senior Software Engineer designs, builds, tests, deploys, and supports scalable software across a modern Microsoft-oriented full-stack environment. The primary stack includes C# and .NET 10, Entity Framework Core, SignalR, MySQL, Redis, TypeScript, React, Redux, Tailwind CSS, Docker, .NET Aspire, Azure Functions, Azure Storage, Azure AI Search, and Azure DevOps. The role requires strong engineering fundamentals, practical cloud experience, and the ability to collaborate effectively across globally distributed teams.
This role supports custom software development, application modernization, and integration with low-code or hybrid development environments, helping establish shared patterns, APIs, reusable components, and maintainable application architecture across the platform.
**This role is based at our DNV office in Chennai, India. Further details regarding role-specific requirements will be shared during the interview process.**
Key Responsibilities
Software Engineering & Delivery
- Design, develop, test, and maintain scalable application and platform capabilities using modern software engineering practices.
- Build cohesive product experiences across backend services, APIs and platform integrations.
- Work directly with Product and Architecture stakeholders to shape requirements, evaluate technical approaches, and translate product direction into maintainable, production-ready software.
- Participate actively in code reviews, technical design discussions, estimation, delivery planning, and implementation decisions.
- Write clean, well-structured, testable, and maintainable code that supports long-term product quality and team velocity.
- Own product capabilities through design, implementation, deployment, monitoring, maintenance, and iterative improvement rather than treating delivery as complete when the initial feature is released.
.NET Application Development
- Develop modern API capabilities using C#, .NET 10, Entity Framework Core, SignalR, and related technologies.
- Develop solutions for Azure and contribute to their deployment and support.
- Support application modernization efforts, including refactoring, technical debt reduction, framework upgrades, and migration from legacy patterns where appropriate.
- Develop application capabilities used for structured review workflows, real-time collaboration, issue tracking, customer interaction, reporting, and delivery of technical work products.
- Partner with Product and design stakeholders to ensure application functionality is intuitive, reliable, and aligned with user workflows.
- Develop APIs, backend services, frontend components, and integration patterns that support platform interoperability.
- Help integrate applications with data services, AI-enabled capabilities, workflow configurations, authentication patterns, and enterprise systems.
- Contribute to reusable development patterns, documentation, and engineering practices that improve team velocity and consistency.
- Integrate data-driven, search, agentic, and AI-enabled capabilities into production web applications using well-defined APIs and reusable application patterns.
Modern Development & AI-Enabled Engineering
- Use AI-assisted development tools to accelerate coding, testing, debugging, documentation, refactoring, and engineering analysis.
- Apply strong engineering judgment when using LLM-enabled workflows, ensuring generated or assisted code meets standards for quality, security, maintainability, and performance.
- Use AI-enabled tools where appropriate to support test generation, code review preparation, technical documentation, and developer productivity.
DevOps, Reliability & Security
- Contribute to Azure DevOps repositories and pipelines, automated testing, deployment automation, environment management, monitoring, and incident readiness.
- Build software using an Agile methodology, with strong attention to reliability, performance, availability, scalability, and operational support.
- Support observability practices including logging, monitoring, error handling, and production diagnostics.
- Follow secure development practices aligned with internal security standards, SOC 2 Type II, ISO 27001, and enterprise security expectations.
- Collaborate with Platform Reliability, Security, and Global Shared Services teams to support secure, reliable, and maintainable production systems.
Collaboration & Technical Ownership
- Work effectively with Product, Solution Engineering, Data & AI Engineering, Platform Reliability, Architecture, Security, and regional teams in a globally distributed environment.
- Take ownership of assigned features, services, defects, and technical improvements from design through production support.
- Communicate technical trade-offs clearly and contribute to pragmatic engineering decisions.
- Mentor less experienced engineers through code reviews, technical guidance, pairing, and shared engineering practices.
- Contribute to a culture of accountability, collaboration, continuous improvement, and delivery excellence.
- Contribute actively within planning and design meetings, speaking up where potential issues arise or where a requirement is poorly defined.
- Champion potential solutions to problems and communicate them clearly to the team.