Skip to content
View thegoninja's full-sized avatar

Highlights

  • Pro

Block or report thegoninja

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
thegoninja/README.md
╔═══════════════════════════════════════════════════════════╗
║   building systems that don't break at 3am               ║
╚═══════════════════════════════════════════════════════════╝

Oluwatosin Thompson

Backend Engineer · Go · Distributed Systems · Fintech

LinkedIn Blog Email


whoami

Backend engineer based in Lagos, Nigeria with 4+ years building financial infrastructure in Go. I work on systems where correctness isn't optional — loan collections, payment processing, and remittances that real people depend on.

Currently at FairMoney, where I'm building FairMoney Collect: a field collections platform for agents working across Nigeria, including GPS-verified visits, offline-first action queuing, and live loan data from upstream core banking systems.

Before that, I led a 2-week GBP payment system migration for a UK bank — 10-person team, zero downtime, £50k+ in savings. That kind of deadline sharpens you.

I believe software engineering is a craft. I write code that the person after me can read, systems that the on-call engineer can debug at 3am, and PRs that explain why, not just what.


stack

type Engineer struct {
    Languages  []string{"Go", "SQL", "JavaScript", "Java"}
    Backend    []string{"REST", "gRPC", "GraphQL", "Temporal", "Event-driven arch"}
    Cloud      []string{"AWS (EC2, SNS, SQS, S3)", "Docker", "Render", "Heroku"}
    Databases  []string{"PostgreSQL", "MongoDB", "Firebase Firestore"}
    Observability []string{"Prometheus", "Grafana", "Groundcover", "CloudWatch", "Tally", "Scope"}
    Tools       []string{"Retool", "Git", "Postman", "Notion"}
    Currently  string{"AWS Solutions Architect (in view)"}
}

things I've built

Project What it does Stack
FairMoney Collect Field collections platform for 45+ agents — offline-first, GPS-verified visits, live loan data Go, AWS, PostgreSQL
FlexiCredit Overdraft and credit system at FairMoney — event-driven transaction handling, interest calculation, and accrual visibility for millions of users Go, AWS SQS, PostgreSQL
Loan Collections Automated collections engine — reacts to real-time repayment status changes, scheduling collections on fixed future dates based on loan extension selections Go, Temporal, AWS SNS/SQS
Loan Extension End-to-end loan extension feature allowing users to defer repayments to fixed future dates, with collections automatically rescheduled — owned from data modelling to AWS SQS integration Go, Temporal, AWS SQS, PostgreSQL
Cross-border Payment System Production multi-currency remittance system at FCMB Rova MFB — enables Nigerian users to send and receive funds across currencies, built and shipped in a 2-week sprint Go, REST, PostgreSQL, Microservices
GBP Payment Migration Led full migration of the GBP payment system across core banking platforms for an 80-person global team — zero downtime, £50k+ saved Go, Core Banking, Microservices
Leeta LNG/LPG marketplace eliminating the need to physically transport gas cylinders Go, REST, MongoDB
Church Design Hub Dual-site request management system for a 7-designer church media team Firebase, Netlify, Vanilla JS
MyHeritageApp Church media app with streaming + data collection for 1000+ members Go, REST, Brevo, Paystack, Heroku

what I'm working on

  • 🔧  FairMoney Collect — shipping phase 3 (offline sync) and phase 4 (mobile screens), targeting 45 agents live by May 2026
  • 🛒  Nova Adorn — Go backend for a Nigerian jewellery e-commerce platform, Paystack integration
  • ☁️  AWS Solutions Architect — in view
  • 📐  System design — working through Designing Data-Intensive Applications and building the muscle

how I work

A few things I care about as an engineer:

Ownership. I don't hand things off at the PR boundary. If it's in production and it breaks, that's still my problem to understand.

Clarity over cleverness. The most elegant solution is the one the next engineer can reason about without asking me. I write code and PRs accordingly.

Zero incidents is a decision, not luck. Two consecutive quarters, no production incidents across FlexiCredit, Loan Collections, and FairMoney Collect. That's not magic — it's deliberate thinking about edge cases before they become 3am pages.

Mentorship compounds. I've mentored 50+ women remotely and teach weekly in-person software classes to secondary school students from low-income backgrounds in Lagos. The craft grows when you share it.


currently reading

  • The Software Engineer's Guidebook (Navigating senior, tech lead, and staff engineer positions at tech companies and startups) — Gergely Orosz
  • Designing Data-Intensive Applications — Martin Kleppmann

Based in Lagos. Building for Africa and beyond.

Profile views

Pinned Loading

  1. cart-service cart-service Public

    The cart-service is a microservice that handles adding to cart, deleting from cart, and updating the cart. It follows the hexagonal design approach. The service contains its logging function. Route…

    Go

  2. domain-driven-design domain-driven-design Public

    A short of domain-driven design in go

    Go 2

  3. gpiform gpiform Public

    SCSS

  4. monster-rolodex monster-rolodex Public

    A react project that calls an API and renders the monsters 👹. It implements both the class components and the functional components. It shows a meaningful architecture

    JavaScript

  5. otp-service otp-service Public

    An otp generating service which uses Mongodb as the database and go-chi as the router. The project follows the domain-driven design approach.

    Go