Hi, I'm Ali Rahimian, a machine learning engineer working on efficient Transformers and computer vision.
- Co-author of TruthLens (ICML 2025), a training-free deepfake detection framework built on VLMs
- Lead developer of Fibottention,
$O(N \log N)$ sparse attention for ViTs using only 2–6% of interactions - More than 8 years of experience (as ML researcher, software engineer, data engineer, and co-founder)
- Lots of teaching and mentoring experience (as a teaching assistant, ESL instructor, and mentor)
- Former ML Engineer/Researcher at Charlotte Machine Learning Lab (under Dr. Christian Kümmerle)
- M.S. in Computer Science at UNC Charlotte (GPA 3.9, thesis on multi-head sparse attention)
- B.S. in Computer Software Engineering at Yazd University (ranked 1st for three consecutive years)
- Multiple contest awards (ICPC Tehran Regional HM, 2nd JCAL, 3rd Sharif Fintech, 4th Obfuscated C)
- Open to ML Engineer, Research Engineer, and Applied Scientist roles (US, on-site/hybrid/remote)
You can contact me through email: akhalegh@charlotte.edu
Selected Repositories
-
Fibottention – Wythoff/Fibonacci sparse attention cutting ViT self-attention from
$O(N^2)$ to$O(N \log N)$ - TruthLens – Training-free deepfake detection via VQA-style probing of vision-language models; ICML 2025
- Sparxiv – Spark recommender over 3M+ arXiv papers: Parquet ETL, MLlib TF-IDF, CSR top-k search
- CTRL – Cross-task RL with PPO transfer, Reptile meta-learning, and EWC continual learning
Machine Learning & Efficient Transformer Models
- two-percent-attention – Sparse attention for ViTs at 2% of dense attention FLOPs, benchmarked across 10 mechanisms
- vgg-magnitude-pruning – PyTorch implementation of Han et al. magnitude pruning on VGG
- linear-quantization-from-scratch – Linear quantization in PyTorch from first principles, down to int8 multiply + int32 accumulate
- transformer-encoder-from-scratch – Transformer encoder in PyTorch, built up from scaled dot-product attention to a full stack
- accelerated-gradient-methods – Accelerated gradient methods: Momentum, Nesterov, and when theory misbehaves
- gradient-descent-convergence – Gradient descent variants compared across quadratic, nonconvex, and least-squares tasks
- closed-form-ridge-regression – Ridge vs. OLS via normal equations: log-spaced λ sweep with pairwise interaction features
- logistic-regression-naive-bayes – Multiclass logistic regression (GD/IRLS) and Gaussian/Bernoulli Naive Bayes from scratch
- nonlinear-decision-boundaries – Nonlinear decision boundaries with a two-layer neural network
- cross-in-tray-optimization – Genetic algorithm and simulated annealing for the Cross-in-Tray global optimization benchmark
Computer Vision & Deep Learning
- moco-joint-ssl-training – MoCo contrastive learning trained jointly with a supervised head from scratch
- oneshot-openclip-tta – One-shot OpenCLIP classification with confidence-gated test-time prototype adaptation
- vit-imagenet21k-finetune – ImageNet-21k ViT-B/16 fine-tuned for 16-class image classification: 96.75% test accuracy
- watershed-image-segmentation – Segmentation with Watershed algorithm: median blur, contour detection, and custom seeds
- hand-segmentation-convex-hull – Hand segmentation & finger counting with Gaussian blur, contour detection, and convex hull
- opencv-tracking-algorithms – Lucas-Kanade & Farneback optical flow, MeanShift/CAMShift, and OpenCV KCF/MIL trackers
- opencv-keypoint-detection – Real-time Haar-cascade face/eye detection with median-adaptive Canny edge extraction
Deep Reinforcement Learning & Game Theory
- sb3-ppo-clip-carracing-v3 – SB3 PPO-Clip + GAE(λ) on CarRacing-v3 with CNN over 4 stacked 84×84 frames
- dqn-ddqn-pong-v5 – DQN + Double DQN on ALE/Pong-v5 with replay, Huber loss, and difficulty 2–3 training
- tabular-qlearning-frozenlake-v1 – Tabular Q-learning on FrozenLake-v1: Bellman TD updates with ε-greedy 1.0→0.01 decay
- ppo-clip-lunarlander-v3 – From-scratch PPO-Clip on LunarLander-v3: categorical actor-critic, normalized GAE(λ), clip-ε decay
- dqn-replay-noise-ablation – DQN ablation of prioritized vs uniform vs online replay, parameter noise vs ε-greedy
- pacman-search-agent – BFS/DFS/UCS/A* search agent with admissible Manhattan/Euclidean heuristics and a Pygame visualizer
Distributed & Cloud Computing
- aws-event-driven-etl – Event-driven S3 → Lambda → Glue → Athena (Trino) ETL with a boto3/Flask dashboard on EC2
- aws-ecommerce-analytics – AWS S3 → Glue crawler → Athena window-function analytics on ~129k Kaggle e-commerce sales
- pyspark-ride-streaming – PySpark Structured Streaming ride analytics: watermarked sliding windows, MLlib fare prediction
- pyspark-listening-behavior-analytics – PySpark user listening behavior analytics: deterministic row_number ranking, genre loyalty
- hadoop-jaccard-similarity – Hadoop MapReduce pairwise Jaccard similarity via inverted index, benchmarked on 1 vs 3 DataNodes
Parallel Computing
-
cuda-openmp-nbody –
$O(N^2)$ 2D N-body gravity in sequential C++, OpenMP, and CUDA, scaling to 100k bodies - cuda-h2d-d2h-bandwidth – CUDA H2D/D2H bandwidth benchmark: pageable malloc vs. pinned cudaHostAlloc, 1 MB–1 GB sweep
- openmp-bottom-up-mergesort – OpenMP bottom-up merge sort with merge-path partitioning, scaled to 10⁹ elements
- openmp-three-pass-scan – Three-pass block-decomposed exclusive scan in OpenMP; 12.6× speedup on 10⁹ elements, 64 threads
- bitcoin-merkle-engine – Parallel Bitcoin Merkle engine: SHA-256d trees, SPV proofs, PoW and SegWit commitment checks
Software Development
- Ase – Multilingual BM25 search engine in Java: SPIMI, positional phrase queries, Porter stemming, Jaccard spell correction
- Jaga – A Java game development framework for Android: 10-pointer multi-touch, object pooling, Canvas HAL
- EZpark – Campus Parking Management System for UNC Charlotte: QR spot check-in, React.js, Fastify, MongoDB
- infinity-bot – Large-scale Discord community bot with ~300 Python modules across 72 independently loadable extensions
- fips197-aes-gcm – FIPS-197 AES + SP 800-38D GCM from scratch in Java; streaming AES-256-GCM file CLI with PBKDF2/HKDF
- asyncio-file-transfer – Concurrent asyncio file transfer over TCP: resumable downloads, SHA-256 checks, atomic uploads
-
java-jdbc-loyalty-engine – Java/JDBC loyalty engine on SQLite with merge sort and
$O(\log N)$ binary search scoring 5.7M transactions




