mSurvey is an exciting, young, disruptive tech company led by a visionary leadership team with decades of combined international and diverse experience in mobile telecommunications and technology. Launched in 2012, we are revolutionizing how businesses interact with their customers by providing them with unprecedented access to real-time, direct feedback at their fingertips.   Built out of a passion to simplify access to high-quality data, mSurvey brings hidden and offline voices into the global conversation. mSurvey is headquartered in Nairobi, Kenya with an office in San Francisco (USA). We power conversations across Africa, Asia. Latin America and the Caribbean.

mSurvey has experienced rapid and consistent growth since its inception. At mSurvey, we highly value our people and invest in their growth and development. We are building a world class dream team to fuel our exciting global journey of growth and innovation and are seeking to hire the positions listed below.  If you meet the criteria outlined and are eager to join the mSurvey dream team on their Africa adventure please send your resume to talent@msurvey.co.ke


Senior site reliability engineer

This role reports to the Director of Engineering and is an integral part of our aggressive strategy for evolving mSurvey’s current computing infrastructure. As a Senior Site Reliability Engineer, you will solve problems of global scale distributed systems that must evolve with a focus on scale, efficiency, reliability and availability using your creative abilities and experience with robust systems design.

Key Responsibilities:

  • Component and framework designs supporting the virtualization and orchestration of mSurvey computing infrastructure, from conception and design through testing, deployment and operation

  • Working on projects that make our network more efficient while sustaining service and component stability, performance and security

  • Working with our development and system QA teams to develop regression tests and operational monitoring covering new software changes

  • Troubleshooting, investigating, and remediate service outages and issues. Act as a mentor and escalation point for junior members of the team

  • Leading incident response teams as necessary to mitigate and deal with adverse events affecting our infrastructure

  • Work closely with relevant teams to support application deployments, migration designs and critical network rollouts

  • Understanding, engineering, and maintaining the design dependencies and integrity within client environments and service level expectations

  • Performance, capacity management, licensing, patching and working to maintain these within defined standards for specific clients/assets for applications installed with client environments

  • Administer all production, development, test, and training server environments as well as backup and disaster recovery systems

  • Work with IT and Security to ensure all servers and endpoints comply with relevant guidelines and regulations

  • Creating the appropriate documentation for our systems, including architecture and network diagrams and support procedures

  • Define and prioritize service automation work in line with the wider infrastructure and corporate strategy

  • Architect and design solutions that will live within Microsoft Azure, Amazon Web Services, and Google Cloud Platform

Role Requirements:

  • Bachelors degree in Software Engineering or related field

  • 7+ years of experience developing on Linux

  • Linux host system hypervisors including KVM

  • Unix Guru: understanding of Unix/Linux from kernel to shell, file systems, client-server protocols, etc.

  • Experience with configuration management / infrastructure as code tools like Ansible, Chef and Puppet

  • Linux kernel development and/or performance tuning

  • Strong SQL experience

  • Data center utilization monitoring and COGs modeling

  • Designing, implementing and deploying continuous build/deployment frameworks

  • Site reliability engineering and/or work related including service performance

  • Experience building scalable servers or distributed systems.

  • Highly responsible, self-disciplined, self-managed, self-motivated, able to work with little or no supervision.

  • Extensive experience working on multiple projects at a time in a fast paced, results oriented environment.

  • Excellent written and verbal communications skills

  • Experience in big data stack, e.g. Hadoop, Hive, Spark, Kafka, etc.

  • Experience using deploying and utilizing one or more: AWS, Azure, Google Cloud Platform, OpenStack

  • Experience implementing, designing, deploying: Docker, Kubernetes, Serverless (Lambda’s)

  • Experience with monitoring alerting using technologies like: Prometheus, Sensu, Nagios, Kafka, Wavefront, BigPanda, DataDog, PagerDuty

Senior platform engineer

This role is responsible for building outstanding software solutions to drive the success of local businesses. As a Senior Platform Engineer, you will build various aspects of mSurvey infrastructure to power innumerable conversations at scale

Key Responsibilities:

  • Maintain mSurvey platform uptime, performance, stability and scalability

  • Design, guide, mentor and challenge system architecture and design with others

  • Develop and maintain a world class public API

  • Develop best possible, most robust, and extensible solutions from feature requests

  • Work with big data technology (Kafka, Hadoop, Spark, etc)

  • Work with Data Scientists to develop rich value added features

  • Work with DBA to create ETL and Data Warehouse system

  • Work with Operations to automate solutions and increase service reliability

  • Closely monitor all platform related production systems

  • Periodically perform On-Call duty

  • Analyze requirements thoroughly; Advise and develop solutions that solves the true customers' pain

  • Perform testing and unit testing for delivering quality work

  • Acquire technical skills and knowledge continuously and aggressively, and help team to develop the same

  • Properly document development work completed

Role Requirements:

  • Bachelors degree in Software Engineering or related field

  • At least 10 years experience with Java server-side programming

  • Strong foundation in algorithms, data structures and distributed systems

  • Strong understanding of big data stack, e.g. Hadoop, Kafka, Spark, etc

  • Expert knowledge of JAVA, JVM Runtime, JVM GC, and JVM performance tuning

  • Excellent knowledge of Database, Linux, Networking and HTTP protocols

  • Strong and efficient Linux systems programming experience

  • Open Source project contributions are a plus

  • Have a strong desire to achieve mastery level as a platform engineer

  • Love building things and shipping them, truly making them work in the best way possible

Please send your resume to talent@msurvey.co.ke