Software Engineer (.NET)
About this role
We are looking for a hands-on Software Engineer to join our Product Engineering team. You will play a key role in designing, building, and modernising mission-critical applications that support our global card personalization and digital issuance platforms.
As part of our cloud transformation journey, you will work on evolving legacy systems into modern cloud-native services while contributing to the development of scalable, secure, and resilient infrastructure components. You will collaborate closely with architects, product managers, QA engineers, and DevOps teams to deliver high-quality software solutions across a global environment.
This is an excellent opportunity for an engineer who enjoys solving complex technical challenges, building distributed systems, and working with modern software engineering practices.
Key Responsibilities
Software Design & Development
- Design, develop, test, and maintain enterprise-grade applications using C#, .NET Core, and related technologies.
- Build scalable RESTful APIs, backend services, and microservices-based solutions.
- Develop and enhance frontend applications using React, TypeScript, HTML, and CSS.
- Participate in system design discussions and technical reviews to ensure maintainability, security, and performance.
Cloud & Platform Engineering
- Support the migration of existing applications and services to cloud-native architecture.
- Build and maintain containerized applications using Docker.
- Collaborate with DevOps teams to improve CI/CD pipelines, deployment processes, and operational efficiency.
- Contribute to system reliability, observability, and operational excellence initiatives.
Quality Engineering
- Own software quality throughout the development lifecycle.
- Develop unit tests, integration tests, and automated validation processes.
- Perform code reviews and champion engineering best practices.
- Troubleshoot and resolve production issues while ensuring long-term system stability.
Documentation & Collaboration
- Produce technical design documents, API specifications, and operational guides.
- Work closely with cross-functional stakeholders to understand requirements and ensure successful delivery.
- Participate in Agile ceremonies including sprint planning, backlog refinement, and retrospectives.
- Mentor junior engineers and contribute to team knowledge sharing.
Requirements
Technical Skills
- Minimum 5 years of hands-on software development experience.
- Strong proficiency in C# and .NET Core/.NET 6+.
- Solid experience with Entity Framework and SQL databases.
- Experience designing and developing REST APIs and backend services.
- Strong understanding of software engineering principles, design patterns, and clean coding practices.
- Experience building and deploying microservices-based applications.
- Hands-on experience with React and TypeScript.
- Experience with CI/CD pipelines using GitLab CI, Jenkins, Azure DevOps, or similar platforms.
- Experience with Docker containerization.
- Familiarity with source control tools such as Git.
Preferred:
- Experience with cloud platforms such as Azure, AWS, or GCP.
- Experience with Kubernetes or container orchestration platforms.
- Knowledge of event-driven architecture and messaging technologies.
- Experience working with distributed systems and high-volume transaction applications.
- Understanding of security best practices for cloud and web applications.
- Experience with observability tools, monitoring, and performance tuning.