eHealth Africa designs and implements data-driven solutions and technologies to improve health systems for and with local communities. eHA’s technology works in low connectivity settings and uses data to drive decision-making by local governments and partner agencies to get optimum results.
We are recruiting to fill the position below:
Job Title: Senior Software Engineer
Department: Software Engineering
Employment Type: Full Time National Employee
Purpose of the Position
The Senior Software Engineer is responsible for developing and supporting projects, functions and completing specific client work, projects, and miscellaneous tasks.
This highly responsible position involves using established work procedures to analyze, design, develop, implement, maintain, re-engineer and troubleshoot applications.
What You’ll Do:
Directs technical aspects of operations related to client accounts or high severity issues
Participates in the evolution of company-level software best practices, standards, and policies
Defines objectives by analyzing user requirements; envisioning system features and functionality
Works closely with developers and end users to ensure technical compatibility and user satisfaction
Collaborates with product owners, technical architects and other software developers to plan, design, develop, test, and maintain web- and mobile-based applications
Provides thought-leadership as to emerging technologies and integrate them into business operations
Assists in the estimation and assessment of feasibility of solutions for upcoming projects
Carries out supervisory responsibilities in accordance with the organization's policies and applicable laws.
Responsibilities include interviewing, hiring and training employees; planning, assigning, and directing work; appraising performance; rewarding and disciplining employees; addressing complaints and resolving problems.
Supervises assigned Project Management staff.
Who You Are:
Bachelor's Degree from college or university in Computer Science, Computer Engineering, Information Systems Technology or a related field. A postgraduate degree is desirable.
Minimum of 5 years of experience in Software Development or an equivalent of education and experience.
Well familiar with the whole software development life cycle (e.g. requirements, analysis, design, implementation, testing, and documentation) and execution models (e.g. Waterfall, Agile, etc.).
Strong understanding of Python and desirably Django.
Thorough understanding of RESTful API design, usage and best practices.
Good understanding of asynchronous request handling, partial page updates, and AJAX.
Good understanding of databases and SQL. Exposure to NoSQL Databases ideal.
Familiarity with front-end build tools, such as Grunt and Gulp.js.
Understanding of accessibility and security compliance.
Knowledge of user authentication and authorization between multiple systems and environments.
Understanding of fundamental design principles behind a scalable application.
Understanding of the differences between multiple delivery platforms, such as mobile vs desktop, and optimizing output to match the specific platform.
Strong unit test and debugging skills as well as proficient understanding of code versioning tools (Git).
Experience in creation and review of software and architecture designs.