$ systemctl status fathi.service
● fathi.service — Backend Engineer / Gaming Commerce Operator
Loaded: loaded (/etc/systemd/system/fathi.service; enabled; vendor preset: caffeinated)
Active: active (running) since 2018; 8y uptime
Main PID: 1337 (fggstore)
Tasks: 4 (limit: sleep)
CGroup: /system.slice/fathi.service
├─1337 fggstore --region=MENA --fulfillment=automated --hours=24/7
├─1338 spring-boot --profile=enterprise --scale=national
├─1339 player1 --serve=fathighanem.com --stack=angular
└─1340 dualsense --input=/dev/controller --purpose=researchI run three services. They share a database and a caffeine budget.
┌───────────────────────────┐
│ fathi.ghanem │
│ CS grad '25 · 8y shipping│
└─────────────┬─────────────┘
│
┌─────────────────────────────────┼─────────────────────────────────┐
│ │ │
▼ ▼ ▼
┌───────────────────┐ ┌────────────────────┐ ┌────────────────────┐
│ THE DAY JOB │ │ FGGSTORE │ │ THE LAB │
│ │ │ │ │ │
│ enterprise java │ │ gaming e-commerce │ │ whatever i can't │
│ spring boot │ │ founded 2018 │ │ stop thinking │
│ national scale │ │ digital goods │ │ about at 2am │
│ real users, real │ │ mine. top to │ │ │
│ consequences │ │ bottom. │ │ ships or dies │
└───────────────────┘ └────────────────────┘ └────────────────────┘
pays the bills the real degree keeps it fun
I opened a gaming storefront in 2018, before my first CS lecture. It's still running. Everything under it, I built.
That's not a side project on a résumé — it's eight years of being the engineer, the support desk, the ops team and the person who eats the loss when something breaks at 3am. It's where I learned what "production" actually means.
What's running under the hood:
| System | What it does |
|---|---|
| Auto-fulfillment | Order lands → key delivered. No human in the loop. |
| Payment rails | Local payment parsing built for how MENA actually pays, not how Stripe assumes it does. |
| Price intelligence | Multi-region catalog pricing across dozens of storefronts, reconciled automatically. |
| LLM support agent | Answers store DMs. Trained on 1,100+ real customer conversations. Converts better than I do. |
| Content pipeline | Automated gaming news → translated → rendered → published. Runs itself. |
Gaming e-commerce isn't "an online shop that sells games." It's inventory that doesn't physically exist, payments that don't behave, regional pricing that shifts hourly, and customers who want it delivered now. I've been solving that since I was in high school.
core:
java: [ Java 17, Spring Boot, DDD, modular monolith ]
python: [ automation, scraping, data pipelines, image generation ]
go: [ microservices, LLM agents, high-throughput workers ]
data:
stores: [ PostgreSQL, Redis ]
patterns: [ event-driven, async workers, idempotent fulfillment ]
ship:
infra: [ Docker, Kubernetes (k3s), Hetzner, nginx ]
ci: [ GitHub Actions, Railway ]
daily: [ Linux, Zsh, IntelliJ, git ]
also:
web: [ Next.js, Angular, TypeScript ]
creative: [ Three.js, Remotion, SVG animation ]
domain:
known_for: [ digital goods fulfillment, payment integration,
marketplace pricing, LLM in production ]|
Graduation memory products for the Arab market — custom signature books, class yearbooks, digital keepsakes.
|
LLM support agent living in FGGStore's DMs. Learned from real conversations, not a prompt guess.
|
The unglamorous engine room — scrapers, multi-region price intelligence, automated content pipelines that publish without me.
|
🏆 PLATINUM ─ "Ships While I Sleep"
Built fulfillment that delivers orders at 4am without waking me up.
🥇 GOLD ─ "Cold Start"
Opened fggstore.com in 2018. Before university. Before I knew what
a REST API was. Still running it.
🥇 GOLD ─ "Cleared the Enterprise Raid"
Dropped into an unfamiliar enterprise Java stack and shipped to
production for a system operating at national scale, where "it
works on my machine" is not a defence.
🥈 SILVER ─ "Speaks Both Languages"
Fluent in Spring Boot AND in what a 17-year-old customer means
when they message "بدي كود" at midnight.
🥈 SILVER ─ "Reads the Room"
Discovered that backing off when a customer isn't convinced
converts better than pushing. Shipped it into the bot.
🔒 LOCKED ─ "Sleep Schedule"
0.0% of players have earned this trophy.
I don't put "gamer" on my profile for the aesthetic. I've spent eight years selling to gamers, supporting gamers and being one — which means when I design a checkout flow, a pricing model or a support conversation, I already know how the person on the other end thinks. Most engineers building for this market are guessing. I'm not.
Also, yes: competitive FPS after deploys, RPGs on weekends, and GG WP is a legitimate commit message in my repos.
Hiring backend? I ship Java/Spring at enterprise scale and I've never had a manager tell me what "production down" feels like — I already knew.
Building in gaming or e-commerce? I've made every mistake in this space already. Let's talk before you make them too.
Full case studies and the long version of all of this → fathighanem.com
$ exit
> connection closed. store stays open.


