Runs projects and tasks as plain Markdown notes with time tracking on top: a Kanban board, a pausable timer, and a dashboard of hours logged, streaks and per-project breakdowns. Everything stays in frontmatter — no database, no lock-in if you stop using it.
Projects
Things I build on my own time.
Five plugins published in the Obsidian community directory, plus the graduate coursework still worth showing.
Obsidian plugins
Published in the official community directory.
Converts Gregorian dates to Shamsi (Jalali) automatically inside Obsidian. Watches frontmatter properties, applies the Persian calendar conversion, and writes the result back — or just displays it, leaving the source untouched.
Smart RTL
2026147 downloads
Sets each line's text direction from the majority of its words, so a Persian, Arabic or Hebrew line that opens with an English word still reads right-to-left.
Codecks Bridge
2026Brings Codecks boards into Obsidian: browse decks as a colour-coded grid, filter by project and status, and bulk-import cards as tasks. Deliberately read-only, with duplicate protection via Codecks IDs, so nothing upstream can be broken by accident.
Prompt Shelf
2026Keeps AI providers, keys and reusable prompts in one place, and runs them on any text from the command palette or from your own scripts.
Graduate coursework
From the MSc at Sharif.
An object detector that simultaneously estimates the position and the depth of each object from a single image, trained on NYU-Depth V2. Built for the deep learning course.
Applies the NSGA-II and SMS-EMOA evolutionary algorithms to the mean-variance model on NASDAQ data, trading risk against return as a true multi-objective problem. Built for the convex optimization course.
Recognises spoken digits from the Free Spoken Digit Dataset using classical machine learning methods rather than deep nets. Built for the statistical learning course.