Python was the first language I ever wrote code in.
I was a beginner. Ran some scripts. Never built anything meaningful. Then college started and I moved to Java and C++ — Python was forgotten.
Years later, everyone's talking about ML and AI. Python is the language of the moment. I'm not into ML, but I picked it back up.
The moment that started everything
I was trying to get into GSoC. Found a project I liked, cloned the repo, opened the codebase.
Hundreds of files. Thousands of functions. Zero context.
I didn't know what called what, what was connected to what, what I could safely touch. I closed the tab.
That feeling — of being lost in someone else's code — became the problem I couldn't let go.
What I built
N3MO is a local-first code intelligence engine. It parses your codebase, builds a call graph with symbols and relationships, stores everything in Postgres, and lets you query it.
Written entirely in Python. Built with tree-sitter for parsing, psycopg2 for Postgres, networkx for the graph layer.
Numbers that matter
- Indexes Django: 3,021 files, 43k+ symbols, 181k+ call edges
- Cold index time: dropped from ~23 minutes to ~2.5 minutes after a SQL optimization (SPLIT_PART rewrite)
- Available as a PyPI package, MCP server (Cursor/Claude Desktop), GitHub App with webhook reindexing
pip install n3mo
What I learned
Python was the right choice. Not because of ML. Because the ecosystem — tree-sitter bindings, Postgres drivers, graph libraries — was all there.
Every problem I hit, there was a library for it. Every optimization I needed, Python didn't get in the way.
The language that gave me my first print("hello world") ended up being the one I shipped something real with.
Repo + docs: github.com/RajX-dev/N3MO

Top comments (0)