Skip to content
Open to software engineering roles · remote-friendly

001 — Software Engineer · Stellar ecosystem · Lagos

Full-stack
engineer.

I'm a software engineer working across the web (Next.js, React, TypeScript) and backend (Python, Go, Java). I trained at Semicolon Africa, and these days I spend most of my time inside the Stellar ecosystem — writing Soroban smart contracts in Rust and the small product experiments that sit around them.

currently
Writing into the Stellar ecosystem.
Imeobong John — Lagos
Lagos · 2026 · 35mm

Online · daily commits

$ whoami
imeobong.john — engineer · Stellar · Lagos · learning in public.

002 — About

An engineer who takes the long way.

I'm a software engineer working across the web (Next.js, React, TypeScript) and backend (Python, Go, Java). I trained at Semicolon Africa, and these days I spend most of my time inside the Stellar ecosystem — writing Soroban smart contracts in Rust and the small product experiments that sit around them.

I'm still early in my career, and that's the point: this site is the work in motion, not the finished résumé. I commit daily, I learn in public, and I try to build the version of each thing that's clear enough to read a year later without flinching.

Python · Java · JSGo · TypeScriptLearning Rust · SorobanAPIs · Full-stack
Imeobong John — studio portrait
// portrait · studio
⌘ subject · I.J.A
frame · 001 / 256
01

Clarity over cleverness.

I'd rather write the boring, well-named version of something than the clever one-liner that needs a paragraph of comments. Future-me has to read this code.

02

Ship the boring middle.

The muscle isn't built in the launch — it's built in the steady commits that don't make a post. I show up daily and that compounds.

03

Learn in public.

I post my repos as I figure things out. The Stellar / Soroban work, the small experiments, the calculator I built on day one — all of it stays up. The journey is part of the work.

At the keyboard — Lagos Hacker House
// the rig · Hacker House
B-side · in the field

// from the field

Most of the work happens here.

The Hacker House, late nights, two screens, headphones on — most of what shipped this year was written somewhere that looked like this. Quiet work, steady commits, the boring middle.

75+

public repositories

6

languages I write in

1

engineering programme · Semicolon

Daily

commit cadence

Code is like humor. When you have to explain it, it's bad.
Cory House · a quote I keep returning to

// outside the editor

  • Gaming

    Strategy and RPGs. Currently working through whatever has a good story.

  • Sci-fi films

    Anything with a serious take on time, scale, or intelligence.

  • Problem-solving

    LeetCode-shaped on slow days; system-design-shaped on the rest.

  • Reading

    Mostly engineering blogs and the occasional long-form essay.

// now

  • Writing Soroban contracts for small fintech experiments
  • Getting more comfortable with Go for backend services
  • Sharpening system-design fundamentals
  • Contributing to open-source Stellar projects

// stack — what I reach for

PythonJavaJavaScriptTypeScriptGoRustReactNext.jsNode.jsTailwindExpressNestJSSorobanStellar SDKMySQLPostgresMongoDBDockerGitLinux

003 — Things I've built

A mix of experiments and fundamentals.

Some Stellar / Soroban experiments I'm using to learn the ecosystem, plus the earlier projects that taught me the fundamentals. I leave the small ones up on purpose — that's part of the journey.

Engineering — whiteboard, code, profile
// thinking · in front of the whiteboard
the work · 003
07 projects below
stellar-ussd.app

active · 2026

StellarUSSD

A Stellar wallet you can use from a feature phone.

Session state machine survives dropped sessions
Server-side key custody for the prototype
Telco-agnostic gateway adapter
2026

01 / Backend

StellarUSSD

A Stellar wallet you can use from a feature phone.

Problem

A lot of people in Nigeria still use feature phones, or have a smartphone but no data. They can't use a normal crypto wallet app. I wanted to see if you could put one behind a USSD code instead — the same way mobile money already works.

Approach

A Go backend that talks to telco USSD gateways and translates *123#-style menus into Stellar transactions. The phone is dumb; session state, keys, and rate-limiting all live on the server.

Outcome

An early prototype that proves the idea works end-to-end. A lot more to harden before it's production-ready, but the core flow is there.

GoStellar SDKPostgreSQLDocker
ajochain.app

learning · 2026

AjoChain

Digital Ajo (rotating savings) using Soroban smart contracts.

Schedule-driven payout enforced on-chain
Default-handling without group-leader veto
First real Soroban project — written while learning
2026

02 / Smart Contracts

AjoChain

Digital Ajo (rotating savings) using Soroban smart contracts.

Problem

Ajo / Esusu groups are everywhere in Nigeria — friends pool money each month and take turns receiving the pot. It works on trust, which means it sometimes doesn't work. I wanted to try encoding the rules in a contract.

Approach

Soroban smart contracts in Rust. Members deposit on a schedule, the contract decides who gets the payout in which round, and a default doesn't depend on the group leader's mercy.

Outcome

Working prototype contract with the basic rotation logic. Still learning Soroban — there's a lot to improve on the contract economics side.

RustSorobanStellar
medipay-stellar.app

learning · 2026

MediPay Stellar

A small experiment in healthcare settlement on Stellar.

Reconciliation primitives in Rust
Claim tokenization sketch
MIT-licensed — anyone can fork and extend
2026

03 / Stellar

MediPay Stellar

A small experiment in healthcare settlement on Stellar.

Problem

Hospital ↔ HMO settlement in Nigeria is slow and full of disputes. I was curious whether the Stellar transaction model — cheap, fast, deterministic — could be a fit.

Approach

A minimal Rust service that orchestrates provider-payer reconciliation and tokenizes claim instruments on Stellar. Still a sketch, not a product.

Outcome

Useful as a learning exercise in domain modelling and tokenized state. Helped me get comfortable with Stellar's account model.

RustStellarTypeScript
nairaramp.app

prototype · 2026

NairaRamp

An SDK exploration for NGN ↔ USDC conversion.

Provider-agnostic adapter pattern
Typed SDK surface
Quote-rate locking on the type level
2026

04 / SDK

NairaRamp

An SDK exploration for NGN ↔ USDC conversion.

Problem

A few of my friends building Nigerian fintech kept rebuilding the same NGN/USDC bridge — KYC, off-ramp partner, fees. I wanted to see what a single typed SDK could look like.

Approach

TypeScript SDK with a thin runtime: quote → quote-accept → settle. Provider adapters underneath, so the bridge details swap out without changing app code.

Outcome

Early-stage. The shape feels right; the provider integrations need real partners to harden.

TypeScriptNode.jsStellar SDK
wallet-system.app

learning · 2025

Wallet System

A digital wallet for storing payment info, tracking transactions, and basic budgeting.

Cleanly separated domain model
Money handled with integer minor units
Transaction history + simple budget primitives
2025

05 / Backend

Wallet System

A digital wallet for storing payment info, tracking transactions, and basic budgeting.

Problem

I wanted a project that touched a bunch of things at once — auth, persistence, transactions, money math, validation. A wallet was the perfect excuse.

Approach

Backend in Python with a clean separation of accounts, transactions, and budgets. Added simple budgeting tools, transaction history, and rewards tracking on top.

Outcome

Solidified the basics of API design, money handling (never floats), and writing tests that actually catch off-by-one bugs.

PythonPostgreSQLREST
todo-manager.app

learning · 2025

ToDo Task Manager

A smart to-do app with priorities, deadlines, and shared lists.

Priority + deadline sorting
Collaborative sharing
Built end-to-end as a solo project
2025

06 / Full Stack

ToDo Task Manager

A smart to-do app with priorities, deadlines, and shared lists.

Problem

Classic project — but I used it to dig into the small things that make a CRUD app feel good: deadline reminders, priority sorting, collaborative sharing.

Approach

Full-stack: simple backend with auth + a small frontend. The whole point was to make it actually pleasant to use, not just functional.

Outcome

Helped me internalize how much of a 'simple' app is actually about the edges — empty states, loading states, what happens when two people edit the same task.

JavaScriptNode.jsMongoDB
movie-explorer.app

learning · 2024

Movie Explorer

Browse, search, and discover movies — ratings and reviews.

Debounced search
Detail + listing pages
Real API integration
2024

07 / Frontend

Movie Explorer

Browse, search, and discover movies — ratings and reviews.

Problem

I wanted a project that actually called external APIs and handled the messy real-world data that comes back.

Approach

React frontend that talks to The Movie Database (TMDb) API. Search, filtering, detail pages, the basics.

Outcome

Got more comfortable with React state, debouncing, pagination, and dealing with APIs that don't always return what you expected.

ReactJavaScriptTMDb API
calculator.app

archived · 2024

Simple Calculator

Basic arithmetic — but cleanly built.

Edge-case-aware input parsing
Tidy, readable code
2024

08 / JavaScript

Simple Calculator

Basic arithmetic — but cleanly built.

Problem

Day-one project. Made me think about parsing input, edge cases (divide-by-zero, decimals), and keeping a UI honest about state.

Approach

Vanilla JS / HTML / CSS. The fun was in keeping it small and tidy — the kind of code I can read a year later without flinching.

Outcome

A clean, working calculator. The point was less the calculator and more the discipline of finishing.

JavaScriptHTMLCSS

004 — Future systems

Communication OS · ConceptIn Concept · 2026

OMNIST

An intelligent orchestration layer that sits above WhatsApp, Slack, Telegram, iMessage — and below the relationships those apps are pretending to serve.

Today's messaging is app-centric: one inbox per silo, no shared memory, no understanding of who actually matters. The idea behind Omnist is to treat messaging as an OS service — conversations, contacts, intents, and context become first-class, and the apps become drivers underneath. It's still very much a concept I'm sketching out; nothing is shipped yet.

  • Cross-platform message orchestration
  • Local-first relationship graph
  • Contextual reply drafting
  • Meeting / commitment extraction
  • Latency-aware presence model
  • End-to-end-respecting routing

OMNIST · v0.1

online
Inboxmerged from 6 apps

Adunni · Engineering

now

Pushed the Soroban contract — review when you can.

Slackurgent

Tobi

4m

Lunch tomorrow? 1pm at the usual spot.

WhatsApp

Lagos Stellar Devs

11m

Demo day call — Thursday, 18:00 WAT.

Telegram

Mom ❤

1h

Call me when you wake up.

iMessagepinned

Stellar Foundation

2h

Re: Soroban audit grant — next steps.

Email
orchestrating · 6 silos · local-first● routing optimized
01

One surface

All messaging silos behind a single interface. Threads merge by person, not by app.

02

Memory

Conversations remember what was said, agreed, promised. The OS holds the rope, you don't.

03

Suggestion, not automation

Drafts and follow-ups suggested before you reach for them — never sent without you.

04

Who matters

A first-class model of signal vs. noise, with privacy-preserving inference kept local.

// concept reel · 2026

no audio · loop · vertical reel

REC · OMNIST
9:16

005 — Journey

The short version of how I got here.

A simple chronology — engineering training at Semicolon, the earlier learning-phase projects, and the things I'm currently exploring. Nothing dramatic, just steady steps.

Lagos Hacker House
// Lagos Hacker House · the journey continues
field · 2026 · Lagos

Q1 — present

Build

Exploring the Stellar ecosystem

Independent · open source

Spending time on Soroban smart contracts in Rust and small product experiments around them — a Nigerian Ajo (rotating-savings) on-chain, a USSD wallet gateway, a healthcare settlement sketch, an NGN/USDC SDK exploration. None of these are production yet; they're how I'm learning the platform.

Rust + Go + TypeScriptSoroban smart contractsSmall, honest experiments

Q1

Work

Open-source contributions

Stellar ecosystem · OnlyDust

Contributing to projects across the Stellar ecosystem — SwiftChain, StrellerMinds, Agora, ChainVerse, and others — landing PRs on smart contracts, frontends, and backend services. A great way to read production-adjacent code and learn how teams actually ship.

20+ ecosystem repos touchedSoroban + NestJS + Next.js

2025 — 2026

Education

Engineering programme

Semicolon Africa

Intensive, hands-on engineering training — backend systems, object-oriented design, collaborative software delivery, system-design fundamentals. The bias was always toward shipping work over coursework, which suits me.

Java / OOPSystem designCollaborative delivery

2024

Build

Self-directed foundation

Personal · GitHub

Worked through the basics across Python, JavaScript, and Java by building small things end-to-end — a wallet system, a to-do manager, a movie explorer, a URL shortener, a Bible search app, a chat room. The point was to finish each one, not to make them famous.

Python / JS / JavaFull-stack basics

006 — Contact

Say hi.

Open to software engineering roles (remote-friendly), open-source collaboration, and conversations with people building thoughtful things. Drop a line.

Direct message

opens your mail client