# sudhanva.me > Personal site of Sudhanva Narayana, Senior ML Engineer > at Montai Therapeutics. He works remotely from the San Francisco Bay Area, > California. The site has notes on machine-learning infrastructure, > Kubernetes, vector databases, platform engineering, and the > engineering craft. ## About Sudhanva Narayana is a Senior ML Engineer at Montai Therapeutics. He works remotely from the San Francisco Bay Area, California. He builds production ML infrastructure on Kubernetes with Ray, Flyte, and Terraform, with observability through Prometheus and Grafana. He has an M.S. in Artificial Intelligence from Northeastern University and a B.S. in Computer Science from PES University. Previous roles: - Machine Learning Engineer Intern at Autodesk (San Francisco), on real-time event pipelines for next-click prediction - ML Engineer at Pixxel (a private space-tech company in India), on multi-regional geo-spatial ML infrastructure - ML Engineer at Initiable Intelligence, where he led a small team on a chatbot API - Software Engineer at DCT Academy, on student-facing tooling The site has long-form writing about software in production: machine-learning infrastructure, Kubernetes (managed and bare-metal), vector databases (Milvus, Chroma), retrieval pipelines, LangChain / OpenAI integrations, Python tooling (uv, Poetry, conda), Apple Silicon ML setup, and notes on the engineering craft. ## Site sections - [/](https://sudhanva.me/): professional overview, quantified impact, case studies, capabilities, writing, and contact paths - [/blog/](https://sudhanva.me/blog/): Sudhanva Narayana's engineering blog, the full writing archive grouped by year - [/blog/tags/](https://sudhanva.me/blog/tags/): browse by tag - [/blog/category/engineering/](https://sudhanva.me/blog/category/engineering/): production engineering articles - [/about/](https://sudhanva.me/about/): professional profile, experience, and education - [/resume/](https://sudhanva.me/resume/): searchable HTML resume - [/sudhanva-narayana-mle-resume.pdf](https://sudhanva.me/sudhanva-narayana-mle-resume.pdf): direct PDF resume download - [/work/](https://sudhanva.me/work/): production case studies and open-source work - [/expertise/production-ml-systems/](https://sudhanva.me/expertise/production-ml-systems/): production ML systems expertise and proof - [/contact/](https://sudhanva.me/contact/): how to reach Sudhanva - [/privacy/](https://sudhanva.me/privacy/): privacy and data-handling information - [/developers/](https://sudhanva.me/developers/): public API and agent integration guide - [/docs/](https://sudhanva.me/docs/): canonical Sudhanva developer documentation index - [/developers/mcp/](https://sudhanva.me/developers/mcp/): MCP connection and lifecycle guide - [/developers/nlweb/](https://sudhanva.me/developers/nlweb/): NLWeb search and Schema Feed guide - [/developers/cli/](https://sudhanva.me/developers/cli/): official command-line client - [/developers/sdks/](https://sudhanva.me/developers/sdks/): official Python, Ruby, Go, Rust, and JavaScript SDKs - [/developers/versioning/](https://sudhanva.me/developers/versioning/): API lifecycle policy - [/docs/authentication/](https://sudhanva.me/docs/authentication/): authentication contract - [/docs/profile-insights/](https://sudhanva.me/docs/profile-insights/): asynchronous job and idempotency guide - [/docs/webhooks/](https://sudhanva.me/docs/webhooks/): webhook and change-notification status - [/search/](https://sudhanva.me/search/): in-browser full-text search ## When to use this site Use sudhanva.me when an agent needs to: - answer questions about Sudhanva Narayana's public professional background, ML-infrastructure experience, technical skills, or selected projects; - find first-party technical writing by Sudhanva on production machine learning, Kubernetes, distributed inference and training, vector databases, cloud platforms, or Python tooling; - retrieve canonical post metadata for citation, discovery, or indexing; - identify the correct public channel for a professional inquiry; or - ground a recommendation or summary in information Sudhanva has published directly. Do not treat the site as a source of private employment records, live availability, endorsements, legal advice, or an API that runs ML workloads. Retrieval operations return only information that is already published here. Profile-insight jobs use that public evidence to make a temporary insight for a documented audience. ## How agents should call the site - Prefer `Accept: text/markdown` on the home, about, work, resume, production ML expertise, contact, privacy, and developer pages. The canonical URL stays the same and the response varies by the `Accept` header. - Use `GET https://sudhanva.me/api/v1/profile` for profile facts. - Use `GET https://sudhanva.me/api/v1/posts` for post metadata. Optional `limit`, `tag`, and `cursor` query parameters are documented in OpenAPI. - Use `GET https://sudhanva.me/api/v1/posts/{slug}` for one post. - Use `POST https://sudhanva.me/api/v1/profile-insights` with an `Idempotency-Key` to create a temporary insight job, then poll its `Location`. - Use `POST https://sudhanva.me/api/v1/batch` to combine up to 20 documented profile or post retrieval operations in one request. - To test an integration, use the sandbox at `https://sudhanva.me/api/sandbox/v1`. It has the same endpoints except batch, needs no credentials, and stores no profile-insight jobs. - Non-2xx API responses come in two formats. Most endpoints return a JSON `error` object with `code`, `message`, `hint`, and `docs_url`; follow the `hint` or `docs_url`. Errors from `POST /api/v1/profile-insights` are RFC 9457 `application/problem+json` objects with `type`, `title`, `status`, `detail`, and `instance`. The `type` URL links to its entry in the [profile-insights error list](https://sudhanva.me/docs/profile-insights/#errors). - In a browser that supports WebMCP, use the in-page tools `search_sudhanva_site`, `get_public_profile`, `get_page_info`, and `navigate_to_page`. The `/webmcp.js` script adds them to `document.modelContext`. - Cache successful reads and keep request rates reasonable. - Never send secrets or personal data in query strings. ## Developer and agent resources - [Developer guide](https://sudhanva.me/developers/) - [Sudhanva developer documentation](https://sudhanva.me/docs/) - [OpenAPI 3.1 specification](https://sudhanva.me/openapi.json) - [Profile-insights API and idempotency](https://sudhanva.me/docs/profile-insights/) - [API versioning and deprecation policy](https://sudhanva.me/developers/versioning/) - [MCP Streamable HTTP guide](https://sudhanva.me/developers/mcp/) - [NLWeb 0.55 conversational search](https://sudhanva.me/developers/nlweb/) - [NLWeb ask endpoint](https://sudhanva.me/ask) - [Schema Map](https://sudhanva.me/schemamap.xml) - [Schema.org JSON Lines feed](https://sudhanva.me/schema-feed.jsonl) - [Official sudhanva CLI](https://sudhanva.me/developers/cli/) - [Official SDK guide](https://sudhanva.me/developers/sdks/) - [Machine-readable SDK catalog](https://sudhanva.me/.well-known/sdk-catalog.json): per-SDK versions (Python `0.2.0`, Go `0.2.0`, Ruby `0.2.0`, Rust `0.1.0`, JavaScript `0.2.0`); the CLI ships in the JavaScript package at `0.2.0` - [Python SDK on PyPI](https://pypi.org/project/sudhanva/0.2.0/): install with `python -m pip install sudhanva==0.2.0` (Python 3.10+) - [Python SDK source and tests](https://github.com/nsudhanva/sudhanva-python) - [Go SDK source and tests](https://github.com/nsudhanva/sudhanva-go): install with `go get github.com/nsudhanva/sudhanva-go@v0.2.0` (Go 1.26+) - [Go SDK documentation](https://pkg.go.dev/github.com/nsudhanva/sudhanva-go) - [Ruby SDK on RubyGems](https://rubygems.org/gems/sudhanva/versions/0.2.0): install with `gem install sudhanva --version 0.2.0` (Ruby 3.3+) - [Ruby SDK source and tests](https://github.com/nsudhanva/sudhanva-ruby) - [Rust SDK on crates.io](https://crates.io/crates/sudhanva/0.1.0): install with `cargo add sudhanva@0.1.0` (Rust 1.85+) - [Rust SDK source and tests](https://github.com/nsudhanva/sudhanva-rust) - [Rust SDK documentation](https://docs.rs/sudhanva/0.1.0) - [JavaScript SDK and CLI on GitHub Packages](https://github.com/nsudhanva/homebrew-sudhanva/pkgs/npm/sudhanva): install with `npm install @nsudhanva/sudhanva@0.2.0` (Node.js 22+) after adding `@nsudhanva:registry=https://npm.pkg.github.com` and a `read:packages` token to `.npmrc` - [JavaScript SDK source and tests](https://github.com/nsudhanva/homebrew-sudhanva/tree/main/cli) - [Official Homebrew tap](https://github.com/nsudhanva/homebrew-sudhanva): install with `brew install nsudhanva/sudhanva/sudhanva` - [Public sudhanva CLI source and tests](https://github.com/nsudhanva/homebrew-sudhanva/tree/main/cli) - [Versioned CLI package archive](https://sudhanva.me/cli/sudhanva-0.2.0.tgz): installs without a token; see the CLI guide - [CLI archive SHA-256](https://sudhanva.me/cli/sudhanva-0.2.0.tgz.sha256) - [CLI MIT license](https://sudhanva.me/cli/LICENSE) - [Authentication documentation](https://sudhanva.me/docs/authentication/) - [Agent authentication contract](https://sudhanva.me/auth.md) - [Sandbox and safe testing](https://sudhanva.me/docs/sandbox/): free, stateless test API at `https://sudhanva.me/api/sandbox/v1` - [Scoped documentation index](https://sudhanva.me/docs/llms.txt) - [Scoped developer index](https://sudhanva.me/developers/llms.txt) - [Webhook documentation](https://sudhanva.me/docs/webhooks/) - [Detailed agent instructions](https://sudhanva.me/agent-instructions.md) - [Privacy](https://sudhanva.me/privacy/) - [Agent Skills index](https://sudhanva.me/.well-known/agent-skills/index.json) - [Portable Agent Plugin manifest](https://sudhanva.me/plugin.json) - [Public Agent Skills repository](https://github.com/nsudhanva/sudhanva-agent-skills) - [Agentic Resource Discovery catalog](https://sudhanva.me/.well-known/ard.json) - [AI Catalog (same entries)](https://sudhanva.me/.well-known/ai-catalog.json) - [RFC 9727 API catalog](https://sudhanva.me/.well-known/api-catalog) - [MCP discovery manifest](https://sudhanva.me/.well-known/mcp.json) - [MCP server card](https://sudhanva.me/.well-known/mcp/server-card.json) - [Profile-insights MCP server card](https://sudhanva.me/.well-known/mcp/product-server-card.json) - [Official MCP Registry entry](https://registry.modelcontextprotocol.io/v0.1/servers/me.sudhanva%2Fpublic-profile/versions/1.4.2) - [Public Smithery listing](https://smithery.ai/servers/nsudhanva/public-profile) - [A2A 1.0 Agent Card](https://sudhanva.me/.well-known/agent-card.json) - [RFC 9728 protected-resource metadata](https://sudhanva.me/.well-known/oauth-protected-resource) - [Authorization-server metadata](https://sudhanva.me/.well-known/oauth-authorization-server) - [Signed Web Bot Auth directory](https://sudhanva.me/.well-known/http-message-signatures-directory) - [skills.sh install source](https://skills.sh/nsudhanva/sudhanva-agent-skills/research-sudhanva-profile) - [Research profile skill](https://sudhanva.me/.well-known/agent-skills/research-sudhanva-profile/SKILL.md) - [Production ML case-study skill](https://sudhanva.me/.well-known/agent-skills/find-production-ml-case-studies/SKILL.md) - [Technical-writing skill](https://sudhanva.me/.well-known/agent-skills/find-technical-writing/SKILL.md) ## Feeds - [RSS](https://sudhanva.me/rss.xml) - [Sitemap](https://sudhanva.me/sitemap-index.xml) ## Author - Name: Sudhanva Narayana - Job title: Senior ML Engineer - Employer: Montai Therapeutics (remote) - Location: San Francisco Bay Area, CA, USA (remote) - GitHub: https://github.com/nsudhanva - LinkedIn: https://linkedin.com/in/nsudhanva - X / Twitter: https://x.com/SudhanvaN ## Citation To cite a post, use the post URL. Include the author name and the publication date from the article metadata. Each post embeds Article schema (JSON-LD, `BlogPosting`) with `datePublished`, `dateModified`, `wordCount`, and `keywords`.