Senior Software Engineer
Role details
Job location
Tech stack
Job description
As a Senior Software Engineer, you will be responsible for the design, building, delivery, and support of high-quality software applications that support DASI's business areas. You will adopt, define, or enforce design patterns, coding standards, and best practices to design scalable, secure, and maintainable systems. Your responsibilities include reviewing code for correctness, performance, and adherence to standards, sharing with the team on frameworks, tools, vibe coding tools, generative AI solutions, new emerging technologies and collaborating on the estimation of timelines and resources., * Design, build, and operate enterprise-grade applications and API services, handling high request volumes with low latency, high reliability, and predictable cost while meeting business requirements.
- Write production-quality software with strong unit and integration tests that meets agreed code-coverage targets.
- Perform code reviews to maintain quality, enforce standards, and ensure solutions meet functional and non-functional requirements.
- Collaborate with the team to deliver reusable, maintainable components, following coding standards and engineering best practices.
- Build or contribute to end-to-end technical design for new features (including data models) and document key architectural decisions.
- Troubleshoot and resolve technical issues, ensuring application performance, reliability, and security.
- Partner with cross-functional teams to deliver end-to-end solutions, from the UI through back-end services and integrations.
- Produce clear technical documentation and contribute to deployment, monitoring, and ongoing maintenance.
- Support production operations by partnering with System Support to diagnose issues, resolve incidents, and improve reliability across integrated systems.
- Stay current with software engineering and AI best practices, and drive continuous improvement through thoughtful innovation., * 50% Development
- 20% SQL Server (TSQL)
- 20% Production support and issue resolution
- 5% Architecture, design reviews, and code reviews
- 5% Continuous learning, tooling, and process improvement
Requirements
- Strong understanding of software engineering fundamentals, including OOP, SOLID principles, and architectural patterns (e.g., CQRS, worker queues, clean architecture, vertical slices, and modular monoliths).
- Demonstrated experience in C#, .NET, JavaScript/TypeScript, and T-SQL for back-end development.
- Experience with Microsoft SQL Server, including schema design and optimization; stored procedures and functions; indexing and performance tuning; and writing efficient T-SQL (DML and DDL).
- Knowledge building and maintaining Salesforce applications using Apex (classes, triggers), Lightning Web Components, Flow, and Experience Cloud and Salesforce governor limits, Apex unit testing (75%+ coverage), Platform Events/Change Data Capture, and Named Credentials for OAuth-based integrations.
- Experience building and maintaining ASP.NET Core minimal APIs and/or controllers, and Blazor applications, using dependency injection and async/await.
- Hands-on experience writing production-quality C# (.NET 9/10) with strong unit, integration, and end-to-end test coverage.
- Experience designing and consuming RESTful APIs and SOAP web services using JSON and XML.
- Experience with modern JavaScript frameworks and runtimes (e.g., React, Next.js, Node.js) and integrating them with back-end APIs.
- Experience with ORMs such as Entity Framework Core and/or Dapper.
- Knowledge of OAuth 2.0 and OpenID Connect, including common grant types with Microsoft Entra ID and Salesforce.
- Familiarity with service observability: structured logging, metrics, and distributed tracing (Open Telemetry); dashboards in Application Insights/Grafana; and actionable alerts.
- Familiarity with Azure DevOps, CI/CD, pull requests, and automated quality gates (e.g., code coverage and static analysis).
- Proficiency with Git workflows (branching, merging, and pull requests).
- Strong problem-solving skills, with the ability to assess trade-offs and deliver practical, high-quality solutions.
- Excellent communication skills, both verbal and written, with the ability to collaborate effectively with cross-functional teams.
- Experience working in an Agile development environment, following Scrum or Kanban methodologies.
- Familiarity with message brokers and event-driven patterns with Azure Service Bus, Event Grid, Queue Storage, or RabbitMQ.
- Ability to apply prompt engineering and basic generative AI patterns where they create real business value, and to recognize when they do not.
Optional Skills:
- Experience with AI coding assistants (e.g., GitHub Copilot, Claude, Codex).
- Familiarity with platform observability and edge configuration, including Grafana dashboards and alerts, Argo CD, and managing TLS certificates and DNS via Cloudflare.
- Familiarity with Infrastructure as Code (Bicep or Terraform), with secrets and identity managed through Azure Key Vault and Managed Identities (no connection strings in app settings)., * Bachelor's degree in computer science, Engineering, or a related field.
- 6+ years of software engineering experience delivering enterprise applications.
- 5+ years of experience with SQL, database design, and ORMs.
- 4+ years of experience with modern front-end frameworks (React, Next.js, or Blazor) integrated with back-end APIs.
- Proven ability to troubleshoot complex issues in distributed systems.
- Strong sense of ownership and accountability, with a focus on delivering high-quality code.
- Demonstrated experience in developing enterprise applications using modern technologies.
- Strong understanding of software engineering principles, design patterns, and best practices.
- Experience with cloud platforms such as Azure is a plus.
- Preferred certifications (not required): Azure Developer Associate, Azure Solutions Architect, AI Engineer Associate, or Salesforce Platform Developer.