Skip to content
View uxrhimanshu's full-sized avatar

Block or report uxrhimanshu

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
uxrhimanshu/README.md

Himanshu Kalra

UX researcher · making tools for faster, sharper product decisions

I do user research for enterprise security software, and I build things to answer questions the research raises. Most of what's here started as "I wonder whether that's actually true" and turned into something small and runnable.


Research tools

research-deid — de-identify interview transcripts in the browser before they go into an LLM. Pseudonyms stay consistent across a whole study, so the transcript is still analysable afterwards, and every replacement goes through a review pass rather than being decided silently. No network, no storage, no dependencies — the privacy claim is checkable by reading the source. → try it

fieldnotes — build a forum corpus you can defend in a methods section. Every run writes a sampling log: the query, the retrieval funnel, each exclusion with its own reason and count, and what a public-forum sample cannot support. It also catches its own sampling bias — ask for three years with a thread limit and you get a recency sample, and it says so. Used in clicked-through.

ats-radar — poll employers' job boards for the roles you want. The whole search — categories, exclusions, locations — lives in a JSON profile rather than the code. Running it as a census rather than an alert is what made it interesting: it showed that the employers actually hiring user researchers in Germany were in neither my target list nor the wider one I built to check it.

Drawing

to-scale — service journeys drawn as architectural sections, to scale on both axes. A blueprint gives every step the same width, so neither axis means anything and the drawing cannot be contradicted. Drawn to scale, a breach at VCDB medians inverts: containment is a 6%-wide sliver and the rest of the sheet is thirty days of nobody knowing. I trained as an architect before this; the conventions are borrowed on purpose and each one is doing a job. → see the drawings

Studies

clicked-through — what technical people do when a security warning has no answer they can give. I expected to find a risk calculus and found something else: warnings that cannot be obeyed at all, because the compliant path doesn't exist for a device on a LAN address. What follows is a workaround becoming policy, and — in one case — a supplier shipping the same private key to thousands of machines because "it gets rid of the red X in a browser so tick." Built with the two tools above; the corpus, the sampling log, every screening decision and three approaches that failed are all in the repo. → read it

the-human-element — a design-research study of 10,042 public security incidents, asking where the interface set the person up to fail. Breach reports stop at "human error"; this re-reads the corpus as design failure and classifies it. Finding: 78% of error-caused breaches are discovered from outside the organisation, and the most common discoverer is the customer whose data was exposed. Reproducible from public data, standard library only. → read it

bangalore-transit — a feasibility study on building an honest live-departure board for Bangalore's buses and metro. Documents a barely-documented public transit API, verifies the data sources, and stops at a GO verdict rather than building on an untested assumption.

Things I've shipped

artdrop — send a stranger a public-domain painting and what you felt about it. One a day, three sends, no chat. The constraints are the product. Vanilla JS PWA over Postgres, with all delivery logic in the database rather than the client. → artdrop.netlify.app

german-worksheets — a generator that turns German lesson transcripts into self-marking, offline practice worksheets. 117 of them, in daily use. Correctness is checked by a harness that solves every generated worksheet and asserts it marks 100%. → germanworksheets.netlify.app


Elsewhere

Pinned Loading

  1. bangalore-transit bangalore-transit Public

    Feasibility study: can you build an honest live-departure board for Bangalore buses and metro from public data? Verified sources, endpoints and verdict.

  2. german-worksheets german-worksheets Public

    Generates self-contained, self-marking German practice worksheets from lesson transcripts. 117 worksheets, offline, no build step.

    Python

  3. the-human-element the-human-element Public

    A design-research study of 10,042 public security incidents: where interfaces, defaults and warnings set people up to fail.

    HTML

  4. clicked-through clicked-through Public

    What technical people do when a security warning has no answer they can give. 76 coded items from 372 Hacker News threads, with the corpus, sampling log and every screening decision published.

    HTML

  5. fieldnotes fieldnotes Public

    Build a forum corpus you can defend in a methods section. Every run writes a sampling log: what was asked for, what came back, what was excluded and why.

    Python

  6. research-deid research-deid Public

    De-identify interview transcripts in the browser. Consistent pseudonyms, a review pass for every replacement, and no network of any kind.

    JavaScript