Skip to content
View Mahdi-Hasan's full-sized avatar
πŸ’­
...
πŸ’­
...
  • CloudApper AI

Highlights

  • Pro

Block or report Mahdi-Hasan

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. 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
Mahdi-Hasan/README.md

Mehedi Hasan, AI-Enabled Product Engineer

Typing intro

Senior Software Engineer at CloudApper AI Β· 5+ years Β· ex Vivasoft

LinkedIn Email Hugging Face Resume

About me

I'm an AI-enabled product engineer. I start from the business problem, not the tool. Then I ship the fix end to end: data, back end, AI and UI.

  • 🎯 How I work: find where the workflow hurts, pick the simplest tech, measure the result.
  • πŸ—οΈ Full stack: 5+ years of C# / .NET and Python, with React, Angular and Vue front ends.
  • 🌍 Open source: 60 PRs, including Microsoft, JetBrains, Vercel and healthcare AI (MONAI, OHIF, OpenEMR, dwv, PyHealth).
  • 🧭 Product: certified AI-native Product Manager (Pendo). I work AI-native with Claude Code.
  • πŸŽ“ Teaching: mentor for the World Bank-backed Edge Program. Also lead small teams and mentor juniors.

πŸ€– AI I've shipped

🧩 Agentic copilots
Build apps, forms & workflows from chat Β· MCP server + client
πŸ§ͺ Code agents
LangGraph Β· runs code in gVisor / Firecracker sandboxes
πŸ“š RAG & memory
Embeddings Β· semantic search Β· knowledge-graph memory
πŸ”€ Multi-model routing
LiteLLM Β· OpenAI + Claude Β· reasoner & verifier models
πŸ›‘οΈ Safety & evals
Guardrails Β· approval gates Β· replay tests Β· LLM-as-a-Judge
πŸ’Έ Cost & context
Prompt caching Β· context compaction Β· per-call cost tracking
πŸ“„ Document & media AI
PDF & image vision Β· field extraction Β· transcription
πŸ›οΈ Legacy modernization
Agents read COBOL, PL/I, RPG, VB6, Delphi β†’ rebuild specs

🏒 Domains

HR & Payroll Healthcare, HIPAA Finance Ops No-code Platforms Legacy Modernization Identity & Security

Impact in numbers

60K+ SSO users Β· 800+ companies on PIHR Β· ~100K invoices at 90% accuracy Β· 70%+ less manual work Β· 20–30% faster APIs Β· zero PHI leaks Β· ~2Γ— Bangla summarization accuracy Β· Top 5% LinkedIn C# & OOP

Open-source contributions

60 pull requests Β· 19 projects Β· 140K+ stars on the largest repo Β· Microsoft, JetBrains and Vercel

PR status badges below update live from GitHub.

πŸ€– AI agents & LLM frameworks

Project What I fixed PR
microsoft/agent-framework
stars
Python boto3 Gemini SDK pytest
Bedrock: a boto3 session set to eu-west-1 was sent to us-east-1 when BEDROCK_REGION said so. No error was raised. The session's region now wins. #9967
Mistral: service_url now reports the endpoint of the injected SDK client, not the default URL. #9968
Gemini: with an injected genai.Client, a bad env value such as GOOGLE_GENAI_USE_ENTERPRISE still crashed construction. Those settings are now skipped. #9969
HKUDS/DeepTutor
stars
Python LLMs
Lesson prep broke on reasoning models when <think> blocks or prose wrapped the JSON. It now finds the JSON and retries once at the right effort level. #2375
Responses API: strict gateways rejected status on replayed items such as function_call. It is now stripped from every item. #2454
Workspace: a failed probe-file delete escaped the request. Cleanup is now best effort. #2455
Claude Code: system prompts over 32K characters failed on Windows with a misleading "not found" error. Long prompts now go through a file. #2456
crewAIInc/crewAI
stars
Python pytest
Files: expired-upload cleanup never called the provider's delete, because the lookup had already dropped expired entries. Expired files are now deleted. #9109
Telemetry: strings, numbers and None at the depth limit became repr() strings. Primitives are now kept unchanged. #9110
A2A auth: a comma inside a quoted WWW-Authenticate value split the challenge. Parsing now respects quotes and escapes. #9111
Planning: replanned steps restarted at 1 and clashed with completed steps. Clashing steps are now renumbered. #9136
CLI: after an upgrade, a cached yanked flag from the old version showed a false warning. The cache is now tied to the installed version. #9137
Executor: every batch after a replan asked for another replan over failures already handled. Handled failures are now skipped. #9138
calesthio/OpenMontage
stars
Python ComfyUI FFmpeg
The ComfyUI video tool reported request defaults as output metadata. It now reports the real values probed from the file. #885
tryAGI/LangChain
stars
C# .NET RAG
AddDocumentsFrom* helpers now take several data sources in one call for RAG ingestion. #639

🩺 Healthcare & medical imaging

Project What I fixed PR
Project-MONAI/MONAI
stars
Python PyTorch pandas
Data loading: CSVIterableDataset with shuffle=True returned every item twice per epoch on stream sources. The unshuffled pass now runs only when shuffle is off. Added a regression test. #9249
OHIF/Viewers
stars
TypeScript React Jest DICOM
DICOM viewer: the segment stats card kept stale L/W values and eye state until re-hover. The React Compiler cached the service reads. The card now holds them in state and refreshes on SEGMENTATION_MODIFIED. #6408
Docs: the FocalLoss alpha docstrings did not describe per-class weights. They now match the merged behaviour. #9251
Scrollbar: an inactive viewport's scrollbar kept a white focus ring. It now takes focus only when keyboard navigation is on. #6409
sunlabuiuc/PyHealth
stars
Python ML EHR
StageNet: nested visits longer than the fitted width were not truncated correctly. The processor now logs one warning per processor. #1380
ivmartel/dwv
stars
JavaScript DICOM
Charset: Korean DICOM strings coded as ISO 2022 IR 149 failed to decode. They now decode as EUC-KR. #2370
Performance: canvases read back with getImageData now use willReadFrequently, mainly for video frames. #2373
Tests: added a regression test for sequences that mix defined and undefined length items. #2374
Loading: URL loads take new timeout and timeoutRetries options. #2375
Units: lengths from raw Imager Pixel Spacing now read mm (detector), not plain mm. #2376
openemr/openemr
stars
PHP EHR
Errors: HTTP error responses carried no useful body. They now send the status text, and exception detail only when error display is on. #15026
πŸ› οΈ Developer tools Β· orca, thinkrail, nanocoder, next.js, claude-buddy, Crow
Project What I fixed PR
stablyai/orca
stars
TypeScript Electron React Zustand
Sidebar: a new bindable command collapses or expands every project at once. Before, each chevron had to be clicked. #37718
Jira: several connected sites all showed the same profile name. Each site now shows its host, like Ada (acme.atlassian.net). #37719
Mobile: "Jump back in" rows showed only the branch, so two main rows looked the same. The repo name now shows on every row. #37720
Browser: an opt-in setting loads terminal links in the open browser tab instead of a new split pane. #37721
JetBrains/thinkrail
stars
TypeScript Node.js WSL
Windows: "Reveal in file manager" opened Explorer in a hidden window, with no error. The folder window now shows. #1158
Performance: editor lookup scanned a slow WSL PATH on the event loop and froze the host for seconds. It now pre-filters folders with async readdir. #1159
Nano-Collective/nanocoder
stars
TypeScript VS Code API DOMPurify
Security: the VS Code chat webview now sanitizes markdown and blocks remote images. This closes an XSS and tracking-pixel path. #1927
MCP: only the first content block of a tool result was read. Every block is now formatted, in order. #1960
Edit tool: string_replace missed matches in CRLF files. It now matches and keeps CRLF line endings. #1961
vercel/next.js
stars
TypeScript Node.js
App Router-only builds returned 500 for client errors Next.js raised itself, such as a bad param or a bad Range. They now keep the 4xx status. #101188
handsome-rich/claude-buddy
JavaScript Electron PowerShell
10 PRs for a Claude Code desktop companion. A floating pet with status badges, tool-permission allow/deny, Windows autostart and a packaged-exe fix. #3–#13
Pienteger/Crow
C# .NET PowerShell
4 PRs for a build-cleanup CLI. --ig now protects removal targets, paths with spaces work, test teardown no longer fails, and a one-line installer. βœ… #2–#5 merged
πŸ•Œ Community & Islamic tech Β· quran.com, DeenTime, Ansari, Mihrab
Project What I fixed PR
quran/quran.com-frontend-next
stars
TypeScript Next.js React
Security: .env.example turned off TLS checks by default. New setups now keep TLS verification on. #3362
DeenTime
JavaScript adhan-js
The prayer-time engine gave NaN or times hours off. I restored the solar math and checked it against adhan-js. #69
Fixed three tests that failed on main. #70
a11y: calendar month buttons now hide decorative icons, name the grid they control and announce the new month. #72
a11y: the 99 Names dialog now closes with Escape in browsers without showModal(). #73
Search: 99 Names search now ignores diacritics and Arabic harakat. #74
a11y: the Tasbih counter announces when the target is reached. #75
Reset: the Tasbih display now refreshes after settings are reset. #76
Ansari
TypeScript Node.js PostgreSQL
The API's Postgres pool had no error listener. A dropped idle connection became an uncaught exception. It is now logged and the dead client is discarded. #349
Mihrab
TypeScript React Native Kotlin
Arabic home-screen widgets were not RTL. I traced it to widget rows following the phone's locale, not the app's language. The maintainer shipped a fix based on it. #118

Experience

CloudApper AI (a division of M2SYS Technology) β€” Senior Software Engineer Β· Jun 2026 – Present
  • Built an AI app-builder copilot. It plans and builds apps, forms, workflows and dashboards from a chat, then checks its own work. Serves its tools over MCP and calls external MCP servers with per-user auth. (TypeScript, Fastify, Angular, Postgres, Redis)
  • Built a sandboxed code agent on LangGraph. It writes and runs code in gVisor / Firecracker sandboxes, with human approval, web search and resumable runs. (Python, FastAPI, Angular)
  • Set up multi-model routing through a LiteLLM gateway across OpenAI and Claude. Reasoner and verifier models review risky changes. Prompt caching, context compaction and per-call cost tracking keep spend in check.
  • Building a dynamic agent engine in Python on the Claude Agent SDK, LangGraph and LiteLLM. It turns a plain instruction into an agent with its own skills, tools and code sandbox. A router agent picks the simplest path.
  • Added per-user shared memory across the Marketing, Lead Gen and Sales agents. Customer context carries from one agent to the next.
  • Shipped a run-deliverables API with SSE streaming and REST retrieval. Users see live progress, and dropped streams recover cleanly.
  • Moved agent permissions into the tool layer: pre-scoped tool wrappers and human approval on destructive actions. Also blast-radius limits, self-evaluation, policy guardrails and replay tests.
  • Built AI connectors for the no-code platform: RAG knowledge bases, semantic search, field extraction, media transcription and a code-agent plugin. (.NET)
  • Architected Legacy β†’ CloudApper Transform. A Director agent, 4 domain Supervisors and specialist agents read COBOL, PL/I, RPG, VB6 and Delphi code. They produce validated SRS documents. (.NET 10, Python, Kafka, LiteLLM, GCP)
  • Red-teamed a multi-tenant MCP platform for prompt injection, tool-result poisoning and cross-tenant access. Findings led to sandbox isolation, read-only DB fallback, query sandboxing and workload identity.
  • Designed A2A agent swarms and serverless agents such as OpenClaw for HIPAA, SOC 2 and GDPR customers. Agents spawn with least-privilege tools, retry on failure, then hand off to a human.
Vivasoft Limited β€” Software Engineer, Level 2 Β· Aug 2021 – May 2026 (4 yrs 10 mos)
  • Built AI agent microservices with LLMs, RAG, auto SQL generation and vector DBs. They plug into C# .NET Core platforms via gRPC.
  • Engineered .NET Core microservices (SOA, Clean Architecture, CQRS) for healthcare and HR platforms.
  • Built Python FastAPI services and Azure Functions ETL pipelines. They turn messy documents and third-party data into clean records, with retries and clear errors.
  • Automated a workflow across several services, cutting manual effort by over 70%.
  • Built a central SSO service with Redis for 60K+ users.
  • Built eval and test setups: golden datasets for LLM evals, k6 load tests, Grafana dashboards.
  • Cut latency ~20% with Redis caching and SQL tuning. RabbitMQ background jobs gave 30% faster responses.
  • Ran CI/CD, Docker and Kubernetes (ACA/AKS) with least-privilege IAM.
  • Led small project teams and mentored juniors on agent orchestration and back-end design.

Featured projects

☁️ At CloudApper AI

πŸ›οΈ Legacy β†’ CloudApper Transform

Multi-agent code modernization

  • A Director agent leads 4 domain Supervisors and specialist agents.
  • Reads legacy COBOL, PL/I, RPG, VB6 and Delphi codebases.
  • Produces validated SRS and requirement models for the rebuild.
  • I surveyed DeepWiki, Sourcegraph Cody, AWS Transform, IBM ADDI and EPAM ART to shape the design.

.NET 10 Python Kafka LiteLLM GCP

πŸ›‘οΈ Secure multi-tenant MCP agent platform

Agent safety Β· red-teaming

  • Red-teamed for prompt injection, tool-result poisoning and cross-tenant access.
  • Findings led to sandbox isolation and approval gates on destructive tool calls.
  • Read-only DB fallback, query sandboxing and workload identity federation.
  • Agent code runs in gVisor containers with allowlisted tools.

MCP gVisor Microsoft Agent Framework GCP

πŸ€– Dynamic agent engine & A2A swarm

Agentic workflows Β· HIPAA, SOC 2, GDPR

  • Turns a plain instruction into an agent with its own skills, tools and code sandbox.
  • A router agent picks the simplest path for each task.
  • Per-user shared memory links the Marketing, Lead Gen and Sales agents.
  • Agents work together over A2A. Failed tasks retry, then go to a human.

Claude Agent SDK LangGraph LiteLLM A2A MCP Python

πŸ“‘ Enterprise document pipeline

Human-in-the-loop extraction

  • Gemini-based extraction of fields from enterprise documents.
  • Human review gate before any result is saved.

Gemini Python GCP

πŸ§ͺ Earlier work & side projects

🩺 Sybil β€” Multi-agent healthcare AI

HIPAA-regulated Β· production

  • 6 agents with LangGraph orchestration and MCP tools, running on GKE.
  • LiteLLM gateway for routing, fallback and caching. Hybrid RAG on OpenSearch.
  • PHI scanners, calibrated LLM-as-a-Judge and canary rollouts gated by stats tests.
  • Every write goes to an RBAC Postgres audit store. Zero PHI leaks.
  • Document parsing at 90% accuracy on ~100K invoices from 3,000+ clients.

Python LangGraph MCP .NET Azure Doc Intelligence

🧠 Self-Orbit β€” Personal intelligence platform

Open source

  • .NET 10 services (Clean Architecture, CQRS, DDD) behind a YARP gateway.
  • Python FastAPI AI engine for embeddings and LLM inference, linked over gRPC.
  • Next.js 15 front end in strict TypeScript, with server-first rendering.
  • Turns text and audio into tasks, expenses and summaries.
  • Unit, integration and contract tests (xUnit, Moq, pytest) in an Nx monorepo.

C# Python gRPC Next.js 15 Kubernetes

🏒 PIHR β€” SaaS HR & payroll

Enterprise Β· 800+ companies

  • Payroll, attendance and leave microservices for 50,000+ users.
  • RabbitMQ and Redis on AWS. EF Core and Dapper tuning cut query time ~25%.
  • RAG document search, validated with golden datasets.

C# ASP.NET Core RabbitMQ Redis AWS

πŸ‡§πŸ‡© Bangla text summarization

Open NLP research

  • Fine-tuned mT5-large on a large Bangla corpus.
  • ~2Γ— accuracy over earlier Bangla summarization models.
  • Model is public on Hugging Face.

Python PyTorch Transformers mT5

  • Ranks all 64 districts by temperature and PM2.5 air quality.
  • <500 ms p99 from a pre-computed Redis cache with background sync.
  • Clean Architecture and CQRS, with unit, integration and E2E tests.

.NET 10 Redis Hangfire xUnit

  • An MCP server to query Azure Application Insights in plain English.
  • Ask "show me errors from the last 24 hours" inside Claude.

Node.js MCP Azure

πŸ“˜ SaaS-based AI guide

  • RAG product that turns uploaded documents into searchable product guides.
  • Parses uploads, embeds them with Jina and stores them in a vector DB and MongoDB.
  • Source files stay on Amazon S3.

Python FastAPI LangChain MongoDB S3

Tech stack

Languages
Languages

Back end & front end
Back end and front end

Data, AI & ML
Data and AI

Cloud & DevOps
Cloud and DevOps

Tools
Tools

Full tool list
Area Tools
πŸ§‘β€πŸ’» AI-native workflow Claude Code, custom Claude skills, MCP servers, AGENTS.md-driven repos, AI-assisted specs and code review
πŸ€– Agent frameworks Claude Agent SDK, Microsoft Agent Framework, OpenClaw (serverless agents), LangGraph (checkpointers, interrupts), LangChain (Python & C#), OpenAI SDKs (Python, .NET), MCP TypeScript SDK
πŸ”Œ Agent protocols MCP (servers, clients, per-user auth, tool tiers, deferred tool loading), A2A
🧠 LLMs OpenAI, Azure OpenAI, Claude, Gemini, Hugging Face Transformers, mT5, PyTorch
βš™οΈ LLM ops LiteLLM gateway (routing, fallback, caching), multi-model tiers (reasoner, verifier), prompt caching, context compaction, token budgets, cost tracking, SSE streaming
πŸƒ Agent runtime gVisor and Firecracker sandboxes, E2B, tool calling (parallel), human-in-the-loop approvals, resumable runs, thread memory, knowledge graphs, web search (Tavily)
πŸ”Ž RAG & search Embeddings (Jina, OpenAI), hybrid search, semantic search, OpenSearch, Solr, Milvus, vector DBs, Neo4j graph DB, Postgres full-text search, auto SQL generation
πŸ“„ Document & media AI Azure Document Intelligence, OCR, Gemini extraction, PDF and image vision, Office file parsing, audio and video transcription, structured output
πŸ›‘οΈ AI safety & evals Approval gates, least-privilege tools, policy guardrails, red-teaming, PHI scanners, LLM-as-a-Judge, self-evaluation, replay tests, golden datasets
πŸ“‘ Observability OpenTelemetry, Langfuse, Azure App Insights, Grafana
🟣 .NET ASP.NET Core, Web API, EF Core, Dapper, gRPC, YARP, Hangfire, plugin-based connectors
🐍 Python FastAPI, Pydantic v2, LangGraph, SQLite, pytest, pytest-asyncio, Jupyter
🟩 Node.js TypeScript, Fastify, Zod, pnpm, Turborepo, Vitest
🎨 Front end React, Next.js, Angular, Vue, TypeScript, Tailwind CSS, Framer Motion, Radix UI, Nx monorepos
πŸ“¨ Messaging RabbitMQ, Kafka, event-driven systems
πŸ”— Integrations Webhooks, ETL batch and stream pipelines, partner data ingestion, Gmail API, no-code plugin connectors
πŸ—„οΈ Databases PostgreSQL, SQL Server, SQLite, MongoDB, Redis, Upstash
☁️ Cloud Azure (ACA, AKS, Functions, App Insights), AWS (S3), GCP (GKE), Vercel
🚒 DevOps Docker, Kubernetes, Terraform, GitHub Actions, GitLab CI, Jenkins
πŸ›οΈ Architecture Microservices, SOA, Clean Architecture, CQRS, DDD, event-driven design
πŸ§ͺ Testing xUnit, NUnit, Moq, TDD, pytest, Vitest, k6 load testing, contract tests, LLM replay tests
πŸ“œ Governance OWASP Top 10 for Agentic Apps, NIST AI RMF, EU AI Act, HIPAA, SOC 2, GDPR

Recognition & learning

Let's talk

Open to AI product engineering, agentic AI and full-stack roles.

LinkedIn Email

Profile views

Pinned Loading

  1. self-orbit self-orbit Public

    TypeScript 1

  2. microsoft/agent-framework microsoft/agent-framework Public

    A framework for building, orchestrating and deploying AI agents and multi-agent workflows with support for Python and .NET.

    Python 14.6k 2.6k

  3. tryAGI/LangChain tryAGI/LangChain Public

    C# implementation of LangChain. We try to be as close to the original as possible in terms of abstractions, but are open to new entities.

    C# 1.1k 147

  4. handsome-rich/claude-buddy handsome-rich/claude-buddy Public

    A floating desktop widget for monitoring Claude Code sessions, with pixel pets, gacha system, and Dynamic Island mode.

    JavaScript 11 4