Available nowFull-time or contract · Remote

Mohamed Shahin

Senior Full-Stack Engineer PHP · Laravel · WordPress · Vue.js

AI-assisted development

9+ years building web products, 7+ years remote for Copenhagen-based product companies. I was the founding engineer of a GDPR-compliant multi-tenant Laravel SaaS used by Danish schools and a municipality, and I built a cybersecurity vendor's CRM, then moved it off WordPress onto Laravel to fix its performance. Today I build with AI coding tools every day and review every change before it ships.

How I work

what to expect
AI in the loop

AI writes. I decide.

AI coding tools every day; every change tested and reviewed by me.

End to end

The whole product

  • Data
  • Logic
  • UI
  • Tests
  • Deploy
Close to the people deciding

Straight from founders and product owners

  • Founder · Opinoma
  • Product owner · BullWall
claude — ~/app
~/app $ claude
> Add retries with backoff to the webhook sync job and cover it with Pest
● Reading app/Jobs/SyncWebhookPayload.php
● Plan
  1. Retry the API call 3× with exponential backoff
  2. Log and fail the job after the last attempt
  3. Pest tests for 200, 503 and timeout
● Edited 2 files +48 −6
● php artisan test --filter=SyncWebhook
  ✓ syncs payload on 200
  ✓ retries on 503, then succeeds
  ✓ fails the job after 3 timeouts
  Tests: 3 passed
me Reviewed the diff → committed
Illustrative session: Claude writes, tests prove it, I review every change.

Selected work

7 projects
Opinoma ETU report: student well-being scores against the national benchmark
Opinoma · CopenhagenFounding Senior Engineer2022 – present

Educational evaluation SaaS for Danish schools

A GDPR-compliant platform for collecting and analysing evaluation feedback, used by Danish schools, vocational colleges and a municipality. I built and own the core engine: data model, business logic, UI, testing and deployment. The hardest part was making questions and questionnaires fully dynamic while keeping the data consistent enough to compare results over time.

It covers customizable questionnaires, benchmarking and real-time reporting dashboards. Heavy workloads run on Laravel queues, third-party API integrations handle failures and retries, and the multi-tenant codebase is covered by unit and feature tests in CI.

190+evaluations at a single school
3,000+student responses at that school
4competing suppliers beaten in a vendor comparison
Next layer · AIArchitecture designed

LLM report engine: 100K+ evaluations into written reports

The dashboards show the numbers; the next layer writes the story behind them. Schools generate a huge volume of free-text feedback in Danish and English, so I designed a pipeline that turns it into written reports per evaluation, teacher, school and comparison, self-hosted on open models so student data stays private.

  1. 01ResponsesDA / EN free text
  2. 02Token-aware chunkingfits each model's context
  3. 03Maplocal LLM summarises each chunk
  4. 04Reducetoken-aware merge of summaries
  5. 05JSON reportvalidated, stored per entity
  • RAG over fine-tuning, then dropped the vector store once semantic search turned out not to be needed.
  • Token budgets: capped output with max_tokens, prompt-level length targets, and retries on finish_reason.
  • Model choice: Gemma 3 27B, then Qwen3.5-35B-A3B (MoE, 4-bit) for speed on the same hardware.
  • PHP
  • Laravel
  • Livewire
  • Alpine.js
  • TailwindCSS
  • MySQL
  • Queues
  • REST APIs
  • PHPUnit
  • Pest
  • Laravel Forge
opinoma.com ↗
BullWall · CopenhagenSenior Software Engineer2019 – 2022

CRM for a ransomware-containment vendor

Before WordPress + Gravity Forms Form entries as CRM records · very slow
After Laravel + Vue.js / TypeScript New database · queues, jobs, notifications
  • Leadscapture & qualify
  • Opportunitiespipeline tracking
  • Customersaccounts & onboarding
  • Contactspeople per account
  • Reportingcharts & dashboards
  • Zoho syncthird-party integration

BullWall protects 1,000+ organisations in 20+ countries. I took full responsibility for their CRM, working directly with the product owner. The original WordPress setup had become very slow, so I rebuilt it in Laravel with a new database and a Vue.js + TypeScript frontend.

  • PHP
  • Laravel
  • Vue.js
  • TypeScript
  • MySQL
  • Bootstrap
  • Zoho API
  • Google Maps API
bullwall.com ↗
Wormald homepage
WordPress · WooCommerce

Wormald

Australia's long-running fire-protection provider, over 135 years in business. New WordPress site on Divi with custom hooks, actions and shortcodes, a WooCommerce shop, and CyberSource payment gateway integration.

  • WordPress
  • PHP
  • WooCommerce
  • Divi
  • Custom payment gateway
  • CyberSource
  • Hooks & shortcodes
wormald.com.au ↗
Genesis IT homepage
Custom WordPress plugin

Genesis IT

Australian recruitment agency since 2001. Custom plugin for job listings and search, with a background cron task that keeps listings current by syncing from several job APIs.

  • WordPress
  • PHP
  • Custom plugin
  • SOAP
  • XML parsing
  • Cron jobs
genesisit.com.au ↗
Data Street Partners dashboards and views admin
WordPress · Python/Flask

Data Street Partners

Data and analytics firm for financial services. Custom WordPress theme for the main site, and a financial dashboard platform in Flask with Tableau, with roles and permissions tied to each user's membership.

  • WordPress
  • Custom theme
  • Python
  • Flask
  • Tableau JS API
  • PostgreSQL
IFMSA Egypt admin plugin user table
WordPress admin plugin

IFMSA Egypt

Admin plugin for one of the world's largest student-run organisations. Five admin roles can accept, refuse, substitute or cancel registrants, send invitation letters, download passports and push notifications to the mobile app.

  • WordPress
  • PHP
  • Custom plugin
  • Role-based access
  • REST API
  • Push notifications
ifmsa-egypt.org.eg ↗
Illustration of the Saydality flow: search a medicine or send a prescription photo, find the nearest pharmacy, track the delivery صيدليتي Search medicine Photo of prescription Order Nearest pharmacy 0.6 km · open now Your order On the way Pharmacy accepted Out for delivery Delivered Medicine + delivery
Ionic mobile app · IT Wolf Solutions

Saydality

A medicine-ordering app for patients and the pharmacies that serve them. Patients find a medicine by name or by sending a photo of their prescription, and the request goes to the nearest pharmacy, located by GPS, for home delivery. A companion app lets pharmacies, including chains, receive orders and set the total cost and delivery fee.

  • Ionic
  • REST API
  • Geolocation
  • Android
saydality.com ↗

Experience

git log
2022.04
present

Opinoma · Founding Senior Software Engineer (Laravel)

Copenhagen, remote contract · worked directly with the founder
  • Architected and built the core engine of a GDPR-compliant evaluation SaaS: data model, business logic, UI, reporting, testing and deployment.
  • Made questions and questionnaires fully dynamic while keeping data consistent enough to compare results over time.
  • Delivered 5 survey products, including teaching evaluation, learning environment, MTU/APV and the national student well-being survey (ETU).
  • Built real-time reporting dashboards and benchmarking tools.
  • Multi-tenant architecture with role-based access and GDPR data security.
  • Heavy workloads on Laravel queues and jobs; third-party REST APIs with failure handling and retries; MySQL query and index optimization.
  • Unit and feature tests (PHPUnit, Pest) in CI/CD, deployed with Laravel Forge.
2019.02
2022.03

BullWall · Senior Software Engineer

Copenhagen, remote contract · worked with the product owner
  • Designed and built the company CRM from the ground up, from architecture to deployment.
  • Migrated it off WordPress and Gravity Forms to Laravel with a new database, fixing severe performance problems.
  • Leads, opportunities, customers and contacts, with charts and reporting.
  • Vue.js + TypeScript frontend, Google Maps API, and a Zoho integration.
  • User management, secure client data handling and client onboarding.
——

Freelance · WordPress & PHP Developer

Remote · Australian and international clients
  • Wormald: WordPress site on Divi with custom hooks, actions and shortcodes, a WooCommerce shop and CyberSource payments.
  • Genesis IT: custom job-listings plugin with search and a cron task syncing listings from several job APIs.
  • Custom plugins and themes, WooCommerce stores, and Stripe and PayPal integrations.
2018.02
2019.01

IT Wolf Solutions · Software Engineer

Alexandria · web and mobile projects for clients
  • Data Street Partners: custom WordPress theme, plus a Python/Flask platform with Tableau JavaScript API dashboards and membership-based roles.
  • IFMSA Egypt: admin plugin with five roles to accept, refuse, substitute or cancel registrants, send invitation letters, download passports and push notifications; event registration, scheduling and attendee management.
  • Saydality: Ionic app to search for medicine and get it delivered from the nearest pharmacy, integrated with a REST backend.
2017.04
2018.01

AIT Systems · Software Engineer

Alexandria · Laravel and WordPress client projects
  • Custom web apps and client sites in Laravel and WordPress: responsive layouts, database optimization and security fixes.

Stack

composer.json
// what I ship with
{
  "core":      ["PHP", "Laravel", "WordPress", "MySQL", "Vue.js"],
  "ai":        ["Claude Code", "Prompt engineering", "RAG", "Local LLMs"],
  "laravel":   ["Livewire", "Filament", "Inertia", "Queues", "REST APIs", "JWT/OAuth"],
  "wordpress": ["Custom plugins", "Custom themes", "WooCommerce", "Stripe", "PayPal", "CyberSource"],
  "frontend":  ["TypeScript", "Alpine.js", "TailwindCSS", "React", "Ionic"],
  "practices": ["Multi-tenant SaaS", "DDD", "SOLID", "Event-driven"],
  "data":      ["MySQL", "PostgreSQL", "Redis"],
  "ops":       ["Laravel Forge", "AWS S3/EC2", "Docker", "CI/CD"],
  "testing":   ["PHPUnit", "Pest"],
  "also":      ["Python", "Flask", "Tableau JS API"]
}

Contact

remote · CET / US hours

Open to full-time and contract roles, fully remote. Email is the fastest way to reach me.

Emailmohammed.shahin@live.com
Send email
LinkedInin/sr-mohamed-shahin
Based inAlexandria, EgyptWorks CET & US hours
Thank you

Thank you for taking the time to look through my work.

If something here fits what you are building, just message me where we are already talking and I will get back to you as soon as I can. I am always happy to walk you through any of these projects in more detail.

Mohamed Shahin