About
From the maths to the monitor
I build retrieval systems and the pipelines that keep them alive — including one that answers Roman-Urdu questions from Urdu-script documents, at 0.983 Recall@10 against 0.192, on no GPU.
I'm Hasnat, an AI/ML engineer in Islamabad, in the final stretch of a BS in Computer Science at COMSATS. I build the whole loop: the scraper that pulls data nobody packaged, the model trained on it, the pipeline that retrains and redeploys it when it drifts, and the API or interface a non-technical user can actually run.
I came at this from underneath — x86 assembly, C, manual system calls, cryptography, data structures by hand — then NumPy classifiers, then PyTorch. That scaffolding is why I can tell a bad gradient from a container that won't start. When gensim wouldn't build on Python 3.14, I wrote the coherence metrics from their definitions rather than pinning an older interpreter; that's the habit the low-level work bought me.
The thing I'd most want you to check is how I report results. Every number on this site carries what it beat and what it cost, because a metric without a baseline isn't a measurement. My best classifier wins by two points and costs 1,700× the training time of the model it beat, and I said so in the README before anyone asked.

3
roles: two internships and a national programme
14
certifications, all independently verifiable
1M
rows DataPrep is measured at, in Rust
26
public repositories, counted live
How I work
The model is one node of five
Most portfolios stop at 'trained a model'. The four stages either side of it are where the work actually lives, and each one here names the project that proves it.
Ingest
Scrape and clean the source nobody has a tidy CSV for
DataPrep — 1M rows filtered in 189 ms; the Zameen scraper
BeautifulSoupPandasRustTrain
Fit it, and know the maths well enough to debug it
DistilBERT fine-tune — 0.9830 macro-F1
PyTorchTransformersscikit-learnEvaluate
Held-out metrics, and the honest ones rather than the flattering ones
Four-model leaderboard with cost per point
Macro-F1nDCGCoherenceServe
Behind an API or an interface a non-technical user can operate
Prognostix API; the Koha widget
FastAPIDockerReactMonitor
Watch it drift, then trigger the retrain
Prognostix monitoring module
Drift checksAlerting
Monitor feeds back into train. That loop is the whole point — a model that isn’t retrained is a model quietly getting worse.
Toolkit
What I actually reach for
Grouped by the kind of work rather than by language, and each group names where it was used — a skill list without evidence is a word cloud.
Machine learning
Used in Raabta, the ITSimplera weeks, and Prognostix.
- PyTorch
- TensorFlow / Keras
- scikit-learn
- Hugging Face Transformers
- NumPy
- Pandas
- XGBoost
- Neural networks
- Backpropagation
- Feature engineering
- Cross-validation
- Hyperparameter tuning
LLMs, NLP & retrieval
Raabta's retrieval stack, the BBC News NLP week, Attention Lab.
- Transformer fine-tuning
- Sentence embeddings
- Dense retrieval
- BM25
- Reciprocal Rank Fusion
- Cross-encoder reranking
- Retrieval-augmented generation
- Topic modelling (LDA, NMF)
- Named entity recognition
- spaCy
- Prompt engineering
- LangChain
MLOps & deployment
Prognostix runs all of this; the ITSimplera weeks shipped apps.
- Docker & Docker Compose
- FastAPI
- Model serving
- Training pipelines
- Drift monitoring
- Scheduled retraining
- Model registry & persistence
- GitHub Actions CI
- pytest
- Pinned environments
Data engineering & automation
DataPrep in Rust, the Zameen scraper, the Koha SQL layer.
- Web scraping
- ETL pipelines
- Data cleaning at scale
- Parameterised SQL
- API automation
- Bash scripting
Languages
Ordered by how much I've actually written.
- Python
- C++
- C
- Rust
- JavaScript
- TypeScript
- SQL
- x86 Assembly
Systems & security
The virtual file system, AegisChain, the RLE engine.
- Operating systems
- Data structures & algorithms
- Cryptography (RSA, AES-256, SHA-256)
- Digital signatures & PKI
- Blockchain / proof of work
- Linux (Kubuntu / KDE)
Build & ship
NovaCare, SkyCaster, the Koha widget, this site.
- React
- Next.js
- Node.js / Express
- MongoDB
- MariaDB / MySQL
- REST API design
- Streamlit
- Tailwind
Journey
The training run
Each epoch is a step down the curve — the loss being the gap between what I could build and what I wanted to.