Software Engineer
Mafabi Hussein, software engineer
3

Flagship Projects

4+ Years Experience

Backend & Architecture Focus

Building softwarefrom architectureto production.

I build full-stack applications with a backend-oriented focus: APIs, relational data, application boundaries, deployment, and the decisions behind reliable software.

TypeScriptNode.jsReactNext.jsPostgreSQL

End-to-End Ownership

Architecture · Implementation · Deployment

Flagship Systems

Oakley Commerce Platform · ObjectID Recognition

Core Focus

Backend · APIs · Relational Data · State Machines

Engineering Standards

Validation · RLS Authorization · Idempotency

About me

Turning complex requirements into working systems.

Learn. Rethink. Move forward.

Continuous improvement & architectural discipline

Focus

Backend & System Design

APIs, relational data modeling, and reliable distributed architecture

Execution

End-to-End Delivery

Full-lifecycle ownership from requirements to production deployment

Foundation

BSc Computer Science

Strong analytical basis in data structures, algorithms & systems

I’m Hussein, a software engineer with a Computer Science foundation who builds full-stack software systems with a strong focus on backend engineering, APIs, databases, and system design. I work primarily with TypeScript, JavaScript, Node.js, NestJS, Express, React, Next.js, PostgreSQL, and Python, using tools and platforms such as Git, GitHub, Docker, Vercel, Render, and Railway where appropriate.

My work spans the full development lifecycle, from understanding requirements and designing system architecture to implementation, deployment, and post-launch problem solving. I’m particularly interested in what happens beneath the interface: data integrity, API behaviour, application boundaries, performance, failure cases, and the technical decisions that make software reliable in real-world conditions.

I have a BSc in Computer Science and several years of hands-on experience building and delivering software. I’m comfortable working independently when a project requires ownership from idea to deployment, and I work equally well within a team where collaboration, discussion, and shared responsibility matter. I’m adaptable, learn quickly, and approach unfamiliar technologies by understanding how they fit into the wider system rather than simply learning them at surface level.

What I bring is a combination of practical product thinking, engineering discipline, curiosity, and ownership. I care about building software that solves the actual problem, is maintainable after delivery, and continues to work when it leaves the ideal conditions of development.

What I do

I build software systems from interface to implementation.

I work across the stack to turn product requirements into functional software—connecting user interfaces, backend services, data models, and, where appropriate, AI-powered capabilities.

01

Build full-stack systems

I connect responsive client applications (SPAs, PWAs, Server Components) to centralized backend APIs, authentication pipelines, and transactional data persistence.

Built in practice

Engineered multi-role platforms (Oakley Storefront & Vendor PWA, AWIHF Platform) with shared APIs and centralized business logic.

02

Architect backend APIs & logic

I build server-side architectures around strict RESTful conventions, validation pipelines, authorization policies, state machines, and scheduled background reconciliation.

Built in practice

Designed Express/TypeScript APIs with 3-dimensional state machines, node-cron reconciliation jobs, and automated test harnesses.

03

Model relational data & access

I design normalized PostgreSQL schemas with strict foreign-key invariants, Row-Level Security (RLS) policies, and transactional integrity guarantees.

Built in practice

Implemented PostgreSQL schemas with database-layer RLS policies and JWT claim helpers in the app schema.

04

Apply ML & computer vision

I develop applied computer vision workflows across mobile and cloud environments, balancing on-device inference constraints with API-backed fallback pipelines.

Built in practice

Created ObjectID Android app combining quantized MobileNetV3 TFLite inference with Imagga Cloud REST API fallback.

Selected work

Work that makes the engineering visible.

These flagship systems make earlier capabilities concrete through real implementation: product architecture, backend decisions, data modeling, deployment constraints, and the trade-offs required to get working software across the line.

01 / Flagship Software Systems

01 / Multi-application commerce system

Oakley Commerce Platform

Sole Developer & System Architect

A multi-app commerce platform separating the customer storefront SPA and vendor dashboard PWA, connected to a centralized Node.js/Express API and PostgreSQL with Row-Level Security.

Clear application boundaries, 3-dimensional state machines, database-enforced RLS policies, idempotent draft checkout, and automated end-to-end checkout testing.

  • Engineered separate customer storefront and vendor operations PWA connected to a single Express/TypeScript API.
  • Implemented 3-dimensional state machines governing order lifecycle, payment states, and system resolution.
  • Enforced multi-tenant isolation directly in PostgreSQL via database Row-Level Security (RLS) policies.
  • Developed automated end-to-end test harness validating stock reservation and checkout invariants.

Engineering Context

The system was architected to keep customer shopping and vendor administration cleanly separated while centralizing all critical commerce invariants—order state transitions, stock decrementing, payment proof uploads, and scheduled reconciliation—inside a single modular backend.

02 / Android image identification system

ObjectID

Primary Developer

A native Android image identification system combining custom touch bounding-box ROI annotation, quantized on-device MobileNetV3 TensorFlow Lite inference, and Imagga Cloud REST API fallback.

Pragmatic ML architectural pivot balancing on-device mobile hardware constraints with cloud API fallback, paired with robust memory management and defensive error pipelines.

  • Built touch-driven ROI annotation view enabling targeted object bounding box selection on Android Canvas.
  • Implemented dual-inference recognition pipeline combining on-device quantized TFLite and cloud Imagga API.
  • Designed defensive error handling with automated fallback from cloud API to local inference upon network timeout.
  • Structured with MVVM architecture, Kotlin Coroutines, OkHttp interceptors, and build-time secret isolation.

Engineering Context

The project required evaluating the gap between on-device ML compute limits and project delivery timelines. Rather than shipping an unfinished native C++/CMake stack with narrow class coverage, the architecture pivoted to a hybrid approach: cloud-first recognition for high precision with instant on-device TFLite fallback.

Additional Public Work

Production platforms & client websites

See complete inventory →

Public Web Platform

↗

Al-Birr Charity Organization

Engineered a content-dense platform organizing multiple program domains, field reports, and donation paths, keeping beneficiary information privacy-conscious while maintaining responsive navigation stability.

Next.js ·TypeScript ·Tailwind CSS
Visit live platform

Public Web Platform

↗

Pamoja Outreach Foundation

Structured a multi-domain organizational platform translating complex grassroots programs, impact metrics, leadership registries, and outreach workflows into a maintainable, high-performance web experience.

HTML5 ·CSS3 ·JavaScript
Visit live platform

Live Production Platform

↗

Acholi Women in Health Foundation

Official live web platform and operational portal for Acholi Women in Health Foundation in Northern Uganda, managing maternal care advocacy, field research data, and active mentorship workflows.

Next.js ·TypeScript ·Sanity CMS ·Neon PostgreSQL ·Prisma ·Cloudinary ·Resend
Visit live platform

Progressive Web App

↗

Valentine's Proposal (PWA)

Built an interactive Progressive Web App featuring dynamic client-side state transitions, user-generated unique proposal links, persistent responses, and audio-visual interaction choreography.

React ·TypeScript ·Supabase ·Tailwind CSS
Visit live platform

What this proves

Evidence a reviewer can question.

Real software engineering isn't just about code that executes on localhost—it is about architectural boundaries, navigating real infrastructure limits, and managing delivery scope.

Boundaries

Oakley separates customer and vendor workflows around a shared backend and PostgreSQL data layer.

Constraints

The payment flow is presented as a practical workaround, not a fictional direct payment API integration.

Scope control

ObjectID explains why the delivered version used an external recognition API after local inference proved too broad for the timeline.

How I approach software

Reasoning from ambiguityto working systems.

I do not start with “which framework should I use?” I begin by understanding the problem, isolating constraints, defining system boundaries, modeling relational state, designing defensive failure modes, and closing the loop with continuous observability.

01. Understand➔02. Constraints➔03. Architecture➔04. Data & State➔05. Defensive Contracts➔06. Build & Validate➔07. Observe & Iterate
STAGE 01 · PROBLEM SCOPEDeconstruction

Deconstruct the Problem Before Technology

“What problem are we actually solving, and what is explicitly out of scope?”

Real engineering never begins with framework selection. It starts by establishing operational context, understanding user needs, and defining rigid boundaries around project scope.

  • Distinguish genuine user workflows and business objectives from surface-level feature wishlists.
  • Establish explicit non-goals: identify what the system will intentionally not support in this iteration.
  • Explore edge-case workflows (e.g. what 'checkout' actually means during network dropouts or payment delays).
STAGE 02 · HARD CONSTRAINTSRequirements

Isolate Requirements & Hard Constraints

“What must the system do, and what limitations dictate the solution?”

Turn ambiguous ideas into concrete engineering specifications across functional rules, non-functional requirements, and real-world environmental limits.

  • Functional: Map entity lifecycles, user permissions, state transitions, and transactional boundaries.
  • Non-Functional: Establish latency budgets, throughput targets, security requirements, and maintainability.
  • Constraints: Factor in deployment infrastructure, delivery windows, mobile thermal limits, and third-party API quotas.
STAGE 03 · SYSTEM ARCHITECTUREBoundaries

Design Boundaries & Make Defensible Trade-Offs

“Which architecture satisfies requirements without introducing unearned operational complexity?”

Architecture is a consequence of requirements and constraints—not fashion. I evaluate alternatives pragmatically, choosing solutions that solve the problem with the least operational overhead.

  • Define strict system boundaries: separate client runtimes, centralized API gateways, and persistent stores.
  • Evaluate trade-offs: choose modular monolithic architectures over microservices when operational simplicity outweighs distributed isolation.
Applied Decision (Oakley Platform):

Selected a single modular Node.js API with strict domain separation rather than microservices, eliminating multi-service deployment overhead while preserving isolation.

STAGE 04 · DATA & STATEInvariants

Model Relational Data & Enforce State Invariants

“How is data owned, normalized, transitioned, and protected at the database engine level?”

The data model is the architectural foundation of backend systems. I design normalized relational schemas with explicit constraints, foreign keys, and database-enforced security.

  • Model relational tables around real business entities with strict foreign keys, indexes, and transactional boundaries.
  • Implement multi-dimensional state machines rather than collapsing orthogonal workflows into a fragile single status flag.
  • Enforce tenant isolation directly at the database engine using PostgreSQL Row-Level Security (RLS).
STAGE 05 · DEFENSIVE CONTRACTSFailure Paths

Design Strict API Contracts & Plan for Failure

“What happens when this fails, times out, or receives malformed/malicious input?”

A senior engineer does not design only for the happy path. I guard boundaries with schema-validated request/response contracts, idempotent mutations, and defensive fallback paths.

  • Validate every incoming boundary with runtime schemas (Zod), verify JWT claims, and return structured error codes.
  • Ensure idempotent endpoints for order creation and state transitions to prevent duplicate processing.
Applied Decision (ObjectID Scanner):

Implemented an automatic fallback bridge: runs fast on-device TFLite first; if confidence score < 0.65, escalates to cloud vision, defaulting safely if offline.

STAGE 06 · EXECUTION & VALIDATIONVerification

Executable Implementation & Behavioral Validation

“Does the implementation uphold architectural invariants under edge and failure conditions?”

Implementation translates design into readable, modular code with isolated responsibilities, followed by rigorous verification of both normal and degraded behavior.

  • Keep module responsibilities cleanly decoupled with single-direction dependency flows and strict TypeScript types.
  • Verify system behavior against invalid payloads, boundary extremes, authorization violations, and timeout scenarios.
  • Test database migrations and query performance against real relational engines before production rollout.
STAGE 07 · OPERATE & ITERATEContinuous Loop ↻

Continuous Observability & The Iterative Loop

“How does the system behave under real usage, and what does production feedback teach us?”

Engineering does not end when code compiles or ships. Production telemetry and user interactions reveal real-world assumptions, closing the loop back into problem understanding.

  • Transition focus from 'Does the code compile?' to 'Does the system remain reliable when real users stress it?'
  • Monitor structured logs, error rates, slow database queries, and state anomalies in production environments.
  • Close the loop: feed operational discoveries and constraint shifts directly back into the next architectural iteration.

The Engineering Synthesis

Architecture + Trade-Offs + Production Invariants

Inspect the verified technical record on the Engineering page: multi-dimensional state machines, PostgreSQL Row-Level Security policies, idempotent checkout lifecycles, and live GitHub contribution activity.

Contact

Looking for a software engineer?

Explore the systems I have built, review my technical work, or get in touch to discuss an engineering opportunity or collaboration.

Validation, rate limits, and secure token protection are active.