Sagnik Chatterjee - Projects

an index of some of my projects and links


08 November 2025

motivation

for the longest time that i have been using Pytorch, i could make the model but could never understand the fundamental operations that PyTorch or any fundamental autograd engines worked - i.e how does the operator works under the hood to make the optimization and how does in a backward pass why we are calculating the gradients and how we are doign it from scratch.

solution

i built a simple autograd engine from scratch that pokes holes under this and helps me understand how does an autograd engine works under the hood.

link : autograd-engine

17 September 2025

motivation

so recently I have taken a new way to take notes for my graduate level classes. for the longest time i was a staunch believer in writing down using pen and paper the whole knowledge bank that I wanted for a subject – however in the age of such good open source tools and knowledge management software , I have gradually turned to better solutions that can help me ease and manage my note taking in a much better way.

so i have been using obsidian for quite some time now and honestly i love it.

but the main problem that I am facing is that there is no single good extension to summarize and infer insights from my own knowledge base and notes.

solution

i am building knowl, which is a local RAG based service that provides insights for your notes and writeups in a much more succint way , rather than just deep linkages and tag based directed graphs.

i plan to soon open source it for v0.1; knowl

24 May 2025

Problem Statement

  • tbh i really feel that program synthesis and the making small domain specific changes driven by RL is the way to go. for example:
  • consider rust, the error messages in Rust it suggests the error based on type information by the compiler and static analysis on your project.Now image after the changes that are suggested, a human can directly change the source code, why not let an agent take over and make the changes.
  • so that goes into the loop of generating code via error messages and then the static anlyzer would again find new errors to find.
  • kinda like a better cursor ?

Solution:

  • Building an Javascript like intrepreted language : Vanara