About the role
We need an engineer who understands the business value behind every feature, collaborates closely with product and stakeholders, and takes end-to-end ownership of outcomes.
The core responsibilities for the job include the following:
Legacy Platform Support:
- Maintain and enhance existing ASP. NET/C# and SQL Server codebases.
- Research, troubleshoot, and debug stored procedures and T-SQL.
- Analyze, design, and develop automated tests to ensure continued functionality during maintenance and enhancements.
- Create and maintain technical documentation to support future upgrades and system maintenance.
Modernization and Microservices:
- Collaborate on domain decomposition, domain modeling, and Domain-Driven Design (DDD) for new services.
- Design, develop, and deploy microservices using C#/. NET on Azure.
- Build RESTful APIs and event-driven architectures.
- Work with Azure PaaS services, including Azure App Service, Azure Service Bus, and Azure SQL Database.
- Support domain-based database architectures and ensure data consistency across services.
- Enable interoperability between legacy platforms and newly developed microservices during modernization.
Quality and Test-Driven Development:
- Champion Test-Driven Development (TDD) practices across the engineering lifecycle.
- Develop automated unit, integration, and regression tests.
- Build and maintain test-automation suites.
- Leverage AI-assisted development tools for code generation, test case generation, and technical documentation.
- Participate in code reviews, static code analysis, and refactoring activities to improve code quality.
Product Mindset and Collaboration:
- Partner closely with product managers, product owners, and business stakeholders to understand business requirements and objectives.
- Evaluate alternative technical approaches and balance engineering and product trade-offs.
- Understand the broader business purpose behind features rather than focusing only on assigned tasks.
- Collaborate with QA, Infrastructure, Design, and Operations teams to deliver reliable solutions.
Ownership and Accountability:
- Take end-to-end ownership of features from design and development through deployment and delivery.
- Support and enhance existing systems and platforms.
- Monitor production issues, communicate progress, and proactively identify and resolve risks.
- Ensure engineering work ultimately delivers measurable customer value.
Continuous Improvement:
- Recommend and implement improvements across engineering processes, architecture, and application performance.
- Stay current with best practices in microservices, cloud engineering, DevOps, and AI-assisted software development.
- Mentor team members on TDD, DDD, and software craftsmanship.
Requirements:
- 7+ years of professional software engineering experience.
- Strong preference for candidates from a software product company developing products for B2B or B2C customers.
- Candidates from services/consulting organizations should have strong product engineering experience, preferably in healthcare payments or similar domains.
- Strong hands-on experience with C#, . NET, and ASP. NET.
- Strong database programming experience with SQL Server, T-SQL, and stored procedures.
- Experience with PL/SQL is required.
- Strong hands-on experience with Test-Driven Development (TDD).
- Proven experience developing unit, integration, and regression tests and working with test-automation frameworks.
- Strong understanding of microservices architecture and event-driven architecture.
- Experience designing and developing RESTful APIs.
- Hands-on experience with Azure/cloud platforms, preferably Azure PaaS services.
- Experience with Azure App Service, Azure Service Bus, and Azure SQL Database is preferred.
- Strong understanding of Domain-Driven Design (DDD) and domain modeling.
- Experience with modern DevOps practices, including CI/CD pipelines, containerization, and Infrastructure as Code (IaC).
- Experience working with legacy modernization/migration from monolithic applications to microservices.