Hi, I'm Ali Rahimian, and these are some highlights from my CV:
- Lead developer of Fibottention,
$O(N \log N)$ sparse attention for images, video, and robotics - Co-author of TruthLens (ICML 2025), a training-free deepfake detection framework built on VLMs
- 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 (thesis on diverse 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, Senior Software Engineer, and Data Scientist roles (US, on-site/hybrid/remote)
Email: akhalegh@charlotte.edu · LinkedIn: alikrahimian · Scholar: Ali Rahimian · YouTube: Ali Rahimian
-
Fibottention – ViT sparse attention,
$O(N^2) \to O(N \log N)$ , for images, video, and robotics -
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
-
Ase – Multilingual BM25 search engine in Java: SPIMI, positional phrase queries, Porter stemming
More projects by topic
Deep Learning & ML Research
Efficient Transformers & Sparse Attention
-
Fibottention – ViT sparse attention,
$O(N^2) \to O(N \log N)$ , for images, video, and robotics - two-percent-attention – Sparse attention for ViTs at 2% of dense attention FLOPs, benchmarked across 10 mechanisms
- transformer-encoder-from-scratch – Transformer encoder in PyTorch, built up from scaled dot-product attention to a full stack
Model Compression
- linear-quantization-from-scratch – Linear quantization in PyTorch from first principles, down to int8 multiply + int32 accumulate
- vgg-magnitude-pruning – PyTorch implementation of Han et al. magnitude pruning on VGG
Vision-Language & Representation Learning
- TruthLens – Training-free deepfake detection via VQA-style probing of vision-language models; ICML 2025
- oneshot-openclip-tta – One-shot OpenCLIP classification with confidence-gated test-time prototype adaptation
- moco-joint-ssl-training – MoCo contrastive learning trained jointly with a supervised head from scratch
- vit-imagenet21k-finetune – ImageNet-21k ViT-B/16 fine-tuned for 16-class image classification: 96.75% test accuracy
Reinforcement Learning
- CTRL – Cross-task RL with PPO transfer, Reptile meta-learning, and EWC continual learning
- ppo-clip-lunarlander-v3 – From-scratch PPO-Clip on LunarLander-v3: categorical actor-critic, normalized GAE(λ), clip-ε decay
- sb3-ppo-clip-carracing-v3 – SB3 PPO-Clip + GAE(λ) on CarRacing-v3 with CNN over 4 stacked 84×84 frames
- dqn-replay-noise-ablation – DQN ablation of prioritized vs uniform vs online replay, parameter noise vs ε-greedy
- 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
ML Foundations & Classical AI
Classical ML from Scratch
- logistic-regression-naive-bayes – Multiclass logistic regression (GD/IRLS) and Gaussian/Bernoulli Naive Bayes from scratch
- closed-form-ridge-regression – Ridge vs. OLS via normal equations: log-spaced λ sweep with pairwise interaction features
- nonlinear-decision-boundaries – Nonlinear decision boundaries with a two-layer neural network
Optimization & Search
- 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
- cross-in-tray-optimization – Genetic algorithm and simulated annealing for the Cross-in-Tray global optimization benchmark
- pacman-search-agent – BFS/DFS/UCS/A* search agent with admissible Manhattan/Euclidean heuristics and a Pygame visualizer
Classical Computer Vision (OpenCV)
- opencv-tracking-algorithms – Lucas-Kanade & Farneback optical flow, MeanShift/CAMShift, and OpenCV KCF/MIL trackers
- 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-keypoint-detection – Real-time Haar-cascade face/eye detection with median-adaptive Canny edge extraction
Data Engineering & High-Performance Computing
Search & Recommendation
- Sparxiv – Spark recommender over 3M+ arXiv papers: Parquet ETL, MLlib TF-IDF, CSR top-k search
- Ase – Multilingual BM25 search engine in Java: SPIMI, positional phrase queries, Porter stemming, Jaccard spell correction
Distributed & Streaming Data Processing
- 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
Cloud ETL & Analytics (AWS)
- 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
GPU & 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-three-pass-scan – Three-pass block-decomposed exclusive scan in OpenMP; 12.6× speedup on 10⁹ elements, 64 threads
- openmp-bottom-up-mergesort – OpenMP bottom-up merge sort with merge-path partitioning, scaled to 10⁹ elements
Software Engineering
Cryptography & Blockchain
- Rijn – FIPS-197 AES + SP 800-38D GCM from scratch in Java; streaming AES-256-GCM file CLI with PBKDF2/HKDF
- bitcoin-merkle-engine – Parallel Bitcoin Merkle engine: SHA-256d trees, SPV proofs, PoW and SegWit commitment checks
Networking & Backend Systems
- Aport – Concurrent asyncio file transfer over TCP: resumable downloads, SHA-256 checks, atomic uploads
-
Punchcard – Java/JDBC loyalty engine on SQLite with merge sort and
$O(\log N)$ binary search scoring 5.7M transactions
Web, Mobile & Bots
- EZpark – Campus Parking Management System for UNC Charlotte: QR spot check-in, React.js, Fastify, MongoDB
- Discore – Large-scale Discord community bot with ~300 Python modules across 72 independently loadable extensions
- Jaga – A Java game development framework for Android: 10-pointer multi-touch, object pooling, Canvas HAL




