Skip to content
View mohd-ibadullah's full-sized avatar

Highlights

  • Pro

Block or report mohd-ibadullah

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. Markdown is supported. 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
mohd-ibadullah/README.md

Mohd Ibadullah

Security and ML engineering. Final-year B.Tech, CSE (AI and ML), KMIT Hyderabad, graduating 2027.

I build small security systems, measure them properly, and keep the eval scripts in the repo so any number I quote can be re-run by someone else.

Available for a 3 to 6 month internship in security or ML engineering, with a path to full-time.

Email: mohdibadullah24@kmit.edu.in LinkedIn: mohd-ibadullah


Stack. Python, FastAPI, React 19, TypeScript, XLM-RoBERTa, SecureBERT, MuRIL, SHAP, LIME, SQLite, Docker, Docker Compose, Nginx, Prometheus, Chrome Extension (Manifest V3).

What it does. You paste a real email, it routes by language, runs a rule engine plus a model, and returns a risk score with a short plain reason. There is a browser extension so the check happens inside the inbox tab instead of in another window. 420 plus automated tests (backend pytest plus frontend unit tests) run on every push in GitHub Actions, and the model weights are registered with byte size and SHA-256 in the repo.

What I measured.

Test Result
XLM-RoBERTa fine-tuned on 194,269 pooled emails (phishshield_v2/config.py), 34,283-email held-out split 0.965 macro F1, 0.952 phishing recall, 0.999 AUC (not per-language numbers: no public Indic email corpus exists)
220-email adversarial out-of-distribution holdout, scored at every training run accuracy 0.686, precision 0.604, recall 0.900, F1 0.723, false positive rate 0.49
Whole pipeline through the live scan endpoint accuracy 0.682, F1 0.685
Manual QA on 100 real inbox emails about 80 to 85 percent
Recall on modern LLM-written and BEC-style mail 0.0. The rule layer carries those patterns as score boosts, so it is mitigation rather than detection
English path (pretrained SecureBERT and MuRIL ensemble with a rule anchor) not fine-tuned on my data, and the repo says so

Stack. Python 3.11, FastAPI, Pydantic, Hugging Face Transformers, LIME, AgentDojo, pytest.

What it does. Asks one question: does a text classifier in front of an agent that can move money make it safer? I fine-tuned three encoders, ran them as a live gate, then replaced the gate with a lock on the tool call itself. Classifying untrusted text turned out to be the wrong layer; locking the action is the right one. The frozen eval set, the scoring files and an offline console demo are in the repo, and 90 pytest tests pass in CI.

What I measured.

Defence, over 144 frozen AgentDojo banking episodes and 16 benign tasks Attack success Benign tasks usable
None 65.97 percent (95/144) 13/16
Detector only, a majority-vote ensemble of RoBERTa, SecureBERT and DistilBERT 70.14 percent (101/144) 11/16
Contract gate on the tool call 0.00 percent 10/16
Destination and amount locked to user text, with argument-level taint tracking 0.00 percent 7/16

The detector caught 0 of 125 live injected payloads, which is why it was dropped rather than tuned.


Stack. Python, PyTorch, sentence-transformers (bge-base-en-v1.5), ettin cross-encoder, BM25, RapidFuzz, Streamlit, pytest.

What it does. Ranks 100,000 candidate profiles against a job description on CPU only, using BM25 plus dense retrieval and a cross-encoder rerank, with a honeypot detector that vetoes keyword-stuffed profiles and a SHA-256 corpus guard against a silently corrupted dataset.

What I measured.

Check Result
Name-blindness, by construction and verified 800 of 800 name swaps returned identical rankings
Identity-strip invariance RBO 1.000, against 0.669 for dense retrieval alone
Bias in my own scoring rule an employer-name penalty, Fisher exact p = 0.0046 at top 20, disclosed instead of removed
Benchmark TalentCLEF 2026 Task A with human qrels

Stack. Node.js 20, Express 5, Socket.IO, MongoDB, Redis, React 19, Vite, Tailwind, Cloudinary.

What it does. My engineering baseline: 30-plus REST endpoints, two React frontends, JWT auth with an admin role gate, Helmet headers, rate limiting, Redis cache-aside with an in-memory fallback, play-count dedupe under concurrent handlers, plus socket auth on the handshake token. Playlist generation never lets the model pick tracks; it returns an intent that is parsed into a Mongo query, so a hallucinated id cannot reach the database.

What I measured. No model benchmark here, it is service work. CI on every push runs server tests, client and admin lint and build, and a high-severity audit check.


Open source

Four pull requests merged into homelab-monitor, a self-hosted host and GPU monitoring tool: a services tab fix, a Telegram alerting channel, an MCP status pill, and SQLite backup and restore. Reading production code I did not write, then fixing it inside a real codebase, is how I learn a stack.


Also used

  • ML and NLP: scikit-learn, TF-IDF
  • Backend and serving: Uvicorn, RBAC
  • Data and infra: pandas, NumPy
  • Evaluation: held-out splits, adversarial and OOD holdouts, nDCG, Fisher exact tests, fixed seeds, frozen artifacts
  • Security domain: SPF, DKIM and DMARC checks, prompt-injection threat modelling, phishing triage, IAM basics in progress

Education and credentials

  • B.Tech, CSE (AI and ML), KMIT, Hyderabad, 2024 to 2027. CGPA 9.29 out of 10
  • Diploma, CSE, Mahaveer Institute of Science and Technology, 2021 to 2024. CGPA 9.33 out of 10
  • Cybersecurity: Tata Cybersecurity Analyst job simulation, Forage, 2026. IAM, access control, security documentation
  • Full stack: Delta Full Stack Web Development, Apna College, 2024
  • Training: Python industrial training, RKJ Technologies, Jun to Nov 2023, during the diploma

Pinned Loading

  1. explainable-llm-forensics explainable-llm-forensics Public

    LLM agents read untrusted text, then call tools. We built a detector, measured it failing live (0/125), and replaced it with a pre-execution lock on money calls. Same 144 episodes, 0.00% attack suc…

    Python

  2. TalentLensAI TalentLensAI Public

    AI candidate discovery & ranking for 100K resumes (BM25 + dense + rerank). Name-blind ranking, honest measurements, and a TalentCLEF identity-leakage study.

    Python

  3. PhishShield PhishShield Public

    Multilingual phishing email detection with a language router across 5 model paths (fine-tuned XLM-RoBERTa, SecureBERT+MuRIL ensemble, TF-IDF fast path), explainable verdicts, and honest OOD evaluat…

    Python

  4. MusicFlow MusicFlow Public

    Full-stack music streaming - React listener + admin, Express (30+ REST APIs, JWT/RBAC, Helmet.js, rate limiting), Socket.IO, Redis, MongoDB, collaborative filtering, AI playlists (Mongo-only retrie…

    JavaScript 2

  5. mohd-ibadullah mohd-ibadullah Public

    2