CDIabout 13 hours ago

Backend Engineer

Confidential Company
Nairobi (Kenya)

Job Description

window.notificationMessages = []; Find a Job + + + + Search const TopSearch = { handleSubmit: function (event) { event.preventDefault(); event.stopPropagation();

const form = event.target;

const getValue = (name) => { if (form[name]) { if (form[name].type) { if (["select-one", "text", "hidden"].indexOf(form[name].type) > -1) { return form[name].value; } if (["checkbox", "radio"].indexOf(form[name].type) > -1 && form[name].checked) { return form[name].value; } } else if (form[name].length) { return form[name].value; } }

return ""; };

const experienceLevel = getValue("experience[]") || getValue("experience"); const jobFunction = getValue("job_function[]") || getValue("job_function"); const industry = getValue("industry[]") || getValue("industry"); const location = getValue("location[]") || getValue("location"); const workType = getValue("work_type"); const term = getValue("q"); const sortBy = getValue("sort_by");

// If the logged in user is authenticated // Append authenticated value to make url unique/different to logged out url // same action is happening in SearchFilterViewComposer // line 589 in the multiSearchFilterHref function const authenticated = document.getElementById("authenticated").value; let toUrl = ""; if (industry.trim() && jobFunction.trim()) { const segments = [jobFunction, location, workType].filter((x) => x); toUrl = ${segments.join("/")}?industry=${industry}; } else { const segments = [jobFunction, industry, location, workType].filter((x) => x); toUrl = segments.join("/"); }

if (experienceLevel) { toUrl += ${toUrl.indexOf("?") === -1 ? "?" : "&"}experience=${experienceLevel}; }

if (term.trim()) { toUrl += ${toUrl.indexOf("?") === -1 ? "?" : "&"}q=${encodeURI(term.replace(" ", "+"))}; }

if (sortBy.trim()) { toUrl += ${toUrl.indexOf("?") === -1 ? "?" : "&"}sort=${sortBy}; }

if (authenticated === "true") { toUrl += ${toUrl.indexOf("?") === -1 ? "?" : "&"}authenticated=${Date.now()}; }

const wholeUrl = ${form.getAttribute("action")}/${toUrl.toLocaleLowerCase()}; window.location.assign(wholeUrl.replace(//$/, ""));

return false; }, }; Homepage Engineering & Technology IT & Telecoms Nairobi Contract Backend Engineer Backend Engineer Anonymous Employer Engineering & Technology 6 days ago Easy apply New Nairobi Contract IT & Telecoms Confidential Share link Share on

[Click the Apply button below to see the contact details]

Expert Application Advice

window.notificationMessages = []; Find a Job + + + + Search const TopSearch = { handleSubmit: function (event) { event.preventDefault(); event.stopPropagation();

const form = event.target;

const getValue = (name) => { if (form[name]) { if (form[name].type) { if (["select-one", "text", "hidden"].indexOf(form[name].type) > -1) { return form[name].value; } if (["checkbox", "radio"].indexOf(form[name].type) > -1 && form[name].checked) { return form[name].value; } } else if (form[name].length) { return form[name].value; } }

return ""; };

const experienceLevel = getValue("experience[]") || getValue("experience"); const jobFunction = getValue("job_function[]") || getValue("job_function"); const industry = getValue("industry[]") || getValue("industry"); const location = getValue("location[]") || getValue("location"); const workType = getValue("work_type"); const term = getValue("q"); const sortBy = getValue("sort_by");

// If the logged in user is authenticated // Append authenticated value to make url unique/different to logged out url // same action is happening in SearchFilterViewComposer // line 589 in the multiSearchFilterHref function const authenticated = document.getElementById("authenticated").value; let toUrl = ""; if (industry.trim() && jobFunction.trim()) { const segments = [jobFunction, location, workType].filter((x) => x); toUrl = ${segments.join("/")}?industry=${industry}; } else { const segments = [jobFunction, industry, location, workType].filter((x) => x); toUrl = segments.join("/"); }

if (experienceLevel) { toUrl += ${toUrl.indexOf("?") === -1 ? "?" : "&"}experience=${experienceLevel}; }

if (term.trim()) { toUrl += ${toUrl.indexOf("?") === -1 ? "?" : "&"}q=${encodeURI(term.replace(" ", "+"))}; }

if (sortBy.trim()) { toUrl += ${toUrl.indexOf("?") === -1 ? "?" : "&"}sort=${sortBy}; }

if (authenticated === "true") { toUrl += ${toUrl.indexOf("?") === -1 ? "?" : "&"}authenticated=${Date.now()}; }

const wholeUrl = ${form.getAttribute("action")}/${toUrl.toLocaleLowerCase()}; window.location.assign(wholeUrl.replace(//$/, ""));

return false; }, }; Homepage Engineering & Technology IT & Telecoms Nairobi Contract Backend Engineer Backend Engineer Anonymous Employer Engineering & Technology 6 days ago Easy apply New Nairobi Contract IT & Telecoms Confidential Share link Share on WhatsApp Share on LinkedIn Share on Facebook Share on Twitter Share via SMS Job summary We are looking for a Senior Backend Engineer to play a critical role in building solutions. Experience Level: Senior level Experience Length: 6 years Language Requirement: English Working Hours: Contract - 9 to 5 Applicant Location: Kenya Job descriptions & requirements 1. Role Title & Level Backend Engineer Level: Senior (6+ years of experience) 2. Engagement Summary

  • Engagement Type: Contract / Secondment
  • Squad Context: Embedded within the Visa–client joint Tech Squad; responsible for backend development, host changes, operational processes, and integration support across all initiatives
  • Expected Duration: [12 months]
  • Primary Location: [Nairobi, Kenya] — Expectation of days in the office will be confirmed by your Hiring Manager
  • Sprint Cadence: Fortnightly agile sprints
  • Reporting Line: [Reports to Technical Program Manager, TPM] 3. Role Purpose We are looking for a Senior Backend Engineer to play a critical role in building solutions. The engineer will take responsibility for backend domains or major features and drive them end-to-end from design through delivery. You will be a valued member of a collaborative team, working closely with crossfunctional stakeholders to translate business requirements into robust technical solutions. 4. Key Responsibilities
  • Design and implement backend changes required for Tokenisation, including token service enrollment flows, host system changes, and operational backend processes.
  • Develop and integrate CYBS (CyberSource) service backend components into the M-Pesa payment stack, following agreed integration architecture.
  • Implement backend support for push provisioning app enhancements, including secure token storage, provisioning state management, and notification services. Supporting Responsibilities
  • Build and maintain logging, monitoring, and alerting infrastructure for all initiative-specific backend services, ensuring operational visibility pre- and post-production launch.
  • Execute and support backend functional testing, including integration tests, regression suites, and performance benchmarking; log and remediate defects to agreed SLAs.
  • Collaborate with team on end-to-end integration design, ensuring backend services expose well-formed, documented APIs.
  • Support knowledge transfer by co-authoring technical runbooks, system design documentation, and onboarding guides for client engineering counterparts. 5. Measurable Outcomes & Deliverables First 30 Days
  • Development environment fully configured; access to relevant codebases, repositories, and sandbox environments confirmed.
  • Map all backend service dependencies across Tokenisation, Visa Direct, CYBS, and push provisioning into a shared dependency register.
  • Attend all Scrum ceremonies and contribute to sprint planning with estimated, clearly scoped backend tasks
  • Logging and monitoring baseline agreed; instrumentation plan drafted. Days 31–60
  • Tokenization host changes implemented and validated in sandbox; functional test cases passing.
  • Visa Direct backend configuration and transaction processing components built and tested in sandbox.
  • CYBS backend integration components developed; unit and integration test coverage on new code.
  • Monitoring and alerting hooks operational for at least one initiative; alert thresholds configured. Days 61–90
  • Tokenization backend changes promoted to certification environment; all functional and regression test cases passing.
  • Visa Direct backend production-ready: transaction quality checks passing, health check endpoints operational.
  • CYBS integration backend components deployed to UAT / staging environment; test script execution completed.
  • Backend architecture decision record (ADR) produced for at least one significant design choice during the engagement.
  • Technical runbook produced for all backend components delivered; client engineers onboarded to operate and maintain systems. Ongoing KPIs
  • Deliver backend features reliably in line with sprint commitments and agreed scope.
  • Maintain high code quality through strong testing practices and low defect escape.
  • Respond effectively to critical backend issues and support stable production operations.
  • Contribute to the reliability, observability, and continuous improvement of backend services.
  • Transfer knowledge to client engineers through documentation, pairing, and shared delivery practices. 6. Stakeholders & Ways of Working Agile Ceremonies: All sprint ceremonies; leads or contributes to technical refinement of backend stories; participates in daily stand-ups. Reporting Cadence:
  • Sprint-level: backend delivery status reported at sprint review.
  • Ad-hoc: technical blockers escalated to API Integration Engineer or Scrum Master within 4 hours. Cross-Functional Touchpoints:
  • API Integration Engineer (integration design, API contract alignment).
  • Frontend Engineers (backend API endpoints, data contracts).
  • Data Scientist (data pipeline backend components, PAN extraction).
  • Internal Operations and QA teams (testing, production readiness).
  • Visa technical and certification contacts for host change validation. 7. Required Skills & Experience
  • 6+  years backend engineering experience, with at least 4 years in payments, fintech, or financial services.
  • Strong proficiency in one or more: Java, Python, Go, Node.js, or equivalent enterprise-grade backend languages.
  • Deep experience with payment platform integrations, including host-side changes, transaction processing, and tokenization or push payment systems.
  • Proven ability to design and document scalable, resilient backend architectures.
  • Experience leading code reviews and mentoring junior/intermediate engineers. Both Levels:
  • Experience with RESTful API development and consumption.
  • Familiarity with database technologies (relational and/or NoSQL) and SQL querying.
  • Understanding of security best practices in payment systems (PCI-DSS awareness, secure coding).
  • Experience with logging, monitoring, and observability tooling.
  • Strong written communication; ability to produce technical documentation. 8. Preferred / Nice-to-Have Skills
  • Direct experience with M-Pesa backend systems or comparable mobile money platforms.
  • Knowledge of EMV tokenization, Visa Direct push payment flows, or CyberSource/CYBS integration.
  • Experience with event-driven or messaging architectures (Kafka, RabbitMQ, or equivalent).
  • Containerization and orchestration experience (Docker, Kubernetes, or equivalent).
Career advice powered by Taf4All

Ready to apply?

Safety Reminder

Never pay money to get an interview. Taf4All will never contact you to request application fees.

You might also be interested in

BE

Backend Engineer

beBeeSouth Africa

Backend Engineer à South Africa — Concevoir, développer et maintenir des solutions logicielles robustes et scalables.

CDI
il y a 24 jours
AP

Backend Engineer (IAC)

Apply NowSouth Africa

Backend Engineer (IAC) à South Africa — Concevoir, développer et maintenir des solutions logicielles robustes et scala

CDI
il y a environ 1 mois
NO

Backend Software Engineer

Non preciséLilongwe

Backend Software Engineer à Lilongwe, Malawi — Concevoir, développer et maintenir des solutions logicielles robustes et

Freelance
il y a environ 2 mois