AI Engineer · Voice agents and full‑stack AI products, from first call to production

Arjun.

I build AI products end to end, from the first call with the client to production. Most recently a multi-tenant voice-AI platform at Qilin Labs, built solo across Python, LiveKit and Next.js: AI agents that place and answer real phone calls over SIP, a streaming STT → LLM → TTS pipeline tuned to 1.3s p50, and the operator console around it. Under that sits five years of shipping web and mobile products across e-commerce, commercial real estate, financial services, sports betting and enterprise Salesforce, usually inside a platform somebody else already runs. I also build Android apps in Kotlin and Compose, developer tools, and @astra-ui-lib/core, published on npm.

Experience 5 Years
Focus Voice AI, end to end
Location India
Status Open to AI engineering roles
01How I Run a Client Engagement

Discovery

I start in the room with the people who own the problem. I ask what breaks today, who it breaks for, and what they already tried. Then I write the requirement down and read it back, because the first version is usually wrong in a way only the client can see.

Thin slice, their stack

The first delivery is one narrow slice running in production, not a prototype. I build it on the platform the client already operates — their Salesforce org, their Shopify theme, their LDAP directory, their Drupal site. That puts the integration risk in front of us at the start instead of at handover.

Measure, then hand over

Then I measure the number the client cares about and tune against it: call latency, discarded speech, publish time, test coverage. The engagement ends with their team owning the code, with tests, documentation and a walkthrough, so nothing waits on me being available.

02Projects

Other work

Client platform work, a reverse-engineering project, and my own AI tooling. Shorter write-ups; the four above are the deep ones.

05
Suzuki Connect RE
Reverse-engineered a motorcycle's Bluetooth protocol, then built the replacement app

Decoded the proprietary BLE protocol of my Gixxer SF 150's instrument cluster from scratch (GATT walk on the live bike, decompilation, runtime hooking), then built REDLINE, a Kotlin/Jetpack Compose Android app that pushes Google Maps navigation to the cluster with live telemetry and ride analytics. 14k LOC, 205 tests, fully on-device.

  • Decoded all 7 BLE frame types from live captures + decompiled source
  • Google Maps → cluster navigation, replacing the stock app
  • Live telemetry dashboard, ride analytics, GPX/CSV export
  • Evidence-based RE: every hypothesis verified, wrong turns logged
Kotlin Jetpack Compose BLE Android Frida Reverse Engineering
06
Commercial real-estate platform
Client project · listings, lead capture and deal tools for a brokerage

A commercial real-estate platform for a brokerage: indexable native listings with map clustering and multi-field search, OTP-verified lead capture, six gated deal calculators, and a broker-editable Sanity Studio so the team publishes without a developer. 17 routes, 41 tests. Client project: details generalized, no client data.

Brokers publish and edit listings without a developer. Every lead arrives email-verified, straight into the team’s own sales process.

  • Indexable listings with map clustering and multi-field search
  • OTP-verified lead capture feeding the brokerage’s sales process
  • Six deal calculators gated behind the lead wall
  • Broker-editable Sanity Studio, so publishing needs no developer
Next.js React 19 TypeScript Sanity Mapbox
07
Employee intranet
Client project · intranet on the operator’s existing identity stack

An employee intranet with real-time direct and group messaging, presence and read receipts, a company news feed, events, and shared resources. Authenticates against the operator’s existing LDAP directory, so nobody managed a second set of credentials. Client project: details generalized, no client data.

Staff sign in with the credentials they already have. IT never had a second directory to administer.

  • Real-time direct and group messaging with presence and read receipts
  • Company news feed, events and shared resources
  • LDAP authentication against the existing corporate directory
  • Dockerised deployment
Next.js TypeScript Prisma Socket.IO Docker
DEV TOOLING
08
Developer Tooling
Internal tools for tickets, time, attendance and AI budget

Three private tools I built for my own daily work: a Python command-line suite covering tickets, timesheets and attendance behind one daily snapshot; a self-hosted ticket tracker fronted by a TypeScript MCP server, so an AI agent reads and writes tickets by number; and a governor that paces spending across two AI coding budgets, routing bulk work onto free capacity. Each one started as a measurement before it became an automation.

  • Six commands on the PATH for tickets, timesheets and attendance
  • One snapshot: clocked in, hours vs target, open tickets, what is due
  • MCP server so an agent addresses tickets by number, not a browser
  • Budget governor that ranks engines by headroom and routes bulk work
Python TypeScript MCP Bash Automation
03Experience
01
Senior Frontend Engineer
Aug 2024 to Present
Qilin Labs
Sole engineer building a multi-tenant AI voice-agent platform over six months. Developed Python/FastAPI services, a LiveKit SIP voice worker, and a Next.js operator console (31 routes, 107 components). Optimized a streaming STT → LLM → TTS pipeline to 1.3s p50 round-trip, reduced regional STT routing from 235ms to 118ms, and eliminated dropped agent audio (4.37% to 0% of speech discarded) by fixing the telephony audio mixer, against 2,585 backend tests. Earlier, as frontend engineer on a Next.js education platform with 20K+ users, led the CRA → Next.js 14 migration. Improved Lighthouse 58 → 92, full page load ~10s → ~3s, JS bundle 2.4MB → 720KB (-70%). Migrated MUI to shadcn/ui across 30+ components; helped establish code review and engineering standards.
02
Software Engineer · Frontend Lead
Mar 2023 to Sept 2024
Hubspire Corp
Refactored a 30k+ LOC legacy React codebase: cleanup, code splitting, tree shaking, CI optimization. Built React + TypeScript + GraphQL apps with Apollo cache normalization and a reusable component system adopted across 3+ projects. Mentored 3 junior engineers toward mid-level.
03
React Developer
Feb 2022 to Mar 2023
Woxro
Architected React frontend for banking applications with real-time payment status and Razorpay integration. Designed a centralized form-validation and error-handling system used across production fintech and retail apps.
04
Web Developer
Jul 2021 to Feb 2022
Limenzy
Delivered 10+ production-ready responsive interfaces from Figma/Adobe designs; optimized legacy WordPress sites for mobile and page-load performance.
04Technical Skills

AI & Voice

Python
FastAPI
LiveKit
RAG
Qdrant
Deepgram
Silero VAD
Vercel AI SDK
MCP
OpenCV

Backend & Data

Node.js
Express
Go
PostgreSQL
Supabase
Redis
GraphQL
Prisma
Socket.IO
Firebase
SQLite

Client platforms & integration

Salesforce
Apex
Lightning Web Components
Shopify Liquid
Drupal
WordPress
Sanity
LDAP

Web

React
Next.js
TypeScript
Redux Toolkit
TanStack Query
Zustand
Tailwind CSS
shadcn/ui
MUI
Mantine
Astro
Mapbox

Mobile & devices

React Native
Expo
EAS Build
expo-camera
Kotlin
Jetpack Compose
Android
Room
Kotlin Coroutines
DataStore
BLE
Frida

Testing & delivery

Vitest
Jest
React Testing Library
Cypress
Playwright
Docker
Git
GitHub Actions
Vite
Webpack
Rollup
Turborepo
Changesets
Claude Code
Cursor
GitHub Copilot
05Education & Certification
01
B.E. Mechanical Engineering
2017 to 2021
Dhanalakshmi Srinivasan Engineering College (Anna University)
02
Meta Front-End Developer Professional Certificate
Aug 2024
Coursera
06Writing
Article
01
Building a Self-Updating Daily-Agenda Wallpaper
Jul 2026 · 7 min read

How I turned my laptop wallpaper into a self-updating daily agenda: a designed poster rendered from HTML via headless Chrome, wired into Hyprland, with a self-cleaning quote feed.

Headless Chrome Hyprland Bash
Case Study
02
I reverse-engineered my motorcycle's Bluetooth protocol to put Google Maps on the dashboard
Jun 2026 · 4 min read

How I reverse-engineered my motorcycle's Bluetooth instrument-cluster protocol with a GATT walk, JADX, and Frida, then built REDLINE, an Android app for it.

Reverse Engineering Android Bluetooth
Article
03
Stop trusting 'looks about right': verifying AI UI against Figma
Jun 2026 · 6 min read

How I built figma-connect and verify_node: a local tool that renders an AI agent's generated code and pixel-diffs it against the live Figma design.

Figma AI Agents Tooling