Job Role:
Sr Software Engineer - .Net
We are seeking a highly proficient Senior Software Engineer with expertise in .NET Core to join our dynamic software development team. As a core developer, you will play a pivotal role in designing, implementing, and delivering high-quality software solutions. Your deep understanding of .NET Core, coupled with your ability to collaborate effectively with cross-functional teams, will be key to the success of our projects. If you are a hands-on developer with a passion for clean coding, usercentric design, and technical excellence, we encourage you to apply.
Key responsibilities:
- Utilize your strong .NET Core skills to design, develop, and deliver software solutions that align with project requirements and user stories.
- Collaborate with Product Owners to provide technical insights on user stories, ensuring that the technical aspects of the solution align with the product vision.
- Participate in user story estimation, contributing your expertise to the planning and prioritization process. Play an active role in grooming and refining user stories, assisting other developers in understanding and estimating technical requirements.
- Write clean, efficient, and maintainable code that adheres to design patterns, best practices, and coding standards.
- Embrace Test-Driven Development (TDD) principles by writing unit tests to ensure the reliability and quality of your code.
- Conduct thorough peer code reviews, providing constructive feedback to maintain code quality and facilitate knowledge sharing.
- Collaborate closely with UI/UX designers to implement user interfaces that align with design principles and deliver an exceptional user experience.
- Work closely with the Technical Lead to address complex technical challenges and contribute to architectural decisions.
- Stay current with industry trends and best practices related to .NET Core, software development methodologies, and user-centered design.
- Implement RESTful APIs, utilizing authentication and authorization mechanisms to ensure secure communication.
- Leverage microservices architecture principles for scalable and maintainable application design.
- Utilize Docker and containerization techniques for consistent deployment across different environments.
- Demonstrate strong problem-solving and debugging skills to ensure application stability and performance.
- Manage project dependencies using tools like NuGet for streamlined development workflows.
- Contribute to the overall code quality through version control using Git and effective code reviews.
- Apply Agile methodologies, such as Scrum or Kanban, for efficient collaboration within the development team.
- Communicate effectively with team members, stakeholders, and clients to drive successful project outcomes.
Mandatory Skills:
- Bachelor's degree in Computer Science, Software Engineering, or a related field.
- Minimum of 8-10 years of hands-on experience in software development, with a strong focus on .NET Core.
- Proficiency in understanding user stories, translating them into technical requirements, and delivering solutions that meet end-user needs.
- Demonstrated ability to collaborate effectively with cross-functional teams, including Product Owners, Designers, and Testers.
- Deep understanding of design patterns, clean coding principles, and the ability to write maintainable and scalable code.
- Experience with Test-Driven Development (TDD) and writing unit tests for code coverage.
- Strong problem-solving skills and the ability to troubleshoot and debug complex technical issues.
- Familiarity with UI/UX design principles and the ability to collaborate closely with designers.
Preferred Skills:
- Previous experience in a senior or lead developer role.
- Familiarity with Agile/Scrum methodologies and participation in Agile ceremonies.
- Exposure to other programming languages and frameworks outside the .NET ecosystem.
- Experience with front-end technologies such as HTML, CSS, and JavaScript frameworks.
- Strong written and verbal communication skills to effectively collaborate with team members and stakeholders