Open to internship & part-time work

Ahmad Nasser

Gameplay Programmer

Godot 4 / GDScript · Full-stack with Next.js + Supabase

I build real-time game systems in Godot 4 and ship full-stack products with Next.js. Latest: Jadwlak, a course planner live across all four Beirut Arab University campuses, and a party game where eight phones join over a custom WebSocket server.

Games built
06
Global Game Jams
02
Live web app
01
Certificates
20
Now building
Yalla Tfaddal
About

I'm a gameplay programmer based in Tripoli, Lebanon. Most of my work is in Godot 4 and GDScript: real-time multiplayer networking, client–server architecture, autoload system design, 3D tower defense and Arabic-language games, including two Global Game Jam entries.

In 2026 I took the same approach to the web. Jadwlak, my course planner for Beirut Arab University students, runs Next.js and Supabase on Cloudflare Workers, with a Playwright scraper that re-syncs the catalog on a schedule built around BAU's registration calendar. Games or web, I care about the full loop: design the system, put it in front of real users, ship a build that holds up.

This semester I became Tech Lead of Google Developer Groups on Campus at BAU's Tripoli campus. For the club fair I built our booth app: five tech mini-games and a live leaderboard, played by 50 students. Outside of code I write narrative design and dialogue. I'm reading Computer Science and English concurrently, graduating Fall 2027, and I'm open to internship and part-time work now.

Work

Selected work

Case 01 2026 · live

Jadwlak جدولك

Course Scheduling Web App

BAU's official system lets students register for courses but not see their week before committing. Jadwlak lets them build that week first: search the catalog, compare three plans, catch every clash, then register.

campuses covered
4
end-to-end tests
74
a year to run: just the domain
$14
student accounts needed
0
  1. GitHub Actionsregistration-calendar cron
  2. then, via run: Playwrightheadless scraper
  3. then, via upsert: SupabasePostgres + RLS
  4. then, via 1 query/5 min: Cloudflare edgecatalog cached 5 min
  5. then, via fan-out: Every studentplans in localStorage
Catalog pipeline

The hard part

Registration day sends the whole student body to the planner in the same few hours, and it all has to fit in free tiers. The catalog API is cached at Cloudflare's edge for five minutes, so the entire campus costs one Supabase query per five minutes, and returning visitors get a 304 instead of the full catalog. Students never make an account: plans live in localStorage and no personal data is collected.

What I built

  • Full course catalog across Tripoli, Beirut, Debbieh and Bekaa: three parallel plans, real-time clash detection, placeholders, undo, and exports to .ics, PDF or CRNs
  • A headless Playwright scraper on GitHub Actions, scheduled around BAU's registration calendar: daily during registration months, weekly the rest of the year
  • Built for the open internet: Upstash sliding-window rate limits on every API route, a per-request nonce CSP, and row-level security so only the admin can write
  • Moved hosting from Vercel to Cloudflare Workers through OpenNext, and wrote 74 Playwright end-to-end tests, 29 of them security checks
  • Next.js 15
  • React 19
  • Cloudflare Workers
  • OpenNext
  • Supabase
  • Postgres + RLS
  • Upstash Redis
  • Playwright
  • GitHub Actions
  • Chrome MV3
Case 02 2026 – present

Yalla Tfaddal

Local Multiplayer Party Game · Solo

A Jackbox-style party game, fully in Arabic. Up to eight players scan a QR code on the TV and play from their phone's browser, with nothing to install.

players per room
8
minigames
9
autoload singletons
6
apps to install
0
  1. Phone ×8browser, no install
  2. then, via scan QR: Cloudflare tunnelLAN-IP fallback
  3. then, via route: HTTP :8080 · WS :9080controller page · live input
  4. then, via session token: Godot hostTCPServer, 1 peer per client
  5. then, via signals: 9 minigamesshared scoring framework
How a phone becomes a controller

The hard part

Godot's built-in WebSocketMultiplayerPeer dropped every existing client whenever a new one connected. I replaced it with my own networking layer on a raw TCPServer, one WebSocketPeer per client, then added session tokens so a phone that locks mid-game rejoins its own player slot instead of arriving as a new player.

What I built

  • Two-channel server: HTTP on :8080 serves the browser controller, gameplay runs over WebSocket on :9080
  • Six autoloads (game state, networking, HTTP, tunnelling, audio, UI) and nine minigames on one shared scene-flow and scoring framework
  • A QR encoder written in pure GDScript, no addons, plus automatic Cloudflare tunnel setup with a LAN-IP fallback for offline play
  • Structured playtests exposed disconnect and rejoin failures; I scoped and shipped a stability pass to fix them
  • Godot 4.7
  • GDScript
  • WebSockets
  • TCP / HTTP
  • Cloudflare Tunnel

More games

All on itch.io ↗
Cover art for The Veiled Arcana

Memory Tile GameTeam of 5 · 2026

The Veiled ArcanaGGJ 2026

A memory tile game where matching rules shift with each active mask. Built for Global Game Jam 2026 with a team of 5 — card system, mask-switch mechanic, and a full AudioManager autoload driving music and SFX across all game events.

Cover art for Tower Tiles

3D Tower DefenseSolo · 2025

Tower Tiles

A 3D tower defense with grid-based tile placement, tile validation, and a resource economy gating upgrades. Enemy pressure is driven by a continuous spawn curve rather than discrete waves. Designed, built, and shipped solo — including the HTML5 web export.

Cover art for Last Stand Standing

2D Bullet HellEtherX Games · 2024

Last Stand Standing

A lemonade stand, a burger stand, and a candy stand wage war. Three asymmetric combat styles, one chaotic bullet-hell — shipped with EtherX Games in 2024.

Cover art for Karma

2D ActionEtherX Games · 2024

Karma

Wipe out the bugs. Protect your plant. A focused 2D action game built on precise movement and resource protection — shipped with EtherX Games in 2024.

Cover art for Dizzy Dash

3D PlatformerTeam of 6 · 2024

Dizzy DashGGJ 2024

A 3D platformer where each collected martini progressively warps your controls. Built for Global Game Jam 2024, Beirut with a team of 6 in 48 hours — integrating 2D art and 3D models from four artists into a shipping build under jam constraints.

Skills

What I work with

Filled chips are the tools I reach for first. Every group links to the project that proves it.

Gameplay

  • Godot 4
  • GDScript
  • C#
  • Unity
  • 2D & 3D gameplay
  • State machines
  • Game AI
  • Audio & UI systems
  • HTML5 export

Proof: Tower Tiles, The Veiled Arcana, Dizzy Dash

Networking & Architecture

  • WebSockets
  • Client–server architecture
  • TCP & HTTP servers
  • Session management
  • Autoload / singleton design
  • Design patterns
  • SOLID

Proof: Yalla Tfaddal

Web & Full-StackNew

  • Next.js
  • React
  • TypeScript
  • Supabase
  • PostgreSQL & RLS
  • Cloudflare Workers
  • Upstash Redis
  • Playwright
  • GitHub Actions
  • Chrome Extensions (MV3)
  • PHP & MySQL
  • Flutter & Dart

Proof: Jadwlak

Writing & Localization

  • Narrative design
  • Dialogue writing
  • Game writing
  • Arabic localization
  • RTL UI layout
  • Creative writing
  • Premiere Pro

Proof: Yalla Tfaddal

Data Governance & SecurityNew

  • AI governance
  • Data governance
  • Risk management
  • Compliance management
  • Data ethics
  • Information privacy
  • Data loss prevention
  • Access control
  • Microsoft Purview
  • Google Workspace & Vault
  • Cybersecurity fundamentals

Also Java · Python · Git feature-branch workflow · Pull requests & code review · Playtesting & iteration

Timeline

Patch notes

  1. lead

    Became Tech Lead of GDG on Campus BAU Tripoli. Built the club fair booth app in three days: five mini-games, a live leaderboard and server-side scoring, played by 50 students. Source and screenshots ↗

  2. live

    Jadwlak goes live for BAU's Fall 2026/27 planning, then moves from Vercel to Cloudflare Workers. It now runs for the price of its domain, about $14 a year.

  3. learning

    Joined the TechTalks Full-Stack Bootcamp: Next.js, TypeScript and a PR-based code review workflow.

  4. building

    Yalla Tfaddal: custom WebSocket server, nine minigames, playtest-driven stability pass.

  5. jam

    Global Game Jam 2026, The Veiled Arcana. Card system, mask mechanic and audio architecture on a team of 5.

  6. shipped

    Tower Tiles, a 3D tower defense built solo, with a playable HTML5 build.

  7. started

    Began a BSc in Computer Science at BAU and a BA in English at the Lebanese University, concurrently.

  8. shipped

    Last Stand Standing and Karma with EtherX Games.

  9. jam

    Global Game Jam 2024, Beirut. Dizzy Dash in 48 hours on a team of 6.

  10. new game

    First Godot course: Ultimate Game AI for Godot Beginners.

Certifications

Courses & training

Coursera

Google Workspace Data Governance

Google Cloud · 3 hrs · Oct 2026

Coursera

Data Governance and Purview

Microsoft · 9 hrs · Oct 2026

Coursera

AI Governance

Saïd Business School, University of Oxford · 14 hrs · Oct 2026

Coursera

Introduction to Cybersecurity Essentials

IBM · 12 hrs · May 2026

Udemy

Complete Godot 3D: Develop Your Own 3D Games Using Godot 4

GameDev.tv, Bram Williams · 20 hrs · Jan 2026

Udemy

Low Level System Design, Design Patterns & SOLID Principles

Prateek Narang · 9 hrs · Dec 2025

Udemy

Build Complete PHP MySQL Food Ordering Ecommerce Store

Web Coding · 11 hrs · Dec 2025

Udemy

Flutter & Dart — The Complete Guide [2025 Edition]

Academind · 30 hrs · July 2025

Udemy

Learn How to Make a Juicy Game in Godot 4

Victor Meunier · 5.5 hrs · Jan 2025

Udemy

Complete Godot 2D: Develop Your Own 2D Games Using Godot 4

Kaan Alpar, GameDev.tv · 11.5 hrs · Jan 2025

Udemy

Godot Getaway: The Godot Course

Canopy Games, Yann Burrett · 16 hrs · Jan 2025

Udemy

Game Writing: Storytelling Through Video Game Design

Jenny Hide, Gwen Davies · 2.5 hrs · Oct 2024

Udemy

Adobe Premiere Pro CC Masterclass: Video Editing in Premiere

Phil Ebiner · 26 hrs · Sept 2024

Udemy

Creative Writing Masterclass: Start Writing Your Own Stories

Phil Ebiner · 4 hrs · May 2024

Udemy

Programming Design Patterns For Unity: Write Better Code

GameDev.tv · 3.5 hrs · March 2024

Udemy

Learn The GDScript Programming Language

Michael McGuire · 9.5 hrs · Feb 2024

Udemy

Godot 4 — Create 3D RTS Style Game

Aviv David · 5 hrs · Feb 2024

Udemy

Ultimate Game AI for Godot Beginners

Adrian / Redefine Gamedev

Contact

Let's build
something great

Open to internship and part-time roles in gameplay or full-stack development, game jams and collaborations. Email is the fastest way to reach me; I reply within a day or two.

Send a message