Skip to content
View FathiGhanem's full-sized avatar

Organizations

@PetJoOfficial @FGGstore

Block or report FathiGhanem

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
FathiGhanem/README.md
Fathi Ghanem — Backend Engineer · Gaming E-Commerce · fggstore.com since 2018

AMMAN, JORDAN  ·  UTC+3  ·  ALWAYS ONLINE

Portfolio fggstore LinkedIn Email Discord


$ 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=research

~ THE ARCHITECTURE

I 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

~ FGGSTORE.COM — THE ONE I OWN

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.


~ THE LOADOUT

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 ]

~ CURRENTLY DEPLOYING

🎓 Khreejo by FGG

Graduation memory products for the Arab market — custom signature books, class yearbooks, digital keepsakes.

Next.js Spring Boot print pipeline

STATUS: BUILDING

🤖 Store Agent

LLM support agent living in FGGStore's DMs. Learned from real conversations, not a prompt guess.

Go Gemini conversation design

STATUS: IN PROD

⚙️ Store Automation

The unglamorous engine room — scrapers, multi-region price intelligence, automated content pipelines that publish without me.

Python Selenium Pillow

STATUS: IN PROD


~ TROPHY CABINET

🏆  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.

~ WHY THE GAMING THING ISN'T A GIMMICK

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.


~ TELEMETRY


~ OPEN CONNECTIONS

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


Portfolio fggstore LinkedIn Gmail Discord


$ exit
> connection closed. store stays open.

Pinned Loading

  1. FGGstore/FGG-XSense FGGstore/FGG-XSense Public

    Use Xbox controllers on a jailbroken PlayStation 5. Reads GIP gamepads over USB and exposes them as a virtual PlayStation controller.

    C 4

  2. FGGstore/FGG-Unpack FGGstore/FGG-Unpack Public

    Extract .zip and .7z archives directly on a jailbroken PlayStation 5. Drop an archive in a watched folder and it unpacks in place — upload 30 GB instead of 150.

    C 2

  3. FGGstore/FGG-PlayPods FGGstore/FGG-PlayPods Public

    Hear your PS5 on any Bluetooth headset — game audio and system sounds streamed over the console's own Bluetooth, no dongle, DualSense stays wireless. Payload for jailbroken PS5.

    C 9

  4. QalamRTL QalamRTL Public

    QalamRTL is a lightweight Chrome extension that fixes Arabic text rendering in AI platforms like ChatGPT and Claude. It intelligently applies RTL formatting while preserving code blocks and mixed c…

    JavaScript 6

  5. TabHush TabHush Public

    Hush your tabs. A Chrome extension that masks tab titles, favicons, and audio in real time during screen sharing, meetings, recordings, and presentations. Features Panic Mode, Screen Share Mode, pe…

    JavaScript

  6. FGGstore/FggStoreCardsBot FGGstore/FggStoreCardsBot Public

    Python