Senior Software Engineer

Job Purpose

As a Senior Software Engineer, the primary responsibility is to lead the development and enhancement of complex software systems that power our organization’s products and services. You will leverage your deep technical expertise and leadership skills to architect scalable solutions, mentor team members, and drive innovation across the software development lifecycle.

Key Responsibilities
Systems Development:

Architect and design software systems that align with business requirements and strategic goals. Ensure adherence to best practices in software development, security, and scalability.
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.
Lead by example in coding, testing, and deploying high-quality software applications. Drive the adoption of modern development practices and tools to improve efficiency and maintainability.
Analyze complex technical problems and propose innovative solutions. Troubleshoot issues across the stack and provide timely resolutions.
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.
Stay current with industry trends, technologies, and best practices. Propose and implement process improvements to optimize team productivity and software quality.
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.
Identify and address performance bottlenecks in applications and systems. Optimize software for speed, scalability, and efficiency.
Proactively identify potential risks and security vulnerabilities in software systems. Implement appropriate mitigation strategies and ensure compliance with security standards and protocols.
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.
Participate in project planning, estimation, and prioritization activities. Collaborate with project managers to define project scope, goals, and deliverables.
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:

In-depth understanding of software development methodologies (e.g., Agile, Scrum) and best practices.
Deep understanding of .NET Framework and .NET Core fundamentals, including CLR (Common Language Runtime), class libraries, and application frameworks.
Proficiency in C# programming language, including advanced features such as LINQ, async/await, generics, and delegates.
Experience in developing web applications using ASP.NET MVC and ASP.NET Core frameworks, including knowledge of Razor Pages, Web API, and middleware.
Knowledge of ORM (Object-Relational Mapping) frameworks like Entity Framework and Entity Framework Core for database interaction and management.
Experience in designing and implementing RESTful APIs using .NET technologies for seamless integration with external systems and applications.
Understanding of microservices architecture principles and patterns, and experience in building scalable and resilient microservices using .NET Core.
Working knowledge of cloud platforms such as Microsoft Azure or AWS, including services like Azure App Service, AWS Lambda, and cloud-native development practices.
Proficiency in Git for version control, and experience with CI/CD pipelines, Docker, Kubernetes, and other DevOps tools for automated deployment and orchestration.
Knowledge of .NET security best practices, including authentication mechanisms (e.g., OAuth, JWT) and securing APIs and applications against common vulnerabilities.

Skills:

Ability to lead a team of developers, provide technical guidance, and mentor junior engineers in .NET and .NET Core development practices.
Strong analytical and problem-solving skills to troubleshoot complex issues, propose effective solutions, and optimize application performance.
Excellent verbal and written communication skills to collaborate effectively with cross-functional teams, present technical concepts to non-technical stakeholders, and document technical designs.
Flexibility and willingness to learn new technologies and frameworks, and adapt to evolving project requirements and organizational priorities.
Commitment to writing clean, maintainable, and well-documented code, and experience with unit testing frameworks (e.g., NUnit, xUnit) and automated testing strategies.
Ability to manage project timelines, prioritize tasks effectively, and deliver high-quality software solutions within deadlines.

Experience:

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.
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.
Experience in the financial services sector or payments preferred.
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.
Experience in integrating .NET applications with relational databases (e.g., SQL Server, MySQL) and proficiency in SQL query optimization and database design principles.
Practical experience deploying and maintaining .NET applications in cloud environments (Azure, AWS), leveraging cloud services for scalability, reliability, and performance optimization.
Previous experience working in Agile development environments (Scrum, Kanban), participating in sprint planning, daily stand-ups, and delivering iterative software releases.

Apply via :

pycs.zohorecruit.com