Description

About the job

The purpose of this role is to provide technical guidance and suggest improvements in development processes. Develop required software features, achieving timely delivery in compliance with the performance and quality standards of the company.

Job Responsibilities:

  • Design and oversee the architecture of .NET applications, ensuring scalability, reliability, and maintainability.
  • Contributing to all phases of the software development lifecycle, following agile development methodologies helping to ensure solutions are aligned to business strategy
  • Provide expert guidance to development teams, promoting best practices and design patterns in .NET development.
  • Supporting and maintaining existing applications, as well as actively contributing to new functionality and enhancements
  • Work closely with stakeholders, including product managers and UX/UI designers, to define project requirements and objectives.
  • Participate in coding activities, contributing to critical parts of the application and ensuring code quality.
  • Suggesting and integrating new technologies and continuously improving skills
    Contributing to the definition and implementation of the applications development standards, tools, approach and methodology 
  • Analyze and optimize application performance, identifying bottlenecks and implementing solutions.
  • Create and maintain comprehensive architectural documentation and design specifications.
  • Ensuring that assigned application development deliverables achieve the agreed coding standards, application architectural design and quality levels 
  • Ensuring both frontend and backend code has good test coverage with an appropriate level of unit tests, integration tests and end to end tests
  • Mentor and train junior developers, fostering a culture of continuous learning and improvement.

 

Job Requirements:

Must Have:

  • 10+ years of software development experience, with at least 3 years in an architectural role focused on .NET technologies.
  • Knowledge of containerization technologies (e.g., Docker, Kubernetes).
  • Experience of unit testing, mocking and automated testing with CI and CD pipelines
  • Experience of developing client / server applications that integrate with enterprise systems, considering localization, accessibility, performance, scalability, componentization and security
  • Proficiency in .NET Framework, .NET Core, and C#.
  • Extensive experience with ASP.NET web applications and ASP.NET Web API
  • Demonstrate understanding of SOLID principles.
  • Demonstrate understanding of TDD or BDD.
  • Experience of Inversion of Control and Dependency Injection frameworks
  • Strong understanding of database systems (SQL Server, NoSQL) and ORM frameworks (Entity Framework).
  • Excellent knowledge of ORM frameworks specifically Entity Framework
  • Experience of IIS setup and configuration
  • Experience of using Git
  • Strong understanding of object-oriented programming concepts and methods
  • Knowledge of messaging middleware (Azure Service Bus, MSMQ, etc.)
  • Experience with front-end technologies (e.g., Angular, React, or Vue.js).
  • Use of tools such as JIRA, Git, GitHub.
  • Good Communication skills.
  • Ability to participate in team discussions.
  • Positive attitude, willingness to learn and self-motivated.

Good to have:

  • Experience in Azure cloud
  • Experience of Docker
  • Experience in working with spatial data (GIS)
  • Experience with Serverless.
  • Exposure to Azure Cosmos DB, Big Data and No-SQL technologies
  • Exposure to 3rd Party SSO platforms such as Okta
  • Experience of working with “infrastructure as code” tooling e.g. Terraform

Education

Any Graduate