Portfolio · November 2026ملف الأعمال · نوفمبر 2026

Mohamed Hassanمحمد حسن

Senior full-stack engineer · Cairoمهندس برمجيات أول (Full-Stack) · القاهرة

I build complete products and run them in production: backend, frontend, cloud and the operations around them. My work has gone to organisations in Egypt and Saudi Arabia, in Arabic and in English.

أبني منتجات كاملة وأشغّلها في بيئة الإنتاج: الخلفية والواجهة والسحابة وما حولها من تشغيل. وصلت أعمالي إلى جهات في مصر والمملكة العربية السعودية، بالعربية والإنجليزية.

4+
years of professional workسنوات من العمل المهني
2
products built and shipped aloneمنتجان بنيتهما وأطلقتهما منفرداً
5
Saudi organisations served with service-desk customisationجهات سعودية خدمتها بتخصيص مكتب الخدمة
10+
services on the AI platform I work on todayخدمات في منصة الذكاء الاصطناعي التي أعمل عليها اليوم

Selected workأعمال مختارة

Five projects. Each lists my role, the period and the technology used.

خمسة مشاريع، ومع كل مشروع دوري فيه وفترته والتقنيات المستخدمة.

Freelance · 2026عمل حر · 2026 Liveيعمل الآن

Zylantra Perfumes: online store and back officeعطور زيلانترا: المتجر الإلكتروني ولوحة الإدارة

A bilingual online store for a fragrance house in Cairo. I built and deployed it alone. The store went live nine days after the first commit.

متجر إلكتروني بالعربية والإنجليزية لدار عطور في القاهرة. بنيته ونشرته منفرداً، وبدأ المتجر العمل بعد تسعة أيام من أول إيداع للكود.

  • Storefront in Arabic and English with a full right-to-left layout: collections, product pages, bag and cash-on-delivery checkout.
  • Back office for the owner: orders and their statuses, courier tracking numbers, stock, prices, photos, delivery fees and the store's colours. None of it needs a developer.
  • Stock stays correct under pressure. Two shoppers cannot both buy the last bottle, and a cancelled order puts its stock back. Tests prove both against a real PostgreSQL database.
  • Deployment on Azure with a scripted setup, a GitHub Actions pipeline that checks the site's health after each release, a custom domain and a managed database.
  • Purchase tracking in Google Analytics that reports each order once, even if the customer refreshes the page.
  • واجهة المتجر بالعربية والإنجليزية مع دعم كامل للاتجاه من اليمين إلى اليسار: المجموعات، صفحات المنتجات، السلة، والدفع عند الاستلام.
  • لوحة إدارة لصاحب المتجر: الطلبات وحالاتها، أرقام تتبع الشحن، المخزون، الأسعار، الصور، رسوم التوصيل وألوان المتجر. كل ذلك بلا حاجة إلى مبرمج.
  • المخزون يبقى صحيحاً تحت الضغط. لا يستطيع عميلان شراء آخر عبوة معاً، والطلب الملغى يعيد كميته إلى المخزون. اختبارات تعمل على قاعدة PostgreSQL حقيقية تثبت الحالتين.
  • النشر على Azure بإعداد مؤتمت، ومسار نشر عبر GitHub Actions يفحص سلامة الموقع بعد كل إصدار، مع نطاق خاص وقاعدة بيانات مُدارة.
  • تتبع المشتريات في Google Analytics يسجّل كل طلب مرة واحدة حتى لو أعاد العميل تحميل الصفحة.

The owner now runs the catalogue himself. The store launched with six fragrances and lists nine products today.

صاحب المتجر يدير المنتجات بنفسه الآن. انطلق المتجر بستة عطور، ويعرض اليوم تسعة منتجات.

Sultan fragrance bottle from the Zylantra store Shaghaf fragrance bottle from the Zylantra store Wahaj fragrance bottle from the Zylantra store
Three of the fragrances sold on the store. Photography belongs to Zylantra. The live site is the best view of the work.ثلاثة من العطور المعروضة في المتجر. الصور ملك لزيلانترا، والموقع نفسه أفضل عرض للعمل.

IT-PILLERS · 2023 to 2025IT-PILLERS · من 2023 إلى 2025

Self-service portals on ManageEngine ServiceDesk Plus for Saudi enterprisesبوابات الخدمة الذاتية على ManageEngine ServiceDesk Plus لجهات سعودية

Custom dashboards, login pages and message templates built inside a commercial service-desk product, for five organisations: a bank, a government authority, a healthcare procurement company, a cloud provider and a gaming group.

لوحات مخصصة وصفحات دخول وقوالب رسائل بنيتها داخل منتج تجاري لمكتب الخدمة، لخمس جهات: بنك، وهيئة حكومية، وشركة مشتريات صحية، ومزوّد خدمات سحابية، ومجموعة ألعاب.

  • Employee dashboards written in plain HTML, CSS and JavaScript on the product's own API: live request counters that open the matching list, rotating announcements and the employee's assigned devices.
  • An Arabic right-to-left portal for the government authority: a service catalogue where the employee chooses between a new service and reporting a problem, request statistics as charts, a dark mode, and animated transitions throughout.
  • Branded login pages with a video background and Active Directory domain selection, and a service portal split by department for the bank.
  • Email and survey templates, including right-to-left versions, that display correctly in mail clients.
  • Maintained a .NET portal connected to the service desk, where vendors submit invoices and payment requests against contracts. I fixed the integration fault that had stopped it opening tickets, and added bulk tickets and a fuller vendor registration form.
  • لوحات للموظفين مكتوبة بـ HTML و CSS و JavaScript مباشرة على واجهة المنتج البرمجية: عدادات حيّة للطلبات تفتح القائمة المطابقة، وإعلانات متناوبة، والأجهزة المسجلة باسم الموظف.
  • بوابة عربية من اليمين إلى اليسار للهيئة الحكومية: دليل خدمات يختار فيه الموظف بين طلب خدمة جديدة والإبلاغ عن مشكلة، وإحصاءات الطلبات في رسوم بيانية، ووضع ليلي، وحركات انتقال في كل الواجهة.
  • صفحات دخول بهوية الجهة مع خلفية فيديو واختيار نطاق Active Directory، وبوابة خدمات مقسّمة حسب الإدارات للبنك.
  • قوالب بريد واستبيانات، منها نسخ من اليمين إلى اليسار، تظهر سليمة في برامج البريد.
  • صيانة بوابة مبنية بـ .NET ومرتبطة بمكتب الخدمة، يرفع عبرها الموردون الفواتير وطلبات الصرف على العقود. أصلحت خلل الربط الذي أوقف فتح التذاكر، وأضفت التذاكر المجمّعة ونموذج تسجيل أوفى للموردين.

How it was done. The product offers no extension point for most of this. I traced how its pages load, found the bundled scripts, templates and stylesheets responsible, changed them, put them back on the server and rebuilt. I kept every original so each change could be undone. All of it was worked out by hand, without AI tools.

كيف تم العمل. المنتج لا يتيح نقطة تخصيص لأغلب هذه التعديلات. تتبعت طريقة تحميل صفحاته، وحددت ملفات السكربت والقوالب والتنسيقات المسؤولة، وعدّلتها ثم أعدتها إلى الخادم وأعدت البناء. احتفظت بكل ملف أصلي ليمكن التراجع عن أي تعديل. كل ذلك تم يدوياً ودون أدوات ذكاء اصطناعي.

Employee dashboard with a search box, three quick actions, four request counters, an event announcement shown over a picture and a list of assigned devices
Employee dashboard built for the healthcare procurement company. The announcements block rotates through current announcements over an event photo; the client's photo is swapped here for a stand-in picture.لوحة الموظف التي بنيتها لشركة المشتريات الصحية. يعرض قسم الإعلانات الإعلانات الحالية بالتناوب فوق صورة من إحدى الفعاليات، وقد استُبدلت صورة العميل هنا بصورة بديلة.
Screen recording of the Arabic portal built for the government authority: hover effects, the sliding service catalogue and animated charts. The real page opens with the client's film, logo and moving brand pattern, which are left out here. Both visuals run my source code with sample data.تسجيل للشاشة من البوابة العربية التي بنيتها للهيئة الحكومية: تفاعل البطاقات عند المرور عليها، ودليل الخدمات المنزلق، والرسوم البيانية المتحركة. تبدأ الصفحة الفعلية بفيلم الجهة وشعارها ونقش هويتها المتحرك، وقد حُذفت هنا. العرضان يشغّلان الكود الذي كتبته مع بيانات تجريبية.

Freelance · November 2025 to October 2026عمل حر · من نوفمبر 2025 إلى أكتوبر 2026 Liveيعمل الآن

Ansaq: food-service platform for many organisationsأنساق: منصة خدمات الطعام لعدة مؤسسات

A multi-tenant platform where companies, universities and hospitals run cafeterias and kiosks, and their staff order for pickup or delivery. I was the only engineer, from architecture to production.

منصة متعددة المستأجرين تدير عليها الشركات والجامعات والمستشفيات مقاصفها وأكشاكها، ويطلب منها موظفوها للاستلام أو التوصيل. كنت المهندس الوحيد من تصميم البنية حتى التشغيل.

  • Rebuilt a legacy codebase of more than 20 projects into 4 core projects with Clean Architecture and CQRS.
  • Raised the number of users the system can serve at once from about 50 to more than 2,000, by removing wasteful queries, moving 65 read operations to Dapper and adding caching. A 12-scenario load test then held 2,000 users at once with server response times flat at about 34 ms.
  • Removed three critical race conditions in production.
  • Wrote more than 1,260 automated tests, more than 1,000 of them integration tests that run on a real SQL Server. The build fails if a change makes a page issue more queries than before.
  • Ran the Azure infrastructure and release pipelines, and cut cloud cost by about 20% with containers that scale to zero.
  • Arabic and English with right-to-left layout, and order tracking that updates in real time.
  • Guests order without an account by scanning a QR code at an outlet or in a room, then follow the order live.
  • Each organisation gets its own branding: logo, colours, fonts and a sign-in page of its own.
  • Staff sign in with their own company accounts (single sign-on), and delivery staff get new-order and VIP alerts on their phones even when the app is closed.
  • Inventory and recipes for each store: receiving with batch, expiry and price, stock counts and waste, and recipes that take stock off with every order.
  • أعدت بناء كود قديم من أكثر من 20 مشروعاً إلى 4 مشاريع أساسية وفق Clean Architecture و CQRS.
  • رفعت عدد المستخدمين المتزامنين الذين يخدمهم النظام من نحو 50 إلى أكثر من 2,000، بإزالة الاستعلامات المهدرة ونقل 65 عملية قراءة إلى Dapper وإضافة التخزين المؤقت. ثم أثبت اختبار حمل من 12 سيناريو أن النظام يخدم 2,000 مستخدم في الوقت نفسه وزمن استجابة الخادم ثابت عند نحو 34 مللي ثانية.
  • أزلت ثلاث حالات تسابق حرجة في بيئة الإنتاج.
  • كتبت أكثر من 1,260 اختباراً آلياً، أكثر من 1,000 منها اختبارات تكامل تعمل على SQL Server حقيقي. يفشل البناء إذا جعل أي تعديل الصفحة تنفذ استعلامات أكثر من السابق.
  • أدرت بنية Azure ومسارات النشر، وخفّضت تكلفة السحابة بنحو 20% بحاويات تتوقف عند عدم الاستخدام.
  • العربية والإنجليزية مع الاتجاه من اليمين إلى اليسار، وتتبع للطلبات يتحدث لحظياً.
  • طلب للضيوف دون حساب بمسح رمز QR عند المنفذ أو في الغرفة، ثم متابعة الطلب مباشرة.
  • لكل جهة هويتها: الشعار والألوان والخطوط وصفحة دخول خاصة بها.
  • يدخل الموظفون بحسابات جهتهم مباشرة (الدخول الموحّد)، ويصل لموظفي التوصيل تنبيه بكل طلب جديد وبطلبات كبار الشخصيات على هواتفهم حتى والتطبيق مغلق.
  • مخزون ووصفات لكل متجر: استلام البضاعة بالدفعة وتاريخ الانتهاء والسعر، والجرد والهالك، ووصفات تخصم من المخزون مع كل طلب.

240+ API endpointsواجهة برمجية51 data entitiesكياناً للبيانات1,260+ testsاختباراً140+ Angular componentsمكوّن Angular

Outlet menu page with category tabs and drink cards showing photo, price, calories, preparation time and an Add to Order button
The outlet menu a guest opens from a QR code, in the Ansaq tenant's own colours, logo and menu.قائمة المنفذ التي يفتحها الضيف من رمز QR، بألوان أنساق وشعارها وقائمتها.
Two phone screens: the menu list, and an order page showing the order number and live status steps
The same menu on a phone, and the live order status page. The order shown is a sample.القائمة نفسها على الهاتف، وصفحة متابعة حالة الطلب مباشرة. الطلب المعروض تجريبي.
Sign-in page showing the Ansaq logo, the name Ansaq Hospitality, a welcome line and the sign-in form
The sign-in page, branded for each organisation. Every screen here is the real application running with the Ansaq tenant's own branding and menu.صفحة الدخول بهوية كل جهة. كل الشاشات هنا هي التطبيق الفعلي يعمل بهوية أنساق وقائمتها.

FlairsTech · March 2025 to presentFlairsTech · من مارس 2025 حتى الآن

AIMY by FlairsTech: an AI platform of more than ten servicesAIMY من FlairsTech: منصة ذكاء اصطناعي من أكثر من عشر خدمات

AIMY is FlairsTech's own set of AI agents and tools for customer support, sales, recruitment and quality assurance. It powers the company's operations and the managed services it sells through offices serving the USA and Canada, Poland, the Gulf and Egypt. I work across its .NET, Python and React services.

AIMY مجموعة مساعدات وأدوات ذكاء اصطناعي طوّرتها FlairsTech لخدمة العملاء والمبيعات والتوظيف وضبط الجودة. تعتمد عليها الشركة في عملياتها وفي الخدمات المُدارة التي تبيعها عبر مكاتب تخدم الولايات المتحدة وكندا وبولندا والخليج ومصر. أعمل على خدماتها المكتوبة بـ .NET و Python و React.

  • Lead and mentor a pod of three engineers that owns AIMY QA and Connect. I took the role on a two-month trial in July 2026, then was promoted to senior software engineer. The pod has delivered 280+ tickets at about 25 a sprint, with 5% reopened.
  • Designed an AI actions layer: the model classifies and explains, the database ranks, and a person approves every change, with a full audit trail and undo.
  • Built an analytics chat agent (Python, FastAPI, Claude) that answers questions about tickets and quality scores, matches the dashboard's numbers and refuses to make data up.
  • Designed the central access-control system used by 1,000+ employees across 6+ applications, with matching middleware for .NET and Python.
  • Built MCP servers that connect Claude and in-house AI assistants to knowledge search, sales enrichment and recruitment workflows.
  • Built 9 production n8n workflows that keep Salesforce, Zendesk, Freshdesk and Jira in sync in both directions without loops.
  • Wrote WarrenMQ, a RabbitMQ library published as a NuGet package and reused across services, and a Mediator library that replaced MediatR after its 2025 licence change.
  • Built real-time notifications end to end with SignalR, and candidate-to-job matching on a vector database.
  • Moved 8+ containerised applications between AWS accounts and regions.
  • 460+ issues closed and 590+ pull requests merged across 30+ repositories, and 160+ pull requests reviewed for the team since July 2026.
  • أقود فريقاً من ثلاثة مهندسين مسؤولاً عن AIMY QA و Connect وأوجّههم. تسلمت الدور بفترة تجربة لشهرين في يوليو 2026، ثم رُقّيت إلى مهندس برمجيات أول. أنجز الفريق أكثر من 280 مهمة بمعدل نحو 25 في كل دورة عمل، ولم يُعَد فتح إلا 5% منها.
  • صمّمت طبقة إجراءات للذكاء الاصطناعي: النموذج يصنّف ويشرح، وقاعدة البيانات ترتّب، والإنسان يعتمد كل تغيير، مع سجل تدقيق كامل وإمكانية التراجع.
  • بنيت مساعد محادثة تحليلي (Python و FastAPI و Claude) يجيب عن أسئلة التذاكر ودرجات الجودة، وتطابق أرقامه لوحة البيانات، ويرفض اختلاق البيانات.
  • صمّمت نظام الصلاحيات المركزي الذي يستخدمه أكثر من 1,000 موظف عبر 6 تطبيقات أو أكثر، مع طبقة وسيطة مطابقة لكل من .NET و Python.
  • بنيت خوادم MCP تربط Claude والمساعدات الذكية الداخلية بالبحث في المعرفة وإثراء بيانات المبيعات ومسارات التوظيف.
  • بنيت 9 مسارات n8n تعمل في الإنتاج وتُبقي Salesforce و Zendesk و Freshdesk و Jira متزامنة في الاتجاهين دون تكرار لا نهائي.
  • كتبت WarrenMQ، مكتبة RabbitMQ منشورة كحزمة NuGet ومستخدمة في عدة خدمات، وكتبت كذلك مكتبة Mediator لـ .NET حلّت محل MediatR بعد تغيير ترخيصها في 2025.
  • بنيت الإشعارات اللحظية كاملة باستخدام SignalR، ومطابقة المرشحين بالوظائف على قاعدة بيانات متجهات.
  • نقلت 8 تطبيقات أو أكثر تعمل في حاويات بين حسابات ومناطق AWS.
  • أنجزت أكثر من 460 مهمة ودمجت أكثر من 590 طلب دمج عبر أكثر من 30 مستودعاً، وراجعت للفريق أكثر من 160 طلب دمج منذ يوليو 2026.

IT-PILLERS · April 2022 to February 2025IT-PILLERS · من أبريل 2022 إلى فبراير 2025 Liveيعمل الآن

Yaqouti Workflow: a request and approval engine that organisations configure themselvesYaqouti Workflow: محرك طلبات وموافقات تضبطه المؤسسة بنفسها

A platform where an organisation designs its own processes: steps, approvers, groups, rules and service-level targets. Built with .NET and Angular and hosted on Azure.

منصة تصمّم عليها المؤسسة إجراءاتها بنفسها: الخطوات، والمعتمدون، والمجموعات، والقواعد، ومستويات الخدمة. مبنية بـ .NET و Angular ومستضافة على Azure.

  • Redesigned roles and permissions: more than 15 actions per resource in place of view and manage, and a new resource is now added in one place with no database migration.
  • Cut the response time of one list from 2 minutes to 235 milliseconds.
  • Built, over seven months, the feature that opened the system to outside vendors alongside employees, each with their own interface.
  • Rewrote the groups and rules services across more than 70 files, and fixed 40 validation bugs across the system.
  • Integrated Azure Active Directory sign-in, and built a templating system for email, SMS and notifications that cut the effort of content updates by 40%.
  • In one year: more than 240 work items and 500 story points completed, 30 pull requests written and 60 reviewed.
  • أعدت تصميم الأدوار والصلاحيات: أكثر من 15 إجراءً لكل مورد بدل «عرض» و«إدارة»، وصار المورد الجديد يضاف من مكان واحد دون ترحيل لقاعدة البيانات.
  • خفّضت زمن استجابة إحدى القوائم من دقيقتين إلى 235 مللي ثانية.
  • بنيت على مدى سبعة أشهر الخاصية التي فتحت النظام للموردين الخارجيين إلى جانب الموظفين، ولكل فئة واجهتها.
  • أعدت كتابة خدمات المجموعات والقواعد في أكثر من 70 ملفاً، وأصلحت 40 خطأ تحقق في أنحاء النظام.
  • ربطت تسجيل الدخول بـ Azure Active Directory، وبنيت نظام قوالب للبريد والرسائل النصية والإشعارات خفّض جهد تحديث المحتوى بنسبة 40%.
  • في سنة واحدة: أكثر من 240 مهمة و500 نقطة إنجاز، و30 طلب دمج كتبتها و60 راجعتها.
Home dashboard with four request counters and charts of open and closed requests
Home dashboard of the live system: requests to pick, assigned, awaiting action and escalated.لوحة البداية في النظام الحي: الطلبات المتاحة للاستلام، والمسندة، والتي تنتظر إجراء، والمصعّدة.
Service catalogue page listing seven process categories with their sub-categories
The service catalogue, where an organisation groups its own processes. This instance holds 32.دليل الخدمات، حيث تنظّم الجهة إجراءاتها في مجموعات. في هذا النظام 32 إجراءً.
Admin settings page with sections for user management, process groups and process management
Admin settings: roles, positions, user and approval groups, and process management. All three screens are captured from the live system, with the company logo, names and emails covered.إعدادات الإدارة: الأدوار والمناصب ومجموعات المستخدمين والموافقات وإدارة الإجراءات. الصور الثلاث ملتقطة من النظام الحي مع حجب شعار الشركة والأسماء والبريد.

Capabilities, and where they were provenالقدرات وأين أُثبتت

CapabilityالقدرةProven inأُثبتت في
Products in Arabic and English, right to leftمنتجات بالعربية والإنجليزية ومن اليمين إلى اليسارZylantra, Ansaq, the government service portalزيلانترا، أنساق، بوابة الهيئة الحكومية
Workflows that a business configures without codeمسارات عمل تضبطها الجهة دون كتابة كودYaqouti WorkflowYaqouti Workflow
AI assistants connected to business systemsمساعدات ذكية مرتبطة بأنظمة العملAIMY: MCP servers, n8n, RabbitMQAIMY: خوادم MCP و n8n و RabbitMQ
One platform serving many customersمنصة واحدة تخدم عملاء كثيرينAnsaqأنساق
Working inside enterprise products and their APIsالعمل داخل منتجات المؤسسات وواجهاتها البرمجيةServiceDesk Plus portals, CRM integrations at AIMYبوابات ServiceDesk Plus، وربط أنظمة CRM في AIMY
From first commit to production, aloneمن أول سطر كود إلى التشغيل، منفرداًZylantra, live in nine days, and Ansaqزيلانترا خلال تسعة أيام، وأنساق

How I workكيف أعمل

I wrote software by hand for most of my career. Everything at IT-PILLERS, including the service-desk portals and the workflow engine, was built without AI tools, and so was my first year at FlairsTech.

I adopted AI coding tools late and on purpose. I set the design, review what they produce and back it with tests, so I stay in control and aware of everything that ships.

كتبت البرمجيات يدوياً في أغلب مسيرتي. كل ما أنجزته في IT-PILLERS، ومنه بوابات مكتب الخدمة ومحرك مسارات العمل، بُني دون أدوات ذكاء اصطناعي، وكذلك سنتي الأولى في FlairsTech.

اعتمدت أدوات الذكاء الاصطناعي في البرمجة متأخراً وعن قصد. أضع التصميم بنفسي، وأراجع ما تنتجه، وأسنده بالاختبارات، فأبقى متحكماً ومدركاً لكل ما يُنشر.

Technologyالتقنيات

Backendالخلفية

C#, .NET 8 and 10, ASP.NET Core, EF Core, Dapper, Python, FastAPI

Frontendالواجهة

Angular, React, TypeScript, RxJS, Tailwind CSS, Razor Pages

Dataالبيانات

SQL Server, Azure SQL, PostgreSQL, Qdrant

Cloudالسحابة

Azure (App Service, Container Apps, DevOps, Key Vault), AWS (ECS, Lambda, S3, Cognito, Bedrock), Docker

AI and integrationالذكاء الاصطناعي والربط

MCP, n8n, RabbitMQ, SignalR, REST, webhooks

Qualityالجودة

xUnit, Testcontainers, CI/CD with GitHub Actions and Azure Pipelines, code review

Contactالتواصل

Emailالبريد الإلكتروني
mohahassan100@gmail.com
Phone and WhatsAppالهاتف وواتساب
+20 111 449 3970
LinkedIn
linkedin.com/in/mohamed-hassan-484329248
Locationالموقع
Cairo, Egypt (UTC+2)القاهرة، مصر (UTC+2)

Client names for the service-desk work are withheld. Figures for employer projects come from my own delivery records.

أسماء الجهات في أعمال مكتب الخدمة محجوبة. أرقام مشاريع جهات العمل مأخوذة من سجلات إنجازي الشخصية.