Jeffery Orazulike · LagosOpen to new projects

Software & AI Engineer. Six years of mobile. Now agents and circuits

I build infrastructure people don't notice until it breaks: SDKs, caching libraries, kiosk launchers, CI pipelines. Senior Android at Grimaldi Group, consultant for Product Studio (VFD Group), final-year Computer Engineering at UNILAG.

Get in touchCV ↗
~/lab · Edge AI on a microcontrollerFinal-year project · details after submission
12V
INVERTER
DC → AC
sensor
AC load
MCU · on-device ML
app
wireless
01 · Live SaaS · open-source engine

bankstract

Open-source engine and hosted SaaS for parsing Nigerian bank statements. Four bank parsers, in-memory streaming, zero disk writes.

Python (PyPI) · Next.js 16 · FastAPI · HetznerRead the case study →
statement.pdf → Zenith · parsed in memory✓ 6 transactions
datenarrationamount
02 OctTRANSFER IN · SALARY+450,000.00
03 OctPOS · SUPERMARKET−18,250.00
05 OctAIRTIME · MTN−2,000.00
07 OctNIP TRANSFER OUT−120,000.00
09 OctSTAMP DUTY−50.00
12 OctTRANSFER IN+35,000.00
sample data · NGN · date, narration, debit, credit, balance→ CSV
02 · Open-source tool · MIT · npm

agent-bridge

Live messaging between agent CLI sessions as named peers. Claude Code, Antigravity and opencode.

TypeScript · MCP · Unix socketRead the case study →
$ agent-bridge peersmyapp-claudeclaude-code● onlinemyapp-agyantigravity● onlinemyapp-opencodeopencode● online$ agent-bridge send --as myapp-claude myapp-opencode "tests pass, take the PR"
claude code
sends
daemon
disk queue
opencode
woken in place
queued → delivered → acked · leaves the queue only when acked · output illustrative
03 · Library · Maven Central + SPM

Retrostash

Annotation-driven caching for Retrofit, OkHttp and Ktor. POST query caching and mutation-driven invalidation.

Kotlin Multiplatform · Android · JVM · iOS · wasmJsRead the case study →
cache log · same request, four calls
1POST /graphql search:kotlinMISSnetwork → stored · tag search
2POST /graphql search:kotlinHITserved from cache · no network
3POST /items createItemMUTATEsuccess → invalidate tag search
4POST /graphql search:kotlinMISSfresh data · stored again
@CacheQuery(key = "search:{q}", tags = ["search"]) · @CacheMutate(invalidateTags = ["search"])
04 · PWA · client-side

Redactly

Anonymizes WhatsApp chat exports before you share them with AI models. Runs 100% in the browser.

React 19 · TypeScript · Web Worker · IndexedDBRead the case study →
Before · chat.txt
10:42 · Ada OkaforCall me on 0803 123 4567 before 6
10:44 · Tunde B.Sent the contract to tunde.b@mail.com
10:45 · Ada OkaforGot it, signing tonight
After · safe to paste
Participant 1Call me on [PHONE] before 6
Participant 2Sent the contract to [EMAIL]
Participant 1Got it, signing tonight
names → aliases · PII masked · runs in browser

About

Android is the home base: launchers, device policy, SDKs that walk the view tree at runtime. The rest of the stack comes along when the job needs it, Kotlin Multiplatform, React, Python, C#/.NET. I've mentored eight HNG cohorts and now run review infrastructure for the Zedu org. On my own time I build what I wanted and nobody shipped.

  • Grimaldi GroupSenior Android EngineerAug 2022 – Present
  • Product Studio (VFD Group)Android Engineer, consultancySep 2026 – Present
  • HNG Zedu review orgReviewer and org adminOct 2026 – Present
  • WebMD (via Tight Line)Senior Android EngineerNov 2025 – Oct 2026
  • BytebyBitSenior Android EngineerMay 2024 – Oct 2026
  • WekoyaSoftware EngineerJul 2026 – Sep 2026
  • Kylzion LabsFull-Stack EngineerFeb 2026 – Aug 2026
  • iKooKFrontend EngineerJul 2024 – May 2025

Claude Certified Architect – Foundations (Anthropic, 2026) · BSc Computer Engineering, UNILAG (2027 expected) · Mentor, 8 HNG cohorts

Recent writing

All posts →

Got something hard?
Send it.