About

অভিবাদন! Greetings! السلام عليكم!

I am Tamjid Hasan Fahim. Computer Science & Engineering freshman sophomore junior-year student at RUET. Wannabe a real computer scientist.

Currently building RepositoryExplainer, a hierarchical RAG based agentic-AI system to explain a large codebase just like a senior software engineer. Also exploring the research areas around Deep Learning (specially Graph Neural Networks). Maybe solving some Leetcode problems on the weekend.

To me, Computer Science feels like just as Terry Pratchett wrote, "It is still magic even if you know how it is doing." Magic not with wands and robes, but the kind where absurdly simple building blocks stack up through layers of abstraction until they turn into systems of remarkable complexity and elegance. This enduring sense of wonder, of being able to grasp the underlying mechanism yet still be astonished by its form, drives me to explore deeper into the rabbit holes that make modern computing possible.

Personally, I am INTP. Interested in architecture, cognitive science, literature & technology. Astonished by how far abstraction has taken us, fascinated by the intricacies of low-level workings, and continually amazed by both nature and human ingenuity.

I am open to jobs, team collaborations or publication opportunities in SWE/CS/ML domains.


Profile Links

Email LinkedIn Github Leetcode Facebook Twitter Discord


Projects

Repository Explainer: An Intelligent RAG-oriented Web Application with AI-Agentic Capability for Understanding GitHub Repositories

Repository Explainer leverages a multi-layered RAG framework with an AI agent to address the limitations of large language models when processing entire codebases. It features an intelligent dual-granularity indexing system, both at file-level and at logical-unit level, preserving both the context and the precision. Logical units are extracted using tree-sitter based utilities to enable fine-grained sementic analysis of the codebase. The system can generate high-level summaries of a repository’s architecture, data flow & content and also answer developer queries in natural language by retrieving and integrating relevant code context. Additionally, an AI agent is integrated that can fetch specific files or functions on demand.

Technology Stack: LangChain for orchestration, Google Gemini API for cloud LLM model, Nomic Embed & MiniLMvminilm-l12-v2 for local embeddings, ChromaDB for vector storage, Tree-sitter for logical unit extraction, GitHub API for code fetching, Django for backend and Gunicorn/Nginx for deployment.

View Repository - Project Report - Live Site

Dormitory

Dormitory is a community-driven app designed to connect passionate students, educators, enthusiasts and geeks, fostering the advancement of a collective knowledge base. I designed the core pipeline for semantic search across the paltform using content embeddings and vector store, created the dormitory-kitten bot to automatically scrape and post opportunities from external sources. To provide personalized guidance, I orchestrated a student-aware, RAG-oriented chatbot that pulls insights from the platform’s knowledge base and can remember past conversations.

Technology Stack: Django, Django REST API, Langchain, ChromaDB, Gemini API.

View Repository - Backend API Endpoints for Testing

Malware Detection from PE Headers Data utilizing Machine Learning Approaches

We researched and developed a feasible end-user solution for static malware analysis and detection from Portable Executable (PE) headers data using multiple machine learning algorithms. We also compared & contrasted our approach with pre-existing literatures and end-user solutions.

The project includes the entire pipeline- from data preprocessing, feature extraction, feature selection to model training, evaluation and visualization.

Technology Stack: Python, Jupyter Notebook, Scikit-learn, Pandas, NumPy, Matplotlib, Seaborn, VirusTotal API, Google Cloud.

The repository is currently private will be made public soon. However, I am open to sharing it now upon request.

Dormitory Time Tracker (Merged with later projects)

This is a collaborative time-tracking web application designed to facilitate efficient time management and productivity for users. It allows users to track their time spent on different tasks, get detailed reports of their time usage and see their peer’s online status real-time using WebSockets.

Technology Stack: Python, Django, Django REST API, Django-Channels, React, Shadcn, Tailwind, SQLite, Redis, Websocket and Daphne async server. View Repository

ODE solver

Python-backed web application to solve non-homogeneous ordinary differential equations (ODEs) utilizing Python libraries like Pandas & NumPy.

Technology Stack: Python, Django, Pandas, NumPy, HTML & CSS. Other Contributors: Kefaet Ullah.
View Repository

tamjid.me

Personal portfolio website showcasing my projects, skills and write-ups.

Technology Stack: Hugo, Github Pages, Twitter API. View Repository


Latest posts

Apr. 28, 2025

Dutch National Flag Algorithm

The problem is pretty simple. You are given an array with only three distinct values - 0, 1, 2, and you want them to be sorted in-place. Surely you can utilzie any typical in-place sorting algorithms like insertion sort or quick sort- but they cannot go better than O(nlogn) time complexity. As we have only three distinct values across the entire array, can we do better? That’s where the Dutch National Flag Algorithm (DNF) comes in. Read More

Mar. 8, 2025

01 Matrix on LeetCode: Multi-Source BFS and Two-pass DP Solution

In Multi-source BFS, we start from multiple source nodes simultaneously instead of starting from a single source node, In this case, all the 0 cells act as the initial sources, and we expand outward in all directions. This works efficiently because BFS inherently explores all nodes layer by layer, guaranteeing that the first time we reach a cell, it is via the shortest possible path. Unlike the naive approach of running BFS separately for each 1 cell (which would be too slow), multi-source BFS spreads out from all 0s in parallel. Again, BFS processes each cell exactly once so this solution will run in O(m*n). As of the DP solution, the recursive approach must NOT create cyclic dependencies. When we are computing the distance for a cell, we are making recursive calls to all its neighbors, right?. But if two cells depend on each other, for example, cell A calls cell B, which in turn calls cell A (or another cell that eventually calls A) before A’s value is finalized, you’ll end up in an infinite loop or incorrect results because the dp value for A is still set to –1 when B checks it. In recursive DP, if we do not ensure that all dependent subproblems are solved before the current cell’s computation, the recursion can “chase its tail” or run infinitely and never reach a stable solution. Read More

Mar. 4, 2025

Impermanence

For days now, a strange sensation has taken root in me. It is as if I have been shot somehow, and blood is gushing through the gaps of my fingers in an unrelenting endless flow, without pause, without mercy, without any haste or hesitation, but with a measured, inevitable grace. And I can’t stop it in no means. It does not pool or clot, it simply leaves, abandoning the very me, slipping from each corridors of my body. Read More

Apr. 17, 2024

Tech To Be Obsoleted

My suggestion for novice PC users who are thinking of building a PC for causal usage is to avoid online PC builder hobbyists. Most PC builders community online are often some too-enthusiastic people out there who are more into keeping the latest-fastest-unnecessarily_overclocked PC in one corner of their room. It’s their HOBBY (not necessity) to squeeze every hz of their processor & other components often completely unnecessarily only to waste their time gaming and commenting on their communities :v So get whatever is decent for your workload and don’t chase for the someday-i-might-need-this-feature or the never-obsolete-PC. No tech is future-proof. It will start becoming obsolete or at least old in terms of technology even before you realize it, but most probably it will keep working and you will not upgrade it until it REALLY sucks – it is when it can’t do what you NEED to do. Most potato users build a PC maybe once a decade unlike these hobbyists so know that you are not on the same ground as the people you are taking advice from. Read More

Mar. 21, 2024

Dungeon Game on LeetCode : Finding The Right Question To Ask in DP Problems

I have been solving DP problems for last 2 days and guess what, they are really cooool and fun to solve. Previously I didn’t enjoy this much while solving topic-wise problems on Prefix Sum or Sliding Window. Dungeon Game is my first solved bottom-up DP problem. It’s marked as hard, but I believe it is sort of quite medium level problem.

In DP problems, the main part is to find out what to remember as Errichto said. And for that, you have to know the right question to ask.

Read More