# Aditya Negandhi

> Full stack engineer in Toronto, working toward solutions architecture. I build event-driven systems and write about what I learn.

Every page on this site has a Markdown version: add `.md` to its URL
(the home page is `/index.md`), or request the page with the header
`Accept: text/markdown`. The whole site in one file is at https://www.0xadityaa.dev/llms-full.txt.

## Pages

- [Home](https://www.0xadityaa.dev/index.md): Who Aditya is, latest writing, projects, and experience
- [About](https://www.0xadityaa.dev/about.md): Background, experience, stack, education, and contact details
- [Blog](https://www.0xadityaa.dev/blog.md): All posts with summaries
- [Projects](https://www.0xadityaa.dev/projects.md): All projects with descriptions and tech

## Blog posts

- [Going Event-Driven? Read the Bill First.](https://www.0xadityaa.dev/blog/going-event-driven-read-the-bill-first.md): Fan-out, payload size, and retry loops decide what an event-driven system costs. Here is the arithmetic at three volumes, from the public price list.
- [Microservices? Do You Really Need Them?](https://www.0xadityaa.dev/blog/microservices-do-you-really-need-them.md): Splitting a monolith turns every multi-step operation into a distributed transaction. Why an orchestrated saga handles that better than choreography.
- [How LLMs Process Text](https://www.0xadityaa.dev/blog/how-llms-process-text.md): LLMs read and write tokens, not text. What a tokenizer does, with code, and why token counts set both your bill and your context limit.
- [What is semantic search & how to implement it?](https://www.0xadityaa.dev/blog/what-is-semantic-search.md): How I added semantic search to an LLM pipeline: embeddings, why I cut them to 2,000 dimensions, picking an ANN index, and what the benchmarks showed.
- [Do you really need AI Agents?](https://www.0xadityaa.dev/blog/do-you-really-need-agents.md): Most LLM features are better built as a fixed workflow than as an agent. When an agent earns its extra cost and latency, and when it does not.
- [What exactly is MCP?](https://www.0xadityaa.dev/blog/what-exactly-is-mcp.md): MCP is a protocol that lets any AI app discover and call tools through one standard interface, replacing per-app glue code. What it fixes and what it costs.
- [What are LLMs and How to Build Stuff Using it?](https://www.0xadityaa.dev/blog/what-are-llms-and-how-to-build-apps-using-it.md): An LLM predicts the next token. Everything useful is built around that: context, tools, and memory. A map of the concepts, using LangChain and LangGraph.
- [Implementing a JSON Parser](https://www.0xadityaa.dev/blog/implementing-a-json-parser.md): A JSON parser is two small programs: a tokenizer and a recursive descent parser. Both built in TypeScript on Deno and tested against the JSON grammar.
- [Building a spell checker](https://www.0xadityaa.dev/blog/building-a-spell-checker.md): A spell checker is edit distance plus a dictionary. How Levenshtein distance works, with code and a visualizer that shows the matrix filling in.
- [Hoisting in Javascript](https://www.0xadityaa.dev/blog/hoisting-in-js.md): JavaScript registers every declaration before running any code. That one fact explains undefined from var, callable functions, and the temporal dead zone.
- [How Javascript Works](https://www.0xadityaa.dev/blog/how-js-works.md): A mental model of how a JavaScript engine runs code: execution contexts, the memory and execution phases, and the call stack, traced through an example.
- [Understanding Big O](https://www.0xadityaa.dev/blog/understanding-big-o.md): Big O describes how an algorithm's work grows as its input grows. Four common classes with JavaScript examples, and a table of what they mean at real sizes.

## Projects

- [Clipper](https://www.0xadityaa.dev/projects/clipper.md): AI agent that repurposes long videos into social media clips using Gemini 2.5 Pro and FFMPEG.
- [Gitbuddy](https://www.0xadityaa.dev/projects/Gitbuddy.md): Multi-agent tool that automates repository tasks like documentation, Dockerization, and commit history.
- [GraphRAG Chat](https://www.0xadityaa.dev/projects/GraphRAGChat.md): A scalable chatbot that builds knowledge graphs from scraped data to answer complex questions with citations. Built with a serverless architecture on GCP.
- [Finchat](https://www.0xadityaa.dev/projects/Finchat.md): Real-time financial chatbot for stock analysis and market trends with interactive charts. Built using RAG and GPT-4o.
- [React Rooks](https://www.0xadityaa.dev/projects/React-Rooks.md): A local-first chess game where you can play against AI. Features real-time gameplay analysis and scalable difficulty levels.
- [JSON Parser](https://www.0xadityaa.dev/projects/json-parser.md): TypeScript-based JSON parser that validates against ECMA-404 and supports local files or APIs.
- [Byte Cast](https://www.0xadityaa.dev/projects/Byte-Cast.md): A browser-based streaming tool that lets you stream to platforms like YouTube and Twitch without needing OBS. Handles encoding with FFMPEG on the fly.
- [Crypto Maniac](https://www.0xadityaa.dev/projects/Crypto-Maniac.md): A mobile app for crypto paper trading using live market data. Allows you to track portfolios and set alerts without financial risk.

## Optional

- [RSS feed](https://www.0xadityaa.dev/rss.xml): Full post content as HTML
- [Sitemap](https://www.0xadityaa.dev/sitemap.xml)
