Skip to main content
PORTFOLIO / FIELD REPORT / FILED 2026 / STATUS: ACTIVE

FIVE
DOMAINS.
ONE OPERATOR.

Full-stack developer — Next.js, TypeScript, Node.js. I ship web apps people actually use, plus the occasional thing that isn't one: a Discord bot that passed 50,000 users, a Telegram storefront that took real payments, and a Raspberry Pi HID tool I debug over serial.

SUBJECTEXHIBIT A
Amirreza Mohammadi Afzal
AMIRREZA M. AFZALDEVELOPER
AVAILABLE
0+
USERS ON ORDAKMEMER
0M+
VIEWS FROM VIDEO BOT
0
PRODUCTS SOLD
0+ YRS
SHIPPING PRODUCTION CODE
02

CASEWORK

Six entries, roughly in the order they happened. Scroll — the phone follows along. Each one pushed into a domain the last one hadn't touched — bots, then automation, then hardware, then commerce.

01
SOLD2024 — WHERE IT STARTED

ORDAKMEMER — DISCORD ECONOMY BOT

My first real coding project — a Persian Discord economy and social bot I taught myself JavaScript to build, not knowing the language's name for the first three months. It grew into a full economy sim (jobs, trading, clans, an in-bot social feed) on sharded discord.js with MongoDB, rewritten from scratch four times over five years to keep up with growth. It passed 50,000 users and paid me my first real money from code.

WHAT BROKEevery rewrite happened because I'd modeled economy state directly on Discord's rate limits instead of behind a queue; growth kept exposing that coupling. The 4th rewrite finally decoupled game state from the Discord gateway so a Discord outage doesn't touch the economy.
MATERIALS — NODE.JS · DISCORD.JS · MONGODB · MONGOOSE · CLOUDINARY
02
2023

INSTAGRAM VIDEO CREATOR — MEME VIDEO BOT

Editing every meme clip by hand was too slow, so I built a Telegram bot that turns a forwarded joke or photo into a captioned, watermarked video automatically — rendered with MoviePy/FFmpeg over rotating backgrounds, with Farsi text support. Between the accounts it powered, the videos racked up over 15 million views, and two pages built on it were later sold at 10,000 followers each.

MATERIALS — PYTHON · PYTHON-TELEGRAM-BOT · MOVIEPY · FFMPEG
03
LIVE2023 — OFF THE WEB ENTIRELY

PI DUCKY CONTROLLER

A security-research tool for my own hardware: I wanted to script and trigger USB HID payloads on machines I own without reflashing firmware for every change. Built a Next.js control panel with a drag-and-drop DuckyScript builder that pushes scripts over a REST API to a Raspberry Pi Pico W, which polls every 0.5s and replays them as real keystrokes over USB — no drivers, no software on the target. It's the piece of my work that sits furthest outside typical web dev: debugging happens over serial output, not console.log.

TRADE-OFFchose a Pico W polling the API every 0.5s over a persistent websocket: more latency, but the Pico stays a dumb, stateless client with nothing to reflash or reconnect-manage. When it got flaky, the fix wasn't retry logic — it was moving payload validation off the Pico entirely so it only ever replays bytes it's already been handed.
MATERIALS — NEXT.JS · TYPESCRIPT · MONGODB · REACT-DND · CIRCUITPYTHON
04
2023

REDA — MARKETING SITE FOR A TO-DO APP

Built the public marketing site for Reda, a 24-hour planning and to-do app: landing page through a full blog platform with category filters, comments, and FAQ/testimonial sections. Solo build with an animated Lottie/GSAP hero, Framer Motion transitions, and full SEO. The company's backend has since shut down, but the marketing pages are still live today.

MATERIALS — NEXT.JS · FRAMER MOTION · GSAP
05
SOLD2024 — INTO COMMERCE

NUMHUB — VIRTUAL NUMBER MARKETPLACE BOT

Built and ran this with a business partner: a Telegram bot reselling virtual phone numbers for account verification, aggregating 10 SMS-activation providers behind one wallet-based storefront. Handled real Zarinpal payments, automatic number-freshness checks, and code delivery via resilient polling queues, plus an admin panel for sales by provider and country. We ran it for paying customers and eventually sold the business.

MY ROLEI owned the bot logic, the SMS-provider aggregation layer, and the payments/wallet integration; my partner ran sales and provider relationships. TRADE-OFF — polling queues over provider webhooks, since providers' webhook reliability varied; polling cost latency but meant one code path instead of ten fragile ones.
MATERIALS — NODE.JS · TYPESCRIPT · GRAMMY · MONGODB · ZARINPAL
06
2026 — MOST RECENT

HABLAR — SPANISH LEARNING PWA

Needed to learn Spanish fast by listening and repeating, so I built a spaced-repetition app around shadowing instead of grammar drills: SM-2 review scheduling, an offline-first installable PWA with on-device text-to-speech, and full CRUD for user-authored sentences on Next.js 16 and MongoDB. What started as a tool on my own phone is now installable and used by friends learning alongside me.

MATERIALS — NEXT.JS 16 · REACT 19 · SERWIST
#ECONOMY-BOT
Balance1250 coins
Welcome back, Commander.
ORDAKMEMER
03

MATERIALS

Everything listed here is used in a case above — the file entries are the receipts.

FRONTEND
React
Next.js
TypeScript
Tailwind
Framer Motion
GSAP
BACKEND & DATA
Node.js
MongoDB
Mongoose
REST APIs
NextAuth
Zod
BOTS & AUTOMATION
discord.js
grammY
python-telegram-bot
MoviePy/FFmpeg
Payments
HARDWARE & PLATFORM
Raspberry Pi Pico W
CircuitPython
USB HID
PWA
Vercel
04

FIELD LOG

Daily entries on what I'm learning and building, filed as they happen.

VIEW ALL ENTRIES
05

ARCHIVE

Smaller builds and practice repos — not case studies, just proof I keep building between the real projects.

VIEW ALL REPOS
06

DOSSIER

SUBJECTEXHIBIT B
About Amirreza
STATUSVERIFIED

I started writing code to build a Discord bot for my friends, and spent the first three months not realising the language I was using was called JavaScript. That bot eventually passed 50,000 users and paid me the first money I ever earned from code.

Most of what I build now is for the web — Next.js, TypeScript, Node.js, MongoDB — but the projects I learn the most from are the ones that push past it: a Telegram storefront handling real payments and real customers, a USB HID tool where debugging happens over serial output instead of console.log, and a Spanish learning PWA I built because I wanted to use it myself.

The thread through all of them is that people actually used them. I like problems where shipping turns out to be the easy half and keeping the thing running is the real work.

07 / OPEN A CASE

LET'S WORK
TOGETHER.

I'm always open to new opportunities and discussions.