{"id":3066082,"url":"https://alion.io/job/the-tonic-technologies-limited-ttt-senior-backend-engineer-node-js","title":"Senior Backend Engineer (Node.js)","company":{"id":4457899,"name":"The Tonic Technologies Limited (TTT)","domain":null,"url":"https://alion.io/company/the-tonic-technologies-limited-ttt","size_band":null,"is_staffing_agency":false,"employer_type":"direct","is_intermediary":false,"listed_via":null,"ats_vendor":null,"truth_index":null},"role":"Backend","role_family":"Backend","seniority":"senior","employment_type":"full_time","work_mode":"remote","remote_scope":"stated_countries","remote_scope_basis":"posting_text","remote_working_hours":null,"hiring_geo_confidence":"inferred","locations":["Lagos, Nigeria"],"countries":["NG"],"hiring_countries":["NG"],"hiring_countries_total":1,"salary":null,"salary_estimate":{"min_usd":15000,"max_usd":45000,"period":"year","method":"global_role_cell_scaled_by_country","sample_n":7270},"experience_years_min":null,"visa_sponsorship":false,"relocation_package":false,"has_equity":false,"technologies":[{"name":"ArgoCD","optional":false},{"name":"BullMQ","optional":false},{"name":"ChatGPT","optional":false},{"name":"Claude","optional":false},{"name":"Copilot","optional":false},{"name":"Cursor","optional":false},{"name":"Docker","optional":false},{"name":"ESLint","optional":false},{"name":"GitHub","optional":false},{"name":"GitOps","optional":false},{"name":"Husky","optional":false},{"name":"JavaScript","optional":false},{"name":"Kubernetes","optional":false},{"name":"Nest.JS","optional":false},{"name":"Node JS","optional":false},{"name":"PostgreSQL","optional":false},{"name":"Prettier","optional":false},{"name":"RabbitMQ","optional":false},{"name":"Redis","optional":false},{"name":"Sentry","optional":false},{"name":"TypeScript","optional":false},{"name":"Yarn","optional":false}],"status":"live","first_seen_at":"2026-10-22T03:00:48Z","employer_posted_date":null,"last_verified_at":"2026-10-22T03:00:48Z","board_verified":false,"closed_at":null,"days_open":2,"trust":{"level":"not_scored","repost_count":null,"flags":[],"days_open":2},"description":"The Tonic Technologies Limited (TTT) is a Nigerian FinTech company focused on using technology to provide simple, accessible, and seamless financial solutions for individuals and businesses. Through products such as Cardtonic, PIL, Biznic, and other digital solutions, the company provides services including gift card trading, virtual dollar cards, cross-border payments, bill payments, eSIMs, and business payment solutions. Founded in 2019 and headquartered in Lagos, Tonic Technologies is focused on building technology-driven products that make financial transactions and everyday digital experiences easier, faster, and more accessible across Africa.\n\nWe are recruiting to fill the position below:\n\nJob Title: Senior Backend Engineer (Node.js)\n\nLocation: Lagos\n\nEmployment Type: Full-time\n\nOverview\n\nWhy we need you:\n\nIf an API double-charges, times out halfway through a withdrawal, or shows a balance that isn’t true, that’s real money and real stress for a real person. We need someone who takes that personally.\nOur users never see the backend, but they feel it. Many are on a mid-range Android, two bars of network, and a battery at 14%. They tap “Fund card” once, the network drops, and they tap it again. They’re selling a gift card while the rate moves, or paying a bill five minutes before the light goes.\n\nResponsibilities\n\nWhat you’ll actually be doing:\n\nOur services are containerised and ship to our Kubernetes cluster through Argo CD. You don’t need to be a platform engineer. You do need to be comfortable that “done” means deployed, monitored and behaving in production, not just merged.\nYou’ll build and maintain the systems people already depend on, not a greenfield side project. One backend powers everything, and everything hits it:\nSome days that’s designing an API so clean the frontend team stops sending you “quick question” DMs. Some days it’s figuring out why one query takes 4 seconds under load and getting it under 200ms. Some days it’s tracing a webhook from a payment partner that arrived twice, late, and in the wrong order, and making sure the wallet still tells the truth.\nYou’ll own flows where mistakes cost money: payments, wallet funding, withdrawals, KYC, rates, card funding with Naira and stablecoins, and ₦, $ and ₵ amounts that must reconcile to the last kobo.\nThe consumer app on iOS, Android and web: wallet, gift cards, Virtual Dollar Cards, bills, gadgets, eSIM. Used by customers in Nigeria and Ghana.\nThe internal admin dashboard: the tools Operations use to help customers. Privileged, audited, and not a place for shortcuts.\nThe partner / B2B side: merchants and developers on our Gift Card API, who expect clean docs, stable versions and responses that don’t change mood.\n\nThe stack you’ll walk into:\n\nDocker. GitOps (Argo CD) for what actually reaches production. Sentry for when things go bump.\n[Confirm database(s), e.g. PostgreSQL / MongoDB] and [confirm cache/queue, e.g. Redis, RabbitMQ / BullMQ]. You know when to index, when to queue, and when to wrap it in a transaction.\nYarn, ESLint, Prettier, Husky, conventional commits. GitHub pull requests with a real review.\nNode.js with TypeScript, plus a JavaScript codebase that already serves customers and needs your care. framework: Express / NestJS\nREST APIs consumed by our web, mobile, partner and admin apps. Webhooks from payment, banking and card partners.\n\nRequirements\n\nYou’ll probably do well here if:\n\nYou treat security and customer data as your job: auth, access control, secrets, audit trails.\nYou use AI tools (Cursor, Copilot, Claude, ChatGPT, whatever works) to move faster, and you still read what they give you. You do not paste customer data (PII) or secrets into a model.\nYou’ve integrated third-party APIs and webhooks, and you assume they will fail, duplicate, or time out at the worst moment.\nYou can explain a technical trade-off to a PM without making them feel small, and you’ll ask “but what happens if the partner never responds?” when a ticket doesn’t say.\nYou understand idempotency, retries, race conditions and database transactions, and you’ve used them for real, not just in an interview.\nYou care about what happens after the code ships: logs, alerts, metrics, and whether the 2am page is yours to fix.\nYou’ve spent [6+] years building backend systems in Node.js that real people use, and you write TypeScript without fighting it.\n\nBonus points if:\n\nYou’ve handled a production incident and written the post-mortem. None of these are dealbreakers. They just make us smile.\nYou’ve read a Kubernetes manifest or an Argo rollout without panic.\nYou’ve designed a public API that other developers actually enjoyed using.\nYou’ve worked in fintech or payments.\nYou’ve worked with card issuing, virtual accounts or stablecoin rails.\nYou’ve built a ledger or wallet system with double-entry bookkeeping.\n\nThis probably isn’t for you if:\n\nYou think “it works on my machine” is a deployment strategy. Or you’d rather not think about what happens when a request runs twice. Or you only want to build new services and refuse to touch the code that already moves customers’ money. Or logs, tests and monitoring feel like someone else’s problem. No shade. Just not the fit.\n\nWhat’s in it for you\n\nHMO. Annual leave. Work equipment and a learning budget.\nFully remote, Nigeria-based. Your commute is from bed to desk (or bed to bed, we don’t judge).\nYour systems powering transactions for over a million users, plus the Operations team who rely on your APIs to help them.\nTeammates who will actually notice when you do something great.\n\nHow to Apply\n\nInterested and qualified candidates should:\n\nClick here to apply online\n\nHow to apply (and stand out)\n\nWe’ll ask for your GitHub or portfolio, plus one short question: tell us about a production bug or incident that humbled you, and how you fixed it. Three to five sentences is plenty. This is the part we read most closely, so skip the generic answer. If it involved money, a duplicate transaction, or a 2am rollback, even better.\n\nApplication Deadline:\n5th November, 2026.","description_format":"text","description_chars":6059,"description_truncated":false,"requirements":{"experience_years_min":null,"management_years_min":null,"team_size_min":null,"manages_managers":false,"education":null,"security_clearance":false,"languages":[]},"benefits":["Annual leave"],"hiring_locations":[{"name":"Nigeria","iso":"NG","kind":"country"}],"hiring_excludes":[],"relocation_offered":false,"industries":[],"lifecycle":[{"event":"open","at":"2026-10-22T08:01:15Z"}],"visa":[],"liveness":{"score":99,"band":"hot","label":"Hiring now","p_open":1,"p_active":0.993,"p_room":1,"age_days":1,"expected_fill_days":29,"reasons":["seen:1","wave","velocity","win:early"],"computed_at":"2026-10-23T05:54:15Z"},"pay":null,"html_url":"https://alion.io/job/the-tonic-technologies-limited-ttt-senior-backend-engineer-node-js","json_url":"https://alion.io/job/the-tonic-technologies-limited-ttt-senior-backend-engineer-node-js.json","meta":{"generated_at":"2026-10-24T04:01:48Z","cache_seconds":300,"methodology":"https://alion.io/methodology","terms":"https://alion.io/terms","contact":"https://alion.io/contact","api":"https://alion.io/developers","about":"Alion is a live layer of people, companies and AI agents: who they are, whether they are real and active right now, what they do and how to work with them, readable by people and by agents and paid per call.","catalog":"https://alion.io/catalog.json","usage":{"tier":"crawler_verified","counted_by":"address","units_charged":1,"used_today":6344,"day_limit":null,"remaining_today":null,"minute_limit":300,"resets_at":"2026-10-25T00:00:00Z"}},"offers":[{"id":"company.slices","title":"One company in depth, by slice","status":"live","price":{"credits":0.02,"usd":0.002,"plus_per_slice":{"credits":0.05,"usd":0.005}},"unit":"per company, plus each slice with data","note":"the employer in depth","call":{"mcp_tool":"get_company","arguments":{"id":4457899},"rest":"https://alion.io/mcp/rest/get_company?id=4457899"},"human":"https://alion.io/catalog?offer=company.slices&for=job%2Fthe-tonic-technologies-limited-ttt-senior-backend-engineer-node-js"},{"id":"market.stats","title":"A market slice: pay, demand and time to fill","status":"live","price":{"credits":1,"usd":0.1},"unit":"per slice","note":"pay, demand and time to fill for this role and place","call":{"mcp_tool":"market_stats"},"human":"https://alion.io/catalog?offer=market.stats&for=job%2Fthe-tonic-technologies-limited-ttt-senior-backend-engineer-node-js"},{"id":"job.search","title":"Open jobs by role, technology, place, pay and visa","status":"live","price":{"credits":0.02,"usd":0.002},"unit":"per posting in a list","note":"similar open postings","call":{"mcp_tool":"search_jobs"},"human":"https://alion.io/catalog?offer=job.search&for=job%2Fthe-tonic-technologies-limited-ttt-senior-backend-engineer-node-js"},{"id":"company.verify","title":"Is this company real and active right now","status":"pilot","price":null,"unit":"per company","request":{"url":"https://alion.io/catalog/request","method":"POST","body":"{\"offer\": \"company.verify\", \"for\": \"job/the-tonic-technologies-limited-ttt-senior-backend-engineer-node-js\", \"note\": \"what you need it for\"}"},"human":"https://alion.io/catalog?offer=company.verify&for=job%2Fthe-tonic-technologies-limited-ttt-senior-backend-engineer-node-js"}]}