Portfolio — operational
Deployed just now · f3d687c
SOFTWARE DEVELOPER · AI · AUTOMATIONOpen to full-time engineering roles

Nurudeen  SalihuFull-stack developer, Abuja

I work on the unglamorous parts: service boundaries, access control, and the automation that removes work nobody should be doing by hand. Three years of it, mostly on internal systems other people depend on to do their jobs.

hourly → <1sData sync latency, after replacing batch updatesJD Marc Limited
−40%Repetitive workflow steps removed by automationJD Marc Limited
9Departments behind one role-based access modelJD Marc Limited
99.9%Uptime held across staging and productionMonitoring and tuning
Work

Three systems, in the order I would defend them.

Each one below is something I designed, shipped, and then had to keep running. The diagrams are the actual shape of the system, not decoration.

Case 01 / 03Operational

Multi-department operations platform

Built at JD Marc Limited / production, internal

A single workspace replacing nine departments' worth of spreadsheets and email threads. Staff, HR, and admin each see a different application, enforced at the database rather than in the interface.

The hard part: nine departments wanted nine different data shapes, and building nine schemas would have meant nine migrations every time something changed. I built a generic record layer on a single jsonb table, with department modules declaring their own fields on top — one schema, nine applications. Access is enforced with row-level security policies for the Admin, HR, and Staff tiers, so a bug in the frontend cannot leak another department’s records.

What it produced: reporting that used to arrive as an hourly batch now lands in under a second over a realtime channel, and roughly 40% of the repetitive steps in cross-department handoffs are gone.

React, Vite, Supabase (Postgres, RLS, Realtime), WebRTC signalling, TypeScript

Browser clientAuth + RLSAdmin / HR / StaffProcurementProjectsHRFinance+ 5 more modulesmodule_recordsone jsonb tablerealtime channelHandoffs tracked across module boundaries
One schema, nine department applications.
Case 02 / 03Archived

Office management on service boundaries

Personal build / microservices and deployment practice

The same business problem rebuilt the other way: five-plus independent services behind an API gateway, each owning its own data, talking over HTTP and a message broker.

The hard part: once services own separate data, a single user action spans several of them. I used a Controller–Service–Repository layout so the transport layer never touches persistence, issued JWTs with roles at the gateway so downstream services trust one authority instead of each re-checking credentials, and pushed anything that could tolerate delay onto RabbitMQ rather than a synchronous call chain.

What I got from it: a deployment story I can actually explain — containers per service, Kubernetes manifests, and a GitHub Actions pipeline that builds, tests, and rolls out on merge.

Node.js, Express, MongoDB, RabbitMQ, Docker, Kubernetes, GitHub Actions

ClientAPI gatewayissues JWT + role claimsUser svcPost svcComment svcown dbown dbown dbRabbitMQ events
Five services, one trust boundary, async where it is allowed.
Case 03 / 03Archived

Aladdin Drive — automotive commerce

Personal build / payments and authentication

A digital showroom that has to take real money: listings, checkout, invoicing, and an admin side for products, users, and orders.

The hard part: payments are where a tidy demo starts lying to you. Two providers, two webhook shapes, and an order that must not be marked paid twice if a webhook retries. I made order state transitions idempotent and driven by the provider callback rather than the browser redirect, so closing the tab mid-payment does not lose the order.

Next.js, TypeScript, Tailwind, shadcn/ui, Auth.js (Google OAuth + magic link), Stripe, PayPal, MongoDB

StorefrontAuth.jsOAuth / magic linkCart + checkoutStripePayPalwebhookOrder state machineidempotent, retry-safeMongoDBAdmin panel
Order truth comes from the webhook, not the redirect.
Also built01 / 02
Archived

File storage application

Drag-and-drop uploads with rename, sort, and delete, backed by Firebase Storage for blobs and Firestore for metadata — with optimistic UI so the list updates before the upload finishes, and rolls back if it does not.

Next.js, TypeScript, shadcn/ui, Firebase

Archived

Animated portfolio build

An earlier front-end exercise in scroll choreography: GSAP timelines, Framer Motion transitions, and Lenis smooth scroll, with a contact route wired through Nodemailer and environment-scoped credentials.

React, Next.js, GSAP, Framer Motion, Nodemailer

How I work

What you would actually get if you hired me.

Access control first

I put authorisation at the layer that cannot be bypassed — row-level policies, gateway-issued claims — before I write the screen that uses it. Hiding a button is not a permission model.

Automate the boring path

Most internal software is people retyping things into a second system. I look for that first, because it is usually the largest measurable win available and nobody has been asked to fix it.

Own it after it ships

Every system here, I also had to keep running — monitoring, tuning, and being the person who gets the message when it breaks. It changes how you build the second one.

Stack

Sorted by what I would be confident on in week one.

Daily
I have shipped and maintained production code in these.
TypeScript, React, Next.js, Node.js, Express, PostgreSQL / Supabase, MongoDB, Tailwind, Git
Working knowledge
Used on real builds; I would want a code review on the edge cases.
Docker, GitHub Actions, RabbitMQ, Kubernetes, AWS (EC2, S3), Firebase, Nginx, Redux Toolkit, WebRTC, Stripe / PayPal
Learning
In front of me right now, not on my CV as expertise.
Python for data analytics (IBM SkillsBuild), C and algorithms (CS50), Go
Journey

Where the work happened.

Jul 2025 — Mar 2026
Full-Stack Developer
JD Marc Limited, Abuja

Designed and shipped the multi-department operations platform: SSO and role-based access replacing shared credentials, a realtime sync layer that took reporting from hourly batches to sub-second, and automation pipelines that removed roughly 40% of repetitive workflow steps. Held 99.9% uptime across staging and production.

Feb 2024 — Jan 2025
IT & Data Manager
Private Flyers International, Kaduna

Ran IT infrastructure and enterprise data systems for a private aviation firm. Tightened data integrity and security practice, and automated reporting that had been manual — cutting the time to produce it by about 30%.

Sep 2021 — Oct 2022
Network Service Agent
National Assembly of Nigeria, Abuja

Kept network, hardware, and communication infrastructure running across departments of a government institution — the first job where being wrong meant someone else could not work.

2019 — 2023
B.Sc. Computer Science
Federal University of Lafia

Currently extending it with CS50 from Harvard and a data analytics certificate through IBM SkillsBuild.

Tell me what is breaking.

I am looking for a full-time engineering role where I would own a real part of a system. If you have read this far, the fastest thing is an email — I answer within a day, and I am happy to walk through any diagram above on a call.

Email
LinkedInView profile
Based inAbuja, Nigeria (WAT)
ReferencesOn request