back to /home
~/projects/ P-01
03 casesfiled 2021–2025
~/projects/P-01/shipped/on-chain

blockvest

NFT marketplace · ML price oracle
RoleLead engineer · CUST capstone
Duration8 months
Team3 engineers
Year2025
+92%oracle accuracy
0failed mints
1.4savg mint t+1
ERC-721standard

Buy, sell and trade NFTs with an ML model that surfaces forward price signals. Every transaction settles on-chain so provenance and ownership stay tamper-proof. Capstone project at CUST.

Overview

blockvest is a full-stack NFT marketplace where every listing carries a forward price signal generated by an in-house ML model. The chain layer holds ownership; the off-chain layer holds the brain. The pitch was simple: stop guessing what an asset is worth, let the data argue for it.

Built as a CUST capstone over 8 months with a team of three. I owned the contract surface, the ML/oracle pipeline, and the API layer that ties them together.

The Problem

NFT marketplaces have a ceiling that has nothing to do with chain throughput. The ceiling is **trust in price**. A buyer browses, sees a number, has no idea whether it's three weeks from a 40% drop or a 10x. Sellers price by feel; buyers buy by vibe; the floor wobbles.

We wanted to build a marketplace where the price wasn't a number a seller typed in — it was a number a model defended.

Every listing should carry its own argument.

The Approach

Three layers that respect each other's job.

**Chain layer.** Plain ERC-721 with a small custom modifier on `transferFrom` that emits an extra `PriceSignalAt` event carrying the oracle's most recent forecast at transfer time. That event becomes the audit trail.

**Oracle layer.** A Python service that pulls comparable-asset history (transfers, listings, floor prices) on a schedule, runs a gradient-boosted regressor per collection, and writes the forecast onto a small Solidity oracle contract via a signer wallet. Refreshes every 4h. Latency was less important than freshness — listing pages always show the *latest* signal, not a real-time fetch.

**Glue layer.** A NestJS API in front, IPFS for metadata pinning, a Postgres mirror of on-chain state for fast reads. The frontend (React + ethers/wagmi) never touches the chain on the read path — it asks the API, which has the latest event log indexed.

Stack Deep-Dive

● project topologyfig.Ascoped to this project
CLIENTSEDGESERVICESDATA / EXTWeb dAppETHERS · WAGMINestJS APIAUTH · CACHEML OraclePYTHON · GBMMint ServiceSOLIDITY · ERC721PostgresINDEX · MIRRORIPFSMETADATAEthereumL1

The oracle writes back to chain so the price signal is itself on-chain history — not a centralised side channel that disappears when the company does.

Results

Backtest on a year of historical data hit 92% directional accuracy for a 7-day horizon on the collections we trained on. Zero failed mints in production. Median mint flow from "click buy" to "asset visible in wallet" lands at 1.4 seconds when chain isn't congested, which is mostly a UX win — wallets stop spinning before users start panicking.

Most interesting outcome wasn't technical — it was that buyers spent more time on listing pages with confidence intervals shown than on listings without. People bid more carefully when the system shows its work.

Gallery

← Back to index
All cases
online/v5.0 · build 2026.05.08/Pakistan → remote

osama
hashmi.

Full-stack engineer building the parts users don't see. APIs that don't fall over, microservices that talk to each other, payment rails, real-time voice/SMS over WebRTC, and the React Native frontends that ride on top.

years shipping
04yrs
since Jul 2021 · 3 teams
primary stack
node · nest
react native
k8s · docker · aws · stripe · twilio

./identity.json

{
  "name":    "Osama Hashmi",
  "role":    "full_stack_engineer",
  "focus":   ["apis", "microservices", "mobile"],
  "runtime": "node · nest · react-native",
  "deploy":  "k8s · docker · aws",
  "replies": "~within 24h"
}

$ uptime

// last 4 years, in numbers
shipping_years    04  // since 2021
services_owned    07  // across 3 teams
languages         06  // ts · py · rust · sol · go · js
deploy_speedup    −50%  // k8s pipeline tuning
system_efficiency +60%  // at BufferSol
realtime_scale    +150% // at Web Stacking
section / 01The Stack

What I build, drawn out.

Most portfolios list tools. I draw systems. Hover any node to see how it fits — from a React Native client all the way down to a Kubernetes pod running NestJS talking to Stripe and a Postgres replica.

● live topologyfig.1v4 · productionhover any node
Service topology: clients (RN/web/web3) → edge (nginx/gateway/websockets) → services (core/payments/comms/contracts) → data (postgres/redis/s3/k8s)CLIENTSEDGESERVICESDATA / EXTReact NativeiOS · ANDROIDReact + ReduxWEB · SPAWeb3 dAppETHERS · WAGMINginxREVERSE PROXYAPI GatewayAUTH · RATELIMITWebSocket HubREAL-TIMENestJS · core-apiMICROSERVICENode · payments-svcSTRIPE · PAYPALTwilio · comms-svcVOICE · SMS · WEBRTCSolidity · contractsEVMPostgresPRIMARY · REPLICARedisCACHE · QUEUES3 + IPFSOBJECTS · NFTSKubernetesEKS · DOCKER
primary path sync call async / event↳ animated packets show production traffic
section / 02Deploy Log

Three teams, one philosophy.

Pick the boring tool that scales. Test the parts that move money or messages. Automate the deploy on day one. Below: a chronological log of what shipped.

MAY 2022 → AUG 2025/ 3y · 4mo

Full Stack Engineer

@ BufferSol Technologies · New York, NY

Built a full-stack product on React Native + NestJS, deployed to Kubernetes. Owned the mobile client and the services it talks to end-to-end — auth, payments, push, plus the IDO‑CRM (accounting, sales pipelines, security staffing, ATIS complaint workflow).

React NativeNestJSKubernetesDockerPostgresStripeAWS
+60%efficiency
−50%deploy time
07services
OCT 2021 → APR 2022/ 7 mo

Backend Engineer

@ Web Stacking · Islamabad, Pakistan

Engineered a microservices architecture wired into Twilio Voice/SMS and WebRTC, routing real-time calls and messages between web users and phone lines. Containerised the lot with Docker, orchestrated on Kubernetes.

Node.jsMicroservicesTwilioWebRTCDockerKubernetes
+150%scalability
voice+ sms
JUL 2021 → SEP 2021/ 3 mo

Mobile Developer

@ KawanBantu · Jakarta

First production gig. Built interactive UI with React + Redux, profiled the client, and cut perceived load on the heaviest screens roughly in half.

ReactReduxJavaScript
+50%client perf
section / 03Selected Work

Three projects, three problems.

From an NFT marketplace with on-chain provenance, to a Twilio-backed comms clone, to a CRM that quietly runs a security firm's back office. Click any card for the full case.

section / 04Toolbelt

Things I reach for without thinking.

Highlighted = primary tools — what I'd start a new system in tomorrow. The bar is intuitive frequency, not skill level. Everything listed I've shipped with.

languages06
TypeScript
JavaScript
Python
Solidity
Rust
Go
backend06
NestJS
Node.js
Microservices
WebSockets
Nginx
Flask
frontend / mobile04
React Native
React
Redux
Expo
infra · deploy07
Docker
Kubernetes
AWS
GitHub Actions
Serverless
Azure
Render
integrations06
Stripe
Twilio Voice
Twilio SMS
Twilio Video
PayPal
Custom Bank Gateways
data04
Postgres
Redis
S3
IPFS
web304
Solidity / EVM
Ethers / Wagmi
NFT contracts
IPFS pinning
education
B.Sc Computer ScienceCapital University of Science & TechnologyIslamabad, Pakistan
section / 06Get In Touch

Send a brief, get a response.

I'm best on long-running engagements where I can own a service end-to-end — backend, mobile, deploy. Architecture and Twilio / payments consults also fine. Drop a note with what you're building.

contact · POST /v1/inbox
nameOsama Hashmi
timezonePKT · UTC+5
overlap~6h EST · ~4h PST
replies~within 24h
osama_hashmi() · full-stack engineer · v5.0 · build 2026.05.08
crafted with html, css, and four years of muscle memory
┌─[ end of file ]─┬─[ thanks for reading ]─┬─[ →  /writing ]─┐
back to /home
~/writing
04 entriesupdated 2026.05
writing/changelog · 4 entries/filed under: technical

the /writing
directory.

Notes I write when something in production teaches me a lesson I don't want to forget. About boring choices, realtime plumbing, deploy pipelines, and the difference between shipping and shipping-shipping.