Job Description
Job Title: Senior Software Engineer
Department: Software Engineering
Reports To: HoD – Engineering
Direct Reports:0
Location: Nairobi, Kenya
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.
Requirements
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.
How To Apply
