Open to opportunities  ·  Bengaluru, India

Nitish
Kumar M

Software Developer building across the full stack — from npm packages & Chrome extensions to .NET & React applications. I care about clean APIs, great DX, and code that holds up.

19
GitHub repos
2
npm packages
4+
Languages
OSS
Open source

About

Who I am.

I'm Nitish Kumar M, a software developer from Bengaluru building across the stack. My work spans Node.js utilities, React frontends, .NET backends, and desktop tooling in C# — I pick the right tool, not the trendy one.

I published favicon-extractor on npm — a backend-focused Node.js utility for fetching favicons at scale, with full TypeScript typings, ESM + CJS dual exports, and a live Vercel demo. It reflects how I think about DX: zero friction, type-safe, well-documented.

I also build desktop tools. Spy is a C# / WPF application for real-time window capture and input monitoring — built with Win32 API hooks and zero external dependencies.

Beyond code I focus on DSA, Chrome extension development, and exploring what web and native platforms can do together.

TypeScriptJavaScriptC#PythonReact.NETNode.jsWPFChrome ExtensionsDSAHTML / CSSGit
Location
Bangalore, India 🇮🇳
Focus areas
DSA · .NET · React · Chrome Extensions

Work

Selected projects.

TS · React

MindMesh

A unified AI chat platform that lets users access OpenAI, Gemini, and Perplexity in one place. Just plug in your API key and switch between models instantly. One interface, endless intelligence.

TypeScriptReactAI IntegrationLLM
TS · React

Invoice-Book

A software application built to seamlessly generate and manage invoices. Provides a clean and intuitive interface for tracking billing information and creating professional invoices efficiently.

TypeScriptReactWeb
C# · WPF

Spy

A Windows desktop utility for real-time window monitoring. Enumerates all active user processes, captures live screenshots of any selected window, and logs keyboard & mouse actions with full timestamps — built in C# / WPF using low-level Win32 API hooks. Zero external dependencies, just the platform.

C#WPFXAMLWin32 API.NET
npm Packages

NPM Publications

favicon-extractor: A lightweight Node.js utility to fetch and extract favicons from any website URL. Perfect for apps, extensions, or APIs.

create-react-chrome-ext: A boilerplate setup for building Chrome extensions using React. Includes essential configurations to kickstart extension development.

npmNode.jsTypeScriptReactChrome Ext.
TS · C# · Py

More on GitHub

19 public repositories spanning Chrome extensions, .NET projects, DSA practice, Python utilities, and more experiments. All open-source. Worth exploring if you want to see the full range.

Chrome Extensions.NETPythonDSA19 repos total

Skills

The toolkit.

I work across languages and runtimes. These are honest assessments — tools I've used to ship real things, not just follow tutorials.

Languages
TypeScript
92%
JavaScript
90%
C#
76%
Python
68%
HTML / CSS
88%
Frontend & Extensions
React
85%
Material UI
78%
Chrome Ext.
72%
Backend & Desktop
Node.js
88%
.NET / C#
74%
WPF
68%
npm publishing
84%
DSA
78%

Log

Activity feed.

Working on

Portfolio redesign — this page

Building a completely new version of my portfolio with Bebas Neue + DM Mono, a full responsive system using clamp()throughout, and now this living log feed so visitors can see what I'm actually working on day-to-day.

htmlcssdesign
Blog

Why I built favicon-extractor

I needed reliable favicon fetching for a side project and every solution I found either ran in the browser or had heavy dependencies. Wrote a clean Node.js-only utility, published it on npm, and documented it properly. Here's what I learned about dual ESM/CJS exports.

npmtypescriptnode
Read →
Thought

The ESM/CJS export mess is real

Setting up dual exports in package.json sounds simple until you hit the edge cases — require() vs import, .mjsextensions, and bundler quirks. Spent two hours on something that should take ten minutes. Documenting this so future-me doesn't repeat it.

esmnodedx
Working on

Chrome extension — productivity tool

Experimenting with a Manifest V3 Chrome extension using React + Vite. The goal: a lightweight tab manager that surfaces context without getting in the way. Early stage — just getting the background service worker pattern right.

chrome-extensionreactmv3
Update

Spy — refactored input capture

Rewrote the keyboard and mouse hook logic in Spy to use lower-level Win32 hooks instead of WPF event routing. Much more reliable across different window types, and no longer drops events under high-frequency input.

csharpwpfwin32
GitHub →
Thought

DSA isn't just interview prep

The more I practice DSA the more I see it show up in real code — choosing the right data structure for a cache, recognising a graph problem in a dependency resolver, knowing when O(n log n)actually matters. It's worth doing consistently, not just before interviews.

dsalearning

Showing 6 of 6 entries

All activity on GitHub ↗

Contact

Let's
build
something.

Open to full-time roles, freelance projects, and interesting open-source work. If you have a problem worth solving — let's talk.