I build REST APIs with Laravel and single-page apps with Vue 3.
Before moving to full stack, I spent 5+ years as a UI developer.
Open to backend and full-stack roles.
| Project | What it is | Stack |
|---|---|---|
| api-bookings | Event and seat booking REST API: token auth with email OTP, admin / user roles, categories, events, bookings, media uploads, Postman collection | Laravel, Sanctum, Spatie MediaLibrary, MySQL |
| e-commerce_php2 | Full online store: cart, wishlist, orders, admin dashboard for products, orders and users, Arabic / English | Laravel, Jetstream, Livewire, Sanctum, Tailwind |
| horse-listings-platform | Listings site for an Arabian horse stud: public catalog with Arabic / English / Chinese, admin dashboard, image and video uploads, token auth. Live | Laravel 12, Sanctum, Vue 3, Pinia, Tailwind |
| megascope-platform | Website and admin system for a medical-equipment company: device catalog, maintenance jobs, customers, payments. Live | Laravel 12, Sanctum, Vue 3, MySQL |
| e-commerce-route | Vue storefront with auth guards, catalog, cart, wishlist, checkout and order history. Live demo | Vue 3, TypeScript, Pinia, Tailwind 4, Vite |
| portfolio | My personal portfolio site. Live | HTML, CSS, Bootstrap, JavaScript |
Yummy (jQuery + public API) · Game Over (Bootstrap + REST API) · Taskify (PHP + MySQL to-do app)
I build with AI coding agents, and I keep the work structured instead of "vibe coding":
- Spec-driven workflow: the horse and medical-equipment projects were built with Spec Kit (spec, plan, tasks, implement). The
specs/folder in each repo shows the process. - Project rules for Claude Code: each repo carries a
CLAUDE.mdwith the API contract, folder layout and conventions, so the agent follows the same rules on every task. - Custom skills: speckit-claude-skill and php-laravel-claude-skills.
- I review and understand the code the agent writes, and I own the architecture and the decisions.
- 💼 LinkedIn: mamdouh-mahmoud
- 🌐 Portfolio: mamdouh19952.github.io/portfolio
- ✉️ Email: mamdouh87741@gmail.com






