~/jayanta-roy

$ whoami

Jayanta Roy

AI/ML and software engineer. I build retrieval systems, computer vision pipelines and the evaluation that keeps them honest, then ship them end to end and report what they measure, including the parts that fall short.

$ cat now.txt
→ thesis: brain MRI classification (healthy, Alzheimer’s, Parkinson’s, MS)
→ cinescope: all 10 phases built, now a one-pass pipeline + web app
→ bd-legal-rag: fully local and private, one-click Windows setup
$

this terminal is real — type help, tap a command above, or press / anywhere to jump here · 0/0 commands discovered

see the work email me
how is the ranking calculated?

Your 5 taps give a mean and a 95% bootstrap interval (1,000 resamples). The server counts how many earlier results you beat, once at your mean and once at each end of your interval, so the range you see is your own uncertainty carried through to your rank. Only a count per 10 ms bucket is stored: no IP, no identifier, no raw taps.

01 About me

I’m a final-year Computer Science student at BRAC University, graduating January 2027, and an AI/ML and software engineer who likes to finish what I start: a working system, measured honestly, not a notebook that only runs on my machine.

Most of what’s below came out of the same habit — build the evaluation set before the clever part, implement the core idea from scratch to actually understand it, then compare it to the library everyone uses. I report the misses too: confidence intervals, refusals, and the baselines that beat me.

Outside of code: Bangla and English fluently, enough French to order a coffee, and I’m currently finishing a thesis on classifying brain MRI scans across four conditions.

02 Selected work

Bilingual Legal RAG

Complete · MIT

Retrieval · LLM evaluation · Bangla NLP

Ask about Bangladeshi law in Bangla, English or romanised Bangla and get an answer grounded in the statutes, every sentence cited to a section, or an honest refusal when the corpus has no answer. It runs free and fully on a laptop: embeddings, index and answering model are local, and the app checks its own settings before it tells you your question never leaves the machine.

  • 90.7%right section in top 5
  • 0.78MRR
  • 100%citations point at real text
  • 90.6%declines exactly when it should
  • 52/52injection checks pass in CI
  • Chosen by measurement: dense retrieval with section-reference resolution beat every BM25 fusion setting on 43,966 chunks, so that’s what is served.
  • Guardrails: citation and verbatim-quote checks, language check, one corrective re-prompt, PII redaction before any model or log sees the question.
  • Agent mode for multi-hop questions (search, get_section, follow_refs), OCR ingestion for scanned gazettes, paraphrase cache, SSE streaming UI.

86 held-out questions with 95% bootstrap intervals. 71.5% of cited sections are the right ones; lawyer-graded accuracy is not measured yet and the repo says so.

Pythonbge-m3BM25 + RRFcross-encoderOllamagemma4StarletteTesseract

CineScope

10 / 10 phases built

Computer vision · from pixels up

An X-ray engine for films: give it a movie and it returns every cut and camera move, shot framing, who is on screen and talking, the colour palette, scene search in plain English, actor cutouts and a 3D fly-through. Every phase follows one rule: implement the core idea from scratch, then benchmark it against the production library.

classical CVCNNs · detection · tracking · 3D · OCR · CLIPproduction
MetricMine vs library
Shot-cut F1vs PySceneDetect
mine
0.945
lib
0.960
Shot-framing accuracy289 hand-labelled shots, vs teacher
mine
0.796
lib
0.806
Face AP50, dark framesown CenterNet vs YuNet
mine
0.915
lib
0.989
Scene search Recall@5own exact index vs FAISS Flat
mine
0.783
lib
0.783
Scene-type accuracyfine-tuned VideoMAE vs CLIP zero-shot
mine
0.370
lib
0.852
  • 15 h → 5 h to process a 2-hour film on a 4-core CPU after rewriting the phase tools as a one-pass ONNX Runtime pipeline with cache and resume.
  • Editor-ready exports: EDL, FCPXML and OpenTimelineIO cut lists, storyboard PDF, WebVTT subtitles and a highlights reel cut on the beat.
  • FastAPI + React web app, Docker image, CI that runs the full pipeline on a clip. Face AP on WIDER FACE: 0.59 / 0.73 / 0.79 (Easy / Med / Hard).
PyTorchNumPyOpenCVCLIPSAM 2COLMAPONNX RuntimeFastAPIReact

SupportFlow

Complete

LLM automation · backend reliability

Signed webhooks in, structured triage out. An LLM classifies each customer message (English, Bangla or a mix) by category, urgency and sentiment; the output is schema-constrained, validated and retried with feedback, and a summary lands in Slack. Every stage and every failure is stored.

Tally webhook→HMAC verify→dedupe eventId→202→LLM + JSON schema→Pydantic→Slack
  • Fails closed: constant-time signature check on raw bytes before parsing; no secret configured means every request is rejected.
  • Idempotent and replayable: unique event index survives racing retries; a replay command resends only what failed, without paying for a second classification.
  • Retries only what can succeed (network, 429 with Retry-After, 5xx); CI on Python 3.11–3.13.
PythonFastAPISQLAlchemy 2PydanticOllamaSlackGitHub Actions

QualityLens

Complete · v1.0

QA engineering · test automation

A full QA process run on one real application (Gitea, a Git service, in Docker): manual test design, UI, API, database, security, accessibility, visual and property-based automation, an AI test-case generator measured against the hand-written suite — and the framework itself is tested and mutation-tested.

  • 589automated tests
  • 12confirmed bugs found
  • 96%framework branch coverage
  • 95.9%mutation score
  • 0%load-test errors, p95 180ms
  • Property-based testing: Hypothesis generates hundreds of inputs per rule and a state machine fuzzes random issue workflows — this is how BUG-011 and BUG-012 were found.
  • Reusable toolkit: qualitylens init --url <app> writes a ready-to-run suite (API, browser, accessibility, CI, flaky tracking) for any web app, pip-installable with a Docker image.
  • Cross-browser (Chromium/Firefox/WebKit), WCAG 2.1 AA checks on 9 screens, pixel-diff visual regression on 8, flaky tests quarantined with an owner and expiry instead of silently retried.

Weekly compatibility run against newer Gitea versions catches regressions before anyone asks; a trend dashboard tracks suite time, flakes and failures run over run.

PythonPlaywrightpytestHypothesisLocustaxe-coreDockerGitHub Actions

Network design as code

Complete · new

Networking · tooling · testing

An enterprise network for four sites (VLSM, OSPF + static routing, centralized DHCP, DNS, web and email) built in Cisco Packet Tracer, then turned into design-as-code: one spec file generates the addressing plan, every router config and the docs, and a routing simulator proves in CI that every subnet reaches every other.

  • Verified against the as-built lab: tests parse the configs exported from Packet Tracer and diff them semantically with the generated ones.
  • Found real bugs in the original hand-written design, including a link that was never advertised into OSPF; a regression test proves the gap returns without the fix.
  • Strict mypy, Hypothesis property tests, ≥95% branch coverage, plus a zero-dependency web VLSM planner checked against the Python engine.
PythonCisco IOSOSPFVLSMHypothesismypyJavaScript

Brain MRI classification

Thesis · in progress

Medical imaging · research

Four-class MRI classifier (healthy, Alzheimer’s, Parkinson’s, multiple sclerosis). ImageNet-pretrained backbones adapted with masked-autoencoder pre-training; a healthy-reference memory feeds an interpretable head. Benchmarks are pending, so none are shown.

PyTorchtimmConvNeXtSwinMAE

03 More projects

AgentWaste reproduction kit

Co-authored · unpublished

Independent local reproduction of a preregistered study of wasted compute in LLM agent loops, with its original author. 560 matched runs on Qwen3 1.7B/4B/8B, CPU-only. 11 of 13 preregistered checks passed; the two Qwen3-4B success-rate checks failed, and the write-up says so. Paper not yet published.

  • 11/13preregistered checks passed
  • 560matched runs
PythonOllamapytestPreregistration

Travelo

Team of 3

Collaborative trip planner: itineraries with maps, shared checklists, expense splitting, photos and live group chat. I built auth (HTTP-only JWT), NID/passport verification, trip management, checklists, chat and notifications.

React 19Express 5MongoDBSocket.IOZod

Full ML pipeline on student outcomes: EDA, mutual-information feature selection, stratified splits, logistic regression, naive Bayes and an MLP compared, plus KMeans clustering with PCA.

scikit-learnpandasseaborn

25–30 page study benchmarking Node.js (single-threaded, cluster, Express+cache) against an NGINX reverse proxy under load. Measured 67% latency reduction and 90% memory savings over a naive setup, at roughly 1/200th the cost of a traditional deployment.

  • 67%latency cut (145→48ms)
  • 1000concurrent users, <100ms
Node.jsNGINXBenchmarking

3D penalty game in PyOpenGL with PvP and PvC modes, sudden death, and three difficulty levels. The AI keeper biases its dive toward where you shoot most.

PythonPyOpenGLGLUT

Excel workbook, generated from Python, that tracks client requests against SLA targets with a formula-driven dashboard and an auto-written weekly report. Built with AI assistance; sample data.

ExcelopenpyxlCOUNTIFS

04 Approach

  1. 01

    Measure first. Build the evaluation set before the clever part, so an improvement can be told from a regression.

  2. 02

    Report the misses. Confidence intervals, refusals and the baselines that win go in the README next to the headline number.

  3. 03

    Implement, then compare. Write the core idea from scratch to understand it, then benchmark it against the library.

  4. 04

    Make it run end to end. A model nobody can call, replay or test is a notebook, not a system.

05 Skills

Languages
Python, JavaScript/TypeScript, SQL, C++
ML & CV
PyTorch, timm, scikit-learn, OpenCV, NumPy, pandas, CLIP, ONNX Runtime
LLM systems
RAG, embeddings, hybrid retrieval, reranking, agents and tool calling, schema-validated outputs, LLM evaluation, Ollama
Backend & web
FastAPI, Starlette, SQLAlchemy, Node.js, Express, React, MongoDB, REST, SSE, WebSockets
Quality
pytest, Hypothesis, mypy, ruff, GitHub Actions, Docker
Networking
Cisco Packet Tracer, VLSM, OSPF, DHCP, DNS
Credentials
DataCamp Data Analyst (2025), DataCamp AI Engineer for Developers (2026)

06 Recent activity

  • loading from github…

Live from the public GitHub API.

07 Contact

Open to AI/ML and software engineering roles from January 2027, and to relocation. Email is the best way to reach me.