Usman Arif — Full-Stack Software Engineer
Usman Arif is a full-stack software engineer at DoonKhav Technologies, shipping production marketplaces, e-commerce and mobile apps with NestJS, Next.js, Django, Flutter, PostgreSQL & Docker. Remote software development for startups, SMEs and agencies worldwide. Explore case studies, services and contact.
Usman Arif is a full-stack software engineer based in Kotli, Azad Kashmir, currently a Full-Stack Software Engineer at DoonKhav Technologies. He builds web products end to end — from database migrations to polished front-end interfaces — most at home with Django, FastAPI and Flask on the backend, Next.js and React on the front end, and AWS, Docker and Kubernetes for deployment.
Download Usman Arif's CV / résumé (PDF)
Skills & stack
Backend
- Django
- Flask
- FastAPI
- Node.js
- NestJS
- Express
- Prisma
- PostgreSQL
- CouchDB
- Redis
- RabbitMQ
- Socket.IO
- Stripe
Frontend & Mobile
- React
- Next.js
- TypeScript
- Flutter
- Tailwind
- Jinja
- HTML/CSS
DevOps & Cloud
- AWS
- Docker
- Kubernetes
- CI/CD
- GitHub Actions
- Terraform
- Nginx
Software development services
Reliable full-stack development for startups, SMEs and digital agencies anywhere — web apps, marketplaces, e-commerce and mobile, built and shipped end to end.
Remote development, worldwide. A senior team based in Pakistan that works across your business hours, with daily overlap for stand-ups, calls and reviews. Competitive rates, senior delivery.
Software development services · Projects & case studies · Blog — AI agents, RAG & LLMs
- Web app development — Custom web applications built end to end with Next.js, React and TypeScript — fast, accessible and built to scale.
- Backend & APIs — Robust REST APIs, auth, payments and admin tooling in NestJS, Django and FastAPI, with PostgreSQL and message queues.
- E-commerce & marketplaces — Multi-vendor marketplaces, storefronts, carts, checkout and Stripe escrow payments — the exact stack behind Barqibazar and Afro Market.
- Mobile apps — Cross-platform iOS + Android apps in Flutter, sharing one API with your web product so features ship to both at once.
- DevOps & deployment — Dockerised deploys, CI/CD, Nginx, AWS and self-managed VPS setups — reproducible releases and painless rollbacks.
- Maintenance & support — Ongoing feature work, monitoring, bug fixes and performance tuning on a retainer or day-rate basis.
Featured projects & case studies
BarqiBazar — local shop POS → online marketplace with delivery (live site)
One platform that takes a local shop from an offline-first POS to an online store with its own delivery fleet — desktop POS, CouchDB catalog sync, customer + rider apps, and four operations portals.
Client: BarqiBazar — all-in-one commerce platform for local retailers (POS + online store + delivery). Industry: Retail tech · Point of sale · Q-Commerce / On-demand delivery. Problem: Local shops had no affordable way to run their business and sell online at the same time. Off-the-shelf POS software was offline-only and disconnected from any marketplace, and delivery apps carried a separate, hand-typed catalog that drifted out of sync with what was actually on the shelf. There was no bridge from a shop with a cash counter to a store selling online across the city — no franchise → store → rider hierarchy, no automated way to assign deliveries, and no wallet or ledger to move money safely. Solution: I built BarqiBazar as a franchise-based, multi-tenant commerce platform with three connected layers a merchant adopts in order. Layer 1 is an offline-first desktop POS that runs the whole shop — products, customers, suppliers, orders and profit & loss — working with or without internet and syncing to the cloud via CouchDB replication. Layer 2 is a catalog-sync pipeline: a dedicated NestJS ingestion service with per-store, runtime-configurable data sources pushes the merchant's real catalog live, so the shelf and the online storefront are one product truth — no re-typing, no drift. Layer 3 is the marketplace + delivery: shoppers browse city-scoped stores in a React Native app, each order becomes a delivery job auto-matched to nearby riders with a secure OTP handoff, and an in-house wallet + cash-on-delivery ledger settles money to store, rider and franchise with concurrency-safe, authorization-hardened guards. Independent NestJS microservices — identity/IAM, core operations, orders + bidding, wallet/ledger, catalog ingestion and notifications — each own their PostgreSQL database via Prisma and talk over a RabbitMQ event bus behind a gateway, with staff running the whole network from four role-based portals. Technology: NestJS, TypeScript, Prisma, PostgreSQL, CouchDB, Redis, RabbitMQ, Firebase Auth, React, Next.js, React Native, Docker. Result: A true on-ramp from local to online — the same catalog that runs the counter becomes the online storefront, with no re-typing or drift; Paper and offline tills replaced by a real system of record (inventory, customers, suppliers, P&L) that works with or without internet; Manual dispatch replaced by an automated, city-by-city delivery marketplace; Disconnected tools replaced by one platform spanning POS, online store, delivery, payments and operations.
Afro Market (EFG) — B2B cross-border trade marketplace · UAE ↔ Africa (live site)
A cross-border B2B trade marketplace moving real money through Stripe escrow — an 8-service NestJS backend, real-time chat, a 5-language web app and Flutter mobile apps.
Client: EFG Hub Technologies — Afro Market (efgafromarket.ae). Industry: B2B marketplace / Cross-border trade & commodities. Problem: African suppliers had no trusted digital channel to reach international buyers. Trade happened over WhatsApp and email with no verification, no secure payments and no protection for either side — buyers risked paying for goods that never shipped, and suppliers risked shipping goods they were never paid for. There was no single system to manage supplier onboarding, listings, quotations, orders, payments or disputes. Solution: A production marketplace built on eight independently deployable NestJS services (auth/KYC, catalog, orders/payments, chat, notifications, media, marketing, push) that each own a PostgreSQL schema and communicate over a RabbitMQ event bus. It moves real money through Stripe Connect: the buyer pays into escrow, funds are held automatically on a payment webhook, the supplier ships, and an admin releases the payout to the supplier's connected account only after delivery is confirmed — so neither side has to trust the other, they trust the platform. Delivered as one React app serving Admin, Buyer and Supplier roles in five languages (with Arabic right-to-left), hardened with 2FA (TOTP), plus offline-first Flutter buyer and supplier apps sharing the same backend and escrow ledger. Technology: NestJS, TypeScript, PostgreSQL, Prisma, RabbitMQ, Redis, Socket.IO, Stripe Connect, Firebase Cloud Messaging, AWS S3, React 19, Flutter, Docker, Nginx. Result: A real business runs cross-border trades through the platform at api.efgafromarket.ae; The entire trade lifecycle is automated: onboarding → listing → quote → order → escrow → payout; A payment-critical, multi-role, multi-language, event-driven system — not a CRUD demo.
Nuxused — multi-tenant school management SaaS (live site)
A multi-tenant school-management SaaS — platform control plane, per-school portals and one Flutter app for parents, teachers and students.
Client: Nuxused (SaaS product). Industry: EdTech / School management SaaS. Problem: Schools each want their own system and nobody wants to run one. Selling school management as SaaS moves the hard problems up a level: provision a new school without touching a server, keep one school's data provably invisible to another, and handle the reality that subscriptions lapse — without cutting a school off from its own records or letting an unpaid tenant keep writing. And the same domain has to be right for three very different audiences at once — a platform operator thinking in tenants and dunning, a school admin thinking in sections and payroll, and a parent thinking about one child's attendance and one bill. Solution: NestJS services over PostgreSQL, with Redis for caching and background work, containerised with Docker behind Nginx on AWS EC2. Two distinct web surfaces sit on one API — a platform control plane (tenants, schools, franchises, subscriptions, invoices, payments, plans, roles, audit logs, service health) and the per-school portal — plus a Flutter client that serves parents, teachers and students from one codebase, routed by role at sign-in. Subscription state is a first-class platform concern: an expired school drops into read-only mode, with writes disabled, its own data still fully readable and renewal one click away. School provisioning is an instrumented async pipeline with a transactional outbox, so partial failures surface as real operational signals instead of vanishing into a log file. Technology: NestJS, TypeScript, PostgreSQL, Redis, React, Next.js, Flutter, Docker, Nginx, AWS EC2, JWT. Result: New schools provisioned as SaaS tenants without server work; The commercial model (subscriptions / dunning) is enforced at the platform layer, not per feature; Silent partial failures made visible — provisioning, outbox and auth-setup retries all surfaced.
Smart Trip Manager — trip-planning & travel marketplace
A trip-planning marketplace for Kashmir — plan a route on a map, pick a vehicle and hotel, and get a predicted total cost, with real-time chat and an AI assistant.
Client: Final-year project (FYP). Industry: Travel / Tourism marketplace. Problem: Every year students and tourists arrive in Kashmir with no easy way to work out where to stay, how to get around, or what a trip will actually cost. Accommodation and transport are scattered across word-of-mouth and phone calls, with no single place to compare options, book them, or estimate a budget before committing. Solution: Smart Trip Manager is a two-sided marketplace. Sellers — hotel owners and vehicle owners — list rooms and vehicles; buyers browse, book and chat with them in real time. On the home page a buyer picks a start and destination on the map; the platform draws the shortest route with distance and drive time, then predicts a total cost from the selected vehicle's per-kilometre rate and the chosen hotel's nightly rate across the trip dates. An AI assistant answers platform questions and checks real-time availability, so a first-time visitor can plan, price and book a whole trip in one place. Technology: React, Node.js, Express, PostgreSQL, Google Maps API, Real-time chat, AI assistant / chatbot. Result: A first-time visitor can plan, price and book a full Kashmir trip in one place; A transparent, up-front cost estimate before booking; Hotels and vehicle owners reach travellers directly through one marketplace.
An offline-first reception system in a government hospital — Electron + PouchDB, four OPD desks, government slips and day-end cash reconciliation.
Client: Government district hospital (AJK). Industry: Healthcare / Hospital administration. Problem: The hospital ran reception on paper. Four OPD desks — General, Specialist, Laboratory and Emergency — each registered patients, took a different fee and issued a different government-formatted slip, and none of it reconciled against the cash drawer at day end. Any replacement had to keep working when the network didn't, because a reception desk that stops taking patients is not an option in a district hospital. Solution: Two Electron apps. A server app runs on the hospital's main PC, hosting an in-process Express API plus local PouchDB databases — the only machine that holds data. The reception desks run the same React interface with no database, pointed at the server's LAN address. Every read and write hits PouchDB locally, so there is no runtime dependency on the internet; CouchDB replication is an optional, off-by-default concern for multi-site backup. Searches and the accountant's date-range reports run on indexed views with pagination, so the app stays responsive into hundreds of thousands of visits, and fees are config-driven so a price change is a settings edit, not a redeploy. Slips render as full A4 government documents with the AJK Health Department header. Technology: Electron, React, Node.js, Express, PouchDB, CouchDB, LAN server / client. Result: Paper reception replaced with a resilient local-first system on low-end hospital PCs; Cash reconciles desk-by-desk at day end instead of not at all; The government slip is treated as a hard interface spec — precise output, near-zero input friction.
KhaliSeat — intercity ride & empty-seat marketplace (live site)
An intercity ride & empty-seat marketplace — drivers post their spare seats, travellers search by route, date and gender and book a ride.
Client: KhaliSeat (Azad Kashmir / Pakistan). Industry: Travel / Ride-sharing & transport. Problem: Huge numbers of people travel city to city every day, and just as many cars, vans and vehicles make those same trips with empty seats. Meanwhile other travellers struggle with unreliable, uncomfortable public transport. There was no simple, trusted place to match a driver's spare seats with the people who need them. Solution: KhaliSeat lets anyone with a spare seat post a ride ad — where they're travelling from and to, how many seats are available, the price and the trip details — and lets travellers find it. Riders search by pick-up city or airport, drop-off, travel date and even preferred gender for comfort and safety, browse the matching ride ads, and contact the driver to book their seat. It's built with Django and server-rendered templates styled in Tailwind CSS on PostgreSQL — fast pages that are cheap to run and easy to maintain. Technology: Django, Python, Jinja / Django templates, Tailwind CSS, PostgreSQL, Docker. Result: Empty seats on trips people already make get matched with travellers who need them; A cheaper, more comfortable alternative to crowded public transport; Gender-aware search adds a comfort-and-safety option for travellers.
An electronics-shop POS with cost/retail stock valuation, warranty claims, supplier/customer credit and true net-profit analytics.
Client: Electric & electronics retail shop. Industry: Retail / Consumer electronics. Problem: An electronics and electrical retailer needed more than a cash till — it had to track stock value across mobiles, laptops, accessories, wiring, lighting and switches, handle warranty claims, manage supplier and customer credit, log expenses, and still show real profit after all of it. Solution: A web-based POS and management system with a POS terminal for sales and a full back office. The dashboard reports total sales, gross and net profit (after expenses), items sold, average order, returns, open warranty claims, receivables and payables, stock value and low-stock — with a sales-and-profit trend and a payment-method split across card, mobile and cash. Inventory values stock at both cost and retail, breaks it down by category and raises restock alerts; warranty, suppliers, customers, expenses, reports and role-based users round it out. Technology: React, TypeScript, Node.js, Express, PostgreSQL, Recharts, Receipt printing. Result: One system covers sales, inventory, warranty, credit, expenses and profit; Real net profit is visible after expenses — not just takings; Stock is valued at cost and retail with automatic low-stock alerts.
ThreadPOS — garments & clothing retail POS
A variant-aware garments & footwear POS with size/colour inventory, supplier and returns handling, and department-level profit analytics.
Client: Garments & cloth house. Industry: Retail / Apparel & footwear. Problem: A clothing and footwear retailer couldn't reliably track stock across sizes, colours and departments, billing at the counter was slow, and there was no clear picture of net sales, gross-profit margin, top products or how each department performed. Solution: A web-based POS and management system organised into Sell (POS), Orders, Returns, Products, Inventory, Suppliers, Customers, Users, Reports and Settings. Products carry apparel variants (size, colour, age range); the dashboard reports net sales, gross profit and margin, order count and refunds over Today / 7-day / Month / Year ranges, with sales-and-profit trends, a payment-method split, top products by revenue and department revenue share — all in a themeable light/dark UI. Technology: React, TypeScript, Node.js, Express, PostgreSQL, Recharts, Receipt printing. Result: Accurate stock across every size, colour and department; Gross-profit margin and department performance are visible, not guessed; Faster counter checkout with a clean, themeable interface.
Cafe POS — restaurant & cafe point-of-sale
A touch-friendly restaurant & cafe POS with dine-in tables, takeaway/delivery, a size-variant menu and hold-order support.
Client: Fast-food restaurant / cafe. Industry: Food & beverage / QSR. Problem: A busy fast-food restaurant needed to take orders quickly at the counter across dine-in, takeaway and delivery, keep track of tables, apply per-item sizes and prices without mistakes, and keep sales and orders in sync during the rush. Solution: A web-based POS where staff pick an order type — Dining (with table selection T1–T15), Takeaway or Delivery — then build the order from a categorised menu (pizza, burgers, shawarma, fried chicken, pastas, steaks, fries, salads, drinks) with per-size pricing. Orders can be held and resumed during a rush, sent to checkout, and every sale flows into a separate management portal for products, orders and reporting. Technology: React, TypeScript, Node.js, Express, PostgreSQL, Receipt printing. Result: Faster, more accurate order-taking across dine-in, takeaway and delivery; Table-aware ordering for a busy dining floor; Sales and orders tracked in one management portal.
Bakehouse POS — bakery point-of-sale & management
A web-based bakery POS with fast sales, product/customer management and live revenue, category and payment analytics.
Client: Bakery / cake shop. Industry: Bakery / Food retail. Problem: A bakery was running sales, products and customers on paper and had no clear view of daily revenue, average order value, best-selling categories or how the month was trending. Solution: A web-based POS and management system that runs on the shop's own computer. Staff ring up sales from a product catalog, manage products and customers, and the dashboard turns every sale into live insight — today's sales, this month, average order value, a 30-day daily-revenue trend, sales by category and a payment-method breakdown — with role-based access separating owner/super-admin from counter staff, and reports for the numbers that matter. Technology: React, TypeScript, Node.js, Express, PostgreSQL, Recharts, Receipt printing. Result: Daily sales, average order value and monthly trend visible at a glance; Products, customers and orders managed in one place instead of on paper; Runs on the shop's own PC — no dependence on a flaky connection.
StayDesk — hotel management system
A hotel management system with live room availability, guest billing and occupancy reporting.
Client: Independent hotel. Industry: Hospitality. Problem: An independent hotel was juggling reservations, check-ins, room status and guest bills across paper registers and disconnected sheets — leading to double bookings, uncertain room availability and slow, error-prone billing. Solution: A hotel management system with a React front end on a NestJS + PostgreSQL API, deployed on-premise with Docker so it runs reliably on the hotel's own network. It handles a reservations calendar, front-desk check-in/out, live room and housekeeping status, guest folios with invoice & receipt printing, and occupancy & revenue reporting. Technology: React, NestJS, PostgreSQL, Docker, Node.js, ESC/POS receipt printing. Result: No more double bookings — availability is always live; Faster check-in/out and cleaner guest billing; Occupancy and revenue visible without manual tallying.
NexShare — Instagram-style social app · hobby project (live site)
A creator-first, Instagram-style social app built solo — fast, accessible and live on the web.
Client: Personal / hobby project. Industry: Social media. Problem: I wanted to build a photo-sharing social app from scratch — an Instagram-style experience — to explore feed design, snappy interactions and accessibility done properly, rather than as an afterthought. Solution: NexShare — 'share the moment, skip the noise' — is a social space for people who make things: a clean photo feed, a discovery grid that filters by taste, creator profiles, and likes and comments with instant, no-reload interactions. It's built with Next.js + React and Tailwind CSS, with a focus on fast feed rendering, intentional motion (with reduced-motion support), keyboard accessibility and semantic HTML. Deployed on Vercel. Technology: Next.js, React, TypeScript, Tailwind CSS, PostgreSQL, Vercel. Result: Snappy feed rendering and instant interactions; Accessibility built in from the start, not bolted on; A polished end-to-end product built solo, for fun.
Experience
- Full-Stack Software Engineer, DoonKhav Technologies · Kotli, AJK (Dec 2025 — now) — Building and shipping production commerce and SaaS platforms end to end — TypeScript/NestJS microservices, Next.js & React dashboards and React Native apps, containerised with Docker and deployed on AWS. Own the full pipeline, from database schema to release.
- Full-Stack Web Developer, Netzing Technologies · Kotli, AJK (Dec 2024 — Dec 2025) — Full-stack web development on Django and Django REST Framework — designing REST APIs, auth, admin tooling and PostgreSQL data models behind React/Next.js front-ends, and taking features from spec to production.
- Junior Web Developer, Logicexer · Kotli, AJK (Jan 2024 — Nov 2024) — Built and maintained web applications with Django and modern JavaScript — REST endpoints, server-rendered templates and responsive UIs — growing from intern into owning features end to end.
- Web Development Intern, Logicexer · Kotli, AJK (Sep 2023 — Jan 2024) — Where it started — learned professional web development on the job: Django, HTML/CSS/JavaScript, Git workflows, and shipping real features under code review.
Writing — AI agents, RAG, LLMs & engineering
Everyone's shipping 'agents' now, and most are a prompt in a for-loop. Here's what actually separates a flashy demo from something you'd trust in production.
An agent is just an LLM in a loop with tools and a stopping condition. The magic isn't the model — it's the tool design, the guardrails, and knowing when to hand back to a human.
Retrieval-Augmented Generation is easy to demo and hard to trust. The model usually isn't hallucinating because it's dumb — it's because you fed it the wrong chunks.
RAG failures are almost never the LLM — they're retrieval. Fix chunking, add hybrid search and a reranker, and evaluate retrieval on its own before you blame the prompt.
The 'best model' question is the wrong one. In 2026 the winners route between a fast, cheap model and a frontier one, and let evals — not benchmarks — decide.
The right model is the smallest one that passes your evals at your latency and cost. Route between tiers, keep the provider swappable, and stop paying frontier prices for classification.
The Model Context Protocol turned 'tool use' from bespoke glue into a standard. Here's what it is, why it caught on so fast, and where the sharp edges hide.
MCP is a standard way for models to discover and call tools and data sources — USB-C for LLM tools. Convenient, but every connected server is new attack surface, so treat tool output as untrusted.
Every RAG tutorial reaches for a shiny vector database. Most apps would be perfectly happy with pgvector and the Postgres they already run.
Under roughly a million vectors, pgvector on your existing Postgres is usually enough. Reach for a dedicated vector database when scale, heavy metadata filtering or hybrid search demand it.
You wouldn't ship an API without tests. LLM features are no different — except 'correct' is fuzzy, so you need evals, not just asserts.
You can't ship non-deterministic features on vibes. Build a small eval set, grade with hard assertions plus an LLM judge, and run it in CI so quality regressions fail the build.
Hot take: Friday deploys are fine when your pipeline actually trusts you back. A love letter to boring, bulletproof CI/CD.
'Never deploy on Friday' is a symptom, not a rule. If shipping is scary, fix the pipeline — tests, fast rollback, feature flags — and any day becomes safe.
When to reach for FastAPI, when Django earns its keep, and how I let them coexist in one product without starting a civil war.
Django for the batteries — admin, ORM, auth. FastAPI for the hot, async, typed API paths. They coexist happily when you split by responsibility, not by dogma.
A brutally honest tour of the k8s learning curve — the YAML tears, the aha moments, and whether you actually need it (spoiler: maybe not).
Kubernetes is incredible and probably overkill for you. Learn it, respect it, and reach for a boring platform first — adopt k8s when scale actually demands it.
Every senior dev has a 3am war story. Here is my system for staying calm, reading logs like tea leaves, and not making it worse.
In an incident, slow down. Stop the bleeding first, change one thing at a time, read the logs before touching anything, and write it all down.
I finally get RSCs, so let me save you the six tabs of confusion. What runs where, and why your fetch is in the wrong place.
Server Components run on the server and ship no JS; Client Components add interactivity. Default to server, drop to client at the leaves where you actually need state or events.
Your builds are slow because your Dockerfile is lying to the cache. Reorder five lines, reclaim minutes on every push.
Order your Dockerfile from least- to most-frequently-changed. Copy dependency manifests and install before copying source, and every unchanged build reuses the cache.
Contact & profiles