DEV Community

N3MO
N3MO

Posted on

Python was my first language. I forgot about it for years. Then I built a code intelligence engine with it.

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
Enter fullscreen mode Exit fullscreen mode

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

Tags: python opensource programming beginners showdev

Top comments (0)