Projects
A selection of academic and personal projects. Source for most is on github.com/ankit-1517.
Systems & Low-Level
- Compiler Design — C++, LLVM. Emits LLVM IR for a C subset (runs under
lli) with local optimizations: constant-folding, dead-code removal, constant propagation. - Operating Systems Projects — C. A
malloc/freeallocator (free-list, first-fit), a page-table simulation with clock/LRU/MLFQ replacement, and reader/writer-preference RW locks built on semaphores. - Parallel Programming — C++, MPI, OpenMP. Crout’s LU decomposition parallelized with MPI + OpenMP (−50% runtime); tree- vs partition-based parallel reductions.
- Computer Networks — Mini Torrent — C++, libcurl. A large-file downloader that spreads a download across servers and is resilient to disconnections, resuming on new TCP connections.
Distributed Systems & Databases
- Distributed Systems — C++. Pastry DHT (node join/leave, lookups), a threaded GHS distributed-MST simulation, and a Bitcoin system with multi-transaction support.
- Disk-Based R-Tree — C++. A disk-backed R-Tree supporting point and range queries over very large datasets.
- Information Retrieval — C++. BM-25, TF-IDF, Boolean retrieval and an inverted index for large-scale search (100K docs, sub-second queries).
- ProvChain — Java, Blockchain. A secure provenance model combining a provenance database with a blockchain in the cloud (SHA-256 + RSA).
Security
- Networks & Systems Security — C++, Python. Implemented (and cracked) RSA and a birthday attack on SHA-3, implemented TLS for secure messaging, and compared IITD-email vs Gmail security.
- Intrusion Detection — Python, ML. Random Forest, LGBM and CatBoost models to detect suspicious network activity.
Machine Learning & AI
- NLP COVID-Tweet Classification — Python, BERTweet. Code for the paper Identification of Misinformation in COVID-19 Tweets Using BERTweet (NLP4IF, 2021).
- Reinforcement Learning & Atari DQN — Python. DeepMind’s DQN and linear Q-net approximation for Atari Pong; a range of RL techniques on control problems.
- GridWorld — MDP & Q-Learning and PacMan AI — Python. Value iteration / Q-learning, and informed search + adversarial (minimax/expectimax) agents.
- NER using Bi-LSTM — Python. Bi-LSTM with GloVe and character-level embeddings for named-entity recognition.
- Image Processing & Marker-Based AR & Hand-Gesture Recognition — Python, OpenCV. Segmentation/wavelets/morphology, a 2D AR car via camera calibration + homography, and a CNN-based gesture-controlled music player.
- Recursive Bayesian Estimation — Python. Localizing a flying aircraft from noisy sensor observations.
Apps & Misc
- Rendezvous App — React Native. The official app for Rendezvous, IIT Delhi’s cultural festival (Android + iOS).
- Data Structures Projects — Java. A structure for a simplified mobile-phone location-tracking problem.
- Brainfuck Interpreter — C++. A small Brainfuck interpreter.