N.ONYANGO

SOFTWARE ENGINEER — NAIROBI, KENYA

Nehemiah Onyango.
Software Engineer.
Product Builder.

I build software that solves annoyingly specific problems for specific groups of people

CURRENTLY EXPLORING

developer tooling · community technology · local-first software · automation

SELECTED WORK

Developer Tools Products Community Technology Experiments Languages How I Think Experience

01 · DEVELOPER TOOLS

Software built to make other software easier to build.

This is the part that doesn't ship to users — it ships to me. It's usually the fastest way to tell if I actually understand a workflow, because I have no one to blame if it's wrong.

Portfolio Ops

github ↗

PROBLEM

Updating my portfolio was surprisingly repetitive. Every new project meant editing markdown, swapping screenshots, committing, and deploying — the same five steps, every time, done by hand.

SOLUTION

A Python CLI that abstracts the whole workflow — content updates, branching, commits, optional pushes — into single, deterministic commands. Opinionated enough to stay consistent, extensible enough to grow.

RESULT

Updating my portfolio went from a fifteen-minute chore to a single command. Laid groundwork for CI/CD hooks and GitHub API integrations I haven't built yet.

LESSON

Developer experience is a product. If a tool only has one user, it still deserves the same care as one that has thousands.

Python · CLI tooling · Git automation

DevBrief

github ↗

PROBLEM

I had too many side projects living on disk — some active, some abandoned, some I'd genuinely forgotten existed. No single place told me the truth about any of them.

SOLUTION

A Flutter desktop app that indexes local projects automatically, using signature-based detection to identify frameworks and project types straight from the file structure, backed by a Drift/SQLite metadata store tracking lifecycle and Git health over time.

RESULT

A daily-briefing interface, closer to an intelligence dashboard than a file browser, that surfaces what's dormant, what's active, and what's quietly decaying — plus auto-generated portfolio artifacts from real project data instead of manual writing.

LESSON

Your filesystem already contains valuable product intelligence. Most developers just never build the thing that reads it back to them.

Flutter · Drift · SQLite

02 · PRODUCTS

Software built for people outside my terminal.

These start the same way the tools do — something annoyed me — but the person who has to live with the result isn't only me anymore.

SlipKitchen

PROBLEM

Sports bettors track prediction slips in notes apps and spreadsheets, then never actually learn from their own history. There was no structured way to see which reasoning patterns were working and which ones were just noise.

ARCHITECTURE

A local-first data model in IndexedDB via Dexie, storing slips, prediction types, rationale, and whitelist/blacklist teams alongside historical outcomes — fully stateful, persisted client-side for speed and reliability, no backend round-trip required.

OUTCOME

A performance analytics view that surfaces which prediction patterns actually perform per league, plus structured note-taking that forces reasoning to be written down before the outcome is known — and export tools for sharing slips in social-friendly formats.

LESSON

People don't lack data, they lack a forcing function to record their reasoning before they know if they were right. That's a harder product problem than it looks.

React · IndexedDB / Dexie.js

NudgeMate

in progress

PROBLEM

Goals die quietly. Not from one bad decision, but from thousands of small moments where nobody reminded you what you were actually working toward.

SOLUTION

A goal and dream reminder app that sends motivational push notifications and deliberately well-written notes, designed to keep people accountable to the version of themselves they set the goal for in the first place.

V1:Next JS/PWA NO Backend· Push notifications

V2:Minimal Supabase Backend plus better user experience and working push notifications


Dossier

PROBLEM

Traditional contact apps are fundamentally broken. They store people as static entries — just names and phone numbers — organized alphabetically with no sense of time, context, or meaning. Users forget why they saved someone, networking value evaporates, and contact lists become unusable digital graveyards.

SOLUTION

Dossier reimagines contact management as a relationship intelligence system built on Intent Before Storage. Instead of saving and forgetting, users must pause and define why each person matters through a guided micro-reflection flow. Contacts organize by intent-based groups (Networking, Work, Friends, Opportunities) and display as Relationship Cards showing context, last interaction, and next suggested action.

ARCHITECTURE

Next.js PWA with offline-first localStorage via Zustand. Contacts store with metadata (reason saved, intent, tags, notes), interaction logs (type, timestamp, description), and insight layer (last interaction, follow-up suggestion, relationship score).

OUTCOME

80%+ of contacts categorized with clear intent within the first week. Active relationship management through follow-up prompts, network intelligence through streaks and achievements (Clarity Builder, Network Architect, Intent Master), and a dashboard that transforms passive lists into active relationship intelligence.

React · Next.js · Zustand · IndexedDB · PWA

03 · COMMUNITY TECHNOLOGY

Impact that doesn't fit a startup pitch.

SaMaFa Prosperity Foundation — Data & Documentation

WHAT I BUILT

Turned a 175-response community survey into a ranked business-opportunity report with a 90-day validation plan, and a separate 102-respondent EXPO survey into a formatted strategic report — both used directly for decision-making, not filed away.

COMMUNITY PROFILER

Specified an internal tool to parse SaMaFa's 42-column Google Form dataset into structured community profiles — full PRD and parser spec, built to turn a messy form export into a reusable data pipeline.

Data analysis · Reporting · Documentation

04 · EXPERIMENTS

Not everything worked. That's kind of the point.

This section exists so the rest of the page doesn't look like a highlight reel. Some of these are unfinished on purpose.

TRANSIT ADVERTISING

UbiqueAds

Headrest advertising for matatu routes across Nairobi and Kiambu — pitch deck, a lightweight CRM built on Google Forms, and the routes page that made the inventory legible to advertisers for the first time.

FIRST STARTUP

ATM Banking Concept

My earliest real attempt at a startup — a banking-tech idea meant to change how people interact with ATMs. It didn't work. It's also the reason everything after it got built with more discipline.

CREATOR ECONOMY

Creator Brand Valuation

A concept SaaS scoring creators on reach quality, audience fit, content credibility, and commercial track record, using Phyllo for data aggregation. Still in the idea's early, unglamorous stage.

05 · LANGUAGES

Tools, not trophies.

Not years of experience — what I actually reach for, and why.

JavaScript

Ship fast, iterate live. React, Next.js, Redux — the default when a product needs a browser and needs it now.

Python

Automation, developer tooling, data processing. Reached for when the problem is "I keep doing this by hand."

Dart / Flutter

Desktop and cross-platform tooling — DevBrief runs entirely on it. Good for software that has to feel local and immediate.

SQL

Data modeling. Where I think through what a system actually needs to remember before I write a line of application code.

C / C++

Systems curiosity. Less a daily tool, more where I go when I want to understand what's happening underneath the abstraction.

Currently stretching into

IoT and hardware — the layer below the software I usually write, and the part of the stack I understand the least.

HOW I THINK

Simplicity beats feature overload.

The best interfaces remove mental friction instead of adding more controls.

Context matters more than information. Tools become powerful when they understand why something matters.

Software should feel calm — intentional, minimal, and emotionally clear.

I don't over-engineer. Tech is an effort multiplier when built right.

06 · EXPERIENCE

WORK

Forward Deployed Engineer and Data Analyst

March 2026 – Present

SaMaFa Prosperity Foundation

Currently working as a forward deployed enginner to built internal tools to solve real-world problems through data analysis and software engineering on the field and on the go.

Software Engineer Intern

OCT 2025 – FEB 2026

Marsoney Labs

Built a web-based project management tool with React, Next.js, and Redux for state management. Implemented user authentication and authorization using JWT and OAuth. Translated Figma designs into functional, user-friendly interfaces

EDUCATION

Software Engineering Bootcamp

02/2024 – 05/2024

PLP Academy — PLP Africa Scholarship

B.Sc. Software Engineering

Jomo Kenyatta University of Agriculture and Technology

What's next?

I'm interested in difficult problems, ambitious teams, and things that probably shouldn't exist yet.