Job Purpose:
As a Software Engineer, the primary responsibility is to develop and enhance complex software systems that power our organization’s products and services. You will leverage your deep technical expertise and skills to architect scalable solutions, mentor team members, and drive innovation across the software development lifecycle.
Key Responsibilities
Systems Development
Architecture and Design: Architect and design software systems that align with business requirements and strategic goals. Ensure adherence to best practices in software development, security, and scalability.
Technical Leadership: Provide technical guidance and mentorship to a team of software engineers. Collaborate with cross-functional teams to design and implement robust, scalable, and secure solutions.
Development and Delivery: Code, test, and deploy high-quality software applications. Drive the adoption of modern development practices and tools to improve efficiency and maintainability.
Problem Solving: Analyze complex technical problems and propose innovative solutions. Troubleshoot issues across the stack and provide timely resolutions.
Collaboration and Communication: Collaborate effectively with product managers, stakeholders, and other team members to deliver value to our customers. Communicate technical concepts clearly and concisely to both technical and non-technical stakeholders.
Continuous Improvement: Stay current with industry trends, technologies, and best practices. Propose and implement process improvements to optimize team productivity and software quality.
Code Review and Quality Assurance: Conduct thorough code reviews to ensure code quality, maintainability, and adherence to coding standards. Implement and advocate for automated testing strategies to validate software functionality and performance.
Performance Optimization: Identify and address performance bottlenecks in applications and systems. Optimize software for speed, scalability, and efficiency.
Risk Management and Security: Proactively identify potential risks and security vulnerabilities in software systems. Implement appropriate mitigation strategies and ensure compliance with security standards and protocols.
Documentation and Knowledge Sharing: Create and maintain technical documentation, including system architecture diagrams, API documentation, and deployment procedures. Foster a culture of knowledge sharing and mentorship within the team.
Project Management and Planning: Participate in project planning, estimation, and prioritization activities. Collaborate with project managers to define project scope, goals, and deliverables.
Customer Focus: Work closely with product management and customer support teams to understand customer needs and incorporate feedback into software development cycles. Ensure delivered solutions meet customer expectations and usability requirements.
Knowledge;
Software Development Lifecycle: In-depth understanding of software development methodologies (e.g., Agile, Scrum) and best practices.
.NET Framework and .NET Core: Deep understanding of .NET Framework and .NET Core fundamentals, including CLR (Common Language Runtime), class libraries, and application frameworks.
C# Programming: Proficiency in C# programming language, including advanced features such as LINQ, async/await, generics, and delegates.
ASP.NET MVC and ASP.NET Core: Experience in developing web applications using ASP.NET MVC and ASP.NET Core frameworks, including knowledge of Razor Pages, Web API, and middleware.
Entity Framework (EF) / EF Core: Knowledge of ORM (Object-Relational Mapping) frameworks like Entity Framework and Entity Framework Core for database interaction and management.
RESTful APIs: Experience in designing and implementing RESTful APIs using .NET technologies for seamless integration with external systems and applications.
Microservices Architecture: Understanding of microservices architecture principles and patterns, and experience in building scalable and resilient microservices using .NET Core.
Azure or AWS: Working knowledge of cloud platforms such as Microsoft Azure or AWS, including services like Azure App Service, AWS Lambda, and cloud-native development practices.
Version Control and DevOps: Proficiency in Git for version control, and experience with CI/CD pipelines, Docker, Kubernetes, and other DevOps tools for automated deployment and orchestration.
Security: Knowledge of .NET security best practices, including authentication mechanisms (e.g., OAuth, JWT) and securing APIs and applications against common vulnerabilities.
Requirements
Skills:
Technical Leadership: Ability to lead a team of developers, provide technical guidance, and mentor junior engineers in .NET and .NET Core development practices.
Problem-Solving: Strong analytical and problem-solving skills to troubleshoot complex issues, propose effective solutions, and optimize application performance.
Communication: Excellent verbal and written communication skills to collaborate effectively with cross-functional teams, present technical concepts to non-technical stakeholders, and document technical designs.
Adaptability: Flexibility and willingness to learn new technologies and frameworks, and adapt to evolving project requirements and organizational priorities.
Quality Assurance: Commitment to writing clean, maintainable, and well-documented code, and experience with unit testing frameworks (e.g., NUnit, xUnit) and automated testing strategies.
Project Management: Ability to manage project timelines, prioritize tasks effectively, and deliver high-quality software solutions within deadlines.
Experience:
.NET Development: 5+ years of hands-on experience in software development with a strong focus on .NET Framework and/or .NET Core, including designing and implementing scalable applications.
ASP.NET and ASP.NET Core: Proven experience in developing web applications using ASP.NET MVC or ASP.NET Core, with a solid understanding of server-side rendering, client-side interactions, and web security.
Database Integration: Experience in integrating .NET applications with relational databases (e.g., SQL Server, MySQL) and proficiency in SQL query optimization and database design principles.
Cloud Integration: Practical experience deploying and maintaining .NET applications in cloud environments (Azure, AWS), leveraging cloud services for scalability, reliability, and performance optimization.
Agile Methodologies: Previous experience working in Agile development environments (Scrum, Kanban), participating in sprint planning, daily stand-ups, and delivering iterative software releases.
Education: A bachelor’s degree in Computer Science, Engineering, or a related field is typically required. Relevant certifications in .NET development or cloud platforms are advantageous.
Apply via :
pycs.zohorecruit.com