Do you want to help citizens better understand their environment using air sensors, drones and other remote sensing technologies?
Code for Africa (CfA) has an immediate vacancy for a Senior IoT Software Engineer to join our sensors.AFRICA team to help build digital tools that transform how African cities work.
The successful candidate will help drive pioneering projects, using the Internet of Things (IoT), including Africa’s largest network of low-cost ‘citizen science’ sensors.
This includes improving sensors.AFRICA’s existing network of low-cost ‘citizen sensors’ that monitor air quality in five countries, as well as cutting-edge experimental water sensors that detect cholera and other contaminants, and novel hydrophone sensors to detect illegal dynamite fishing and coral bleaching in East Africa’s oceans. You will also help develop tools to analyse the imagery and data captured by drones/satellites to map settlements and better understand how to combat climate change.
CfA is a non-profit technology R&D lab. While robust software engineering skills are required, no prior air/water/climate monitoring or urban development experience is required.
We will be reviewing applications on a rolling basis so we encourage candidates to apply as soon as possible for consideration.
The successful candidate will report to CfA’s sensors.AFRICA manager, and will also work with CfA’s wider technology, data, design and content teams in 21 African countries to build robust systems and infrastructures for our partners in watchdog civil society organisations, the investigative media and selected progressive government agencies.
Your daily responsibilities will include:
- Work as part of the technology team in shaping the software and front-end web-tools architecture and development processes, working within coherent roadmaps, ensuring quality control and helping to proactively problem-solve.
- Develop and review firmware written in C, C++ and Python.
- Review PCB and mechanical designs.
- Requirements and design specification creation.
- Improve and optimise the ongoing performance, scalability, and reliability of our software systems (and documentation) given the growing size of our sensor networks.
- Shape our strategies for standardised sampling and measuring standards, equipment protocols, and data management systems.
- Oversee consistent and proactive calibration and maintenance for all deployed monitoring equipment, including innovative ways to support volunteer (non-technical) custodians of the equipment at schools, environmental organisations, etc.
- Participate in stakeholder consultations or internal strategic discussions, to help non-technical partners understand what is possible and how best to use the technologies to achieve actionable insights.
Minimum requirements include:
- 5+ years of industry experience in Software Engineering and embedded software development.
- BSc/BEng Computer Science, Computer Engineering or equivalent practical experience.
- Experience reading and interpreting data sheets and electrical schematics.
- Strong debugging and analytical skills.
- Demonstrated experience in revision control using Git and git workflows.
- Experience leading technical projects. Experience in leading IoT projects will be a plus.
- Experience in embedded real-time software engineering, e.g. FreeRTOS
- Experience designing reusable libraries and SDKs.
- Experience with the full lifecycle of an IoT device.
- Ability to develop firmware in C++, C, and Python programming languages.
- Working knowledge of modern software development practices and technologies such as Agile methodologies and DevOps.
- Experience working with and managing columnar and time-series databases for real-time data and analytics.
- Experience working with metrics and monitoring tools such as Grafana.
- Self starter with the ability to work effectively in teams across internal and external organisations and virtual teams
Language and Location Requirements:
- Location: CfA’s main sensors.AFRICA lab is located in Nairobi (Kenya), but CfA also has additional labs in Abuja (Nigeria), Cape Town or Johannesburg (South Africa), Dar es Salaam (Tanzania), and Lagos (Nigeria). The role can be performed remotely, and CfA will therefore consider exceptional applicants from across Africa.
- Primary language: English
Preferred but not required: French, Amharic or Arabic