--:-- in Itanagar

Hi, I’m Roni.

I own what I ship.

Senior software engineer in Itanagar, Arunachal Pradesh. For five years I’ve been one of two engineers on a B2B user-research platform, so the app, the API, the billing and, lately, the AI agents and voice interviews are mine to build and mine to fix.

That sky is the real one over Itanagar right now, sun, stars and weather included. The first thing I ever built was a weather app, so it felt right.

Things I own

Every window below works. They’re sketches of what I built and still look after at CleverX, plus one of my own.

Interview · Q3 of 804:12
connected · 38 mspersona: “curious, neutral” · voice: cartesia/sonic
LiveKit agentsAssemblyAICartesia

AI voice interviews

CleverX · real-time

AI-led research interviews on LiveKit. Persona and voice come from the study config, with live transcription through AssemblyAI and Cartesia, reconnection when a participant drops, and server-side session completion.

study-builder · run #48211.9s
create_studywrites: study
reads study
add_screenerwrites: screener
reads study
add_task ×4writes: tasks
reads screener, tasks
set_skip_logicwrites: rules
reads all
publishok
prompt: “8-task onboarding study for fintech PMs”

LLM study-builder agent

CleverX · AI layer

Builds a whole study from one prompt. A dependency scheduler orders tool calls by what each one reads and writes, so no step references something that doesn’t exist yet. Anthropic and OpenAI, traced in Langfuse.

release/livekitshipped
apirooms · tokens
webobserver · reconnect
recordingmulti-egress
archivepipeline
1 release4 repos

Twilio → LiveKit

CleverX · real-time video

Replaced the live video layer in one coordinated release across four repositories: rooms and tokens, multi-egress recording, per-question highlight clips, observer mode and reconnects.

archaeology · askpgvector + BM25 → RRF
why does retry_backoff exist?
Added after a Postmark outage caused duplicate sends. Backoff is capped at five tries because the queue re-enqueues on failure.cited: commit 7fd44e2 · PR #212 comment

Codebase Archaeology

Open source · 2026

Answers “why does this code exist?” from git history, PR discussions and linked issues. Every claim cites a commit or comment, and it abstains when the evidence is thin. Python, Postgres + pgvector, served over MCP and REST.

Source on GitHubLive demo

Also shipped

LLM spend · monthlyhover the line
−16%after the audit
audit

−16% monthly LLM spend

Cost control

Traced a spike to low-cache-hit LLM-as-a-judge evals and fixed it with request sampling and model selection.

public APIv1
POST /v1/studies
Authorization: Bearer 
{ "title": "Onboarding study",
  "screener": "scr_9f2",
  "seats": 12 }
—not sent yet
study.completed → https://…/hooksidle

Public API + webhooks

Platform

v1 study and participant endpoints, API keys with superadmin controls, a developer dashboard and published docs.

Team · 3 seats2 billed
AKAnika K.Owner
JMJonas M.
PRPriya R.
Credits 1,250

Billing + multi-seat teams

Billing

Roles, ownership transfer, observer seats that aren’t billed, Stripe autocharge and credits.

Search + matching

Search

Algolia to Typesense with geo indexing, and participant matching with location weighting and exclusions.

P-07home › pricing › signupDirect
P-12home › blog › pricing › signupIndirect
P-19home › docs › contactFailed
“I expected the plans under Product, not in the footer.”think-aloud · transcribed

Unmoderated research

Research methods

Diaries, website tests and Figma prototype tests, graded against the researcher’s goal page. Took the Figma OAuth app through review to GA.

deliver invites · 1,343 queueddrained
1,343
7 batches · 0 stranded · sweep idle

Invites that finish sending

Reliability

Invites used to stop at 1,000 per run. Now they drain the queue, with a recovery sweep and opt-outs enforced across all 110 email templates.

The ride so far

I’m Nepali, born and raised in Arunachal Pradesh, and I still build from here. I care most about ownership: if I ship it, it’s mine when it breaks too. Beyond that, I don’t stress too much.

  1. 2020

    A weather app, alone in a hostel room

    Covid had emptied the hostel, so I sat down and built a weather app. It was my first project, and it’s why this page shows Itanagar’s weather.

  2. 2021

    NIT Arunachal Pradesh, then CleverX

    Finished my B.Tech in computer science and joined a B2B user-research startup as one of its two engineers. Built the design system, led the React 18 migration, moved search from Algolia to Typesense, built the screener engine and took over transactional email.

  3. Side roads

    Meypato and My Health Ajin

    Meypato, a rental booking app. My Health Ajin, which never made it to market. Not every road goes through.

  4. 2024

    Senior Software Engineer

    Took the platform’s AI and real-time work end to end: the study-builder agent, AI voice interviews, the Twilio to LiveKit migration, a public API, billing and multi-seat teams. Since then, email consent, invite delivery at scale and a lot of legacy code retired.

  5. 2026

    Two things of my own

    Codebase Archaeology, which explains why code exists from its git history, and Year Progress Wallpaper, which puts the year’s progress on your lock screen.

  6. Now

    Still riding

    Owning the AI layer at CleverX, playing football, and taking the bike out whenever the weather allows.

Off the clock

Royal Enfield Interceptor 650

Mine’s the Black Ray. Most of my travelling happens on it: a 648 cc parallel twin and whatever road the hills offer.

Keepy-uppies 0Best 0

Tap the ball to keep it up.

Football

I play football and support Barça, win or lose. Visca el Barça.

Stack

Frontend
React 18, TypeScript, MobX, Tailwind, Radix UI, Vite, webpack, Framer Motion, TipTap, Recharts, Stripe Elements
Backend
Node.js, Express, MongoDB, Mongoose, Jest + Supertest, Typesense, Elasticsearch, Stripe, MJML, Postmark, Resend
AI & real-time
Anthropic SDK, OpenAI SDK, Langfuse, LiveKit agents, AssemblyAI, Cartesia, ffmpeg, MCP, pgvector, tree-sitter
Infrastructure
AWS Lambda, CDK, S3, SQS, DynamoDB, CloudFront, GitHub Actions, Cloudflare Workers, PostHog

Say hello.

Email is the fastest way to reach me. I work from Itanagar, and my day overlaps with European and US East Coast hours. Unless I’m out on the bike.

Email me LinkedIn
--:--:-- UTC+5:30