IDX // 001 Open to lead & staff roles

Software that fits in a pocket, built to hold up.

I'm Nimish Nandwana, a lead mobile engineer in Gurgaon. 10 years deep in Android, Flutter and Kotlin Multiplatform, most of it spent on the architecture and platform problems that decide whether an app is still workable three years later. Today I lead the eight-engineer team behind a streaming platform across five European markets.

The work I'm best at is the unglamorous kind: choosing the module boundaries a codebase can grow into, going a layer deeper than the SDK when something is genuinely broken, and setting a standard a team keeps holding after I stop watching.

Shipping mobile
10 YRS
Team I lead
08 ENG
Store releases
25+ REL
At current scale
10M+ MAU
Scroll
IDX // 002 Profile

10 years in, still mostly interested in the hard parts.

I've spent my career on the platform side of mobile, the layer where architecture, performance and team process meet, and where the difference between a good app and a tolerable one is usually invisible from the outside.

At Deutsche Telekom Digital Labs I lead an eight-engineer mobile org shipping an Android-first streaming platform across five European markets. The interesting problem there has never been writing features. It's been taking a codebase that began life as one app and making it serve three, without accruing the kind of debt that quietly halves your velocity two years later.

That has meant modularising in the direction the org actually splits, moving shared domain and networking logic into Kotlin Multiplatform so a business rule exists exactly once, and migrating to Compose module by module rather than betting a year on a rewrite. It has also meant owning the boring machinery: sprint cadence, release trains, the Play Console on a Friday afternoon.

Outside work I build things that solve my own problems, which is the only reliable way I've found to stay honest about what "good enough" means. PaisaTracker reads my bank emails, structures them with an LLM and nags me on Telegram until every transaction is categorised. The LIC Agent Toolkit exists because I watched insurance agents fight a portal that seemed designed to discourage them.

I'm genuinely optimistic about AI tooling for engineering teams, with a specific view on what it's for: raising the floor, not replacing the craft. The rules I wrote for our code review pipeline catch the dull mistakes before a human reviewer has to spend attention on them. That attention is the scarce resource. Everything else is tooling.

  • A

    Constraints are the brief

    A 16ms frame budget does not negotiate. Neither does a 2GB device in a market where that is the median phone. The limits are not obstacles around the work. They are the shape of it.

  • B

    Measure, then move

    Every performance claim on this site came off a trace. Perfetto and Systrace decide what gets optimised, not intuition about what feels slow. Intuition is usually wrong and always confident.

  • C

    Leave it legible

    Most of an app's life is spent being modified by someone who was not there when it was written. I optimise for that engineer: clear module seams, honest names, and no cleverness that needs a footnote.

IDX // 003 Capability

What I reach for, and why.

Tools are not a personality. These are the ones I've shipped production work with, grouped by the problem they actually solve.

  1. 01

    Android

    The home platform. 10 years of it, from Views through Compose.

    KotlinJavaJetpack ComposeMVVM / MVIHiltWorkManagerRoomCoroutinesFlowMaterial 3
  2. 02

    Cross-platform

    Used where a shared domain layer pays for itself, not by default.

    FlutterDartBLoCRiverpodPlatform channelsKMPKtorSQLDelightCompose Multiplatform
  3. 03

    Performance & native

    Where the interesting bugs live. Trace first, optimise second.

    JNI / NDKC++Baseline profilesR8 / ProGuardLeakCanaryPerfettoSystrace
  4. 04

    Quality & security

    Four fintech audits, zero findings. The process is the product.

    TDDJUnit5MockitoEspressoOAuth2 / SAMLBiometric authCertificate pinningPCI DSS
  5. 05

    AI tooling

    Treated as infrastructure with a spec, not as an oracle.

    CursorClaude APIAGENTS.mdProject rulesOpenClawDeepSeekAWS BedrockMCP integrations
  6. 06

    Platform & delivery

    Shipping is a skill. Release trains, store review, rollback plans.

    FirebasePlay ConsoleFastlaneGitLab CIGitHub ActionsHetzner VPSCloudflare
IDX // 004 Record

Where the work happened.

Four companies, one throughline: taking mobile codebases that had outgrown their original shape and making them hold more weight.

  1. 01 Dec 2022 – Present Gurgaon

    Deutsche Telekom Digital Labs

    Lead Mobile Developer

    Current

    Lead an 8-engineer mobile org delivering an Android-first streaming platform at 10M+ MAU across 5 European markets.

    Deutsche Telekom is a leading global integrated telecommunications company headquartered in Bonn, Germany. It is Europe's largest telecommunications provider by revenue and operates worldwide (notably through its T-Mobile subsidiary in the US and various European markets).

    • Reduced cold launch from 3.2s to 1.8s (~44%) via baseline profiles, lazy initialization, and JNI hot-path optimization
    • Brought crash rate from 1.8% to 0.3%, sustaining 99.7% crash-free sessions and a 4.8/5 store rating
    • Designed and rolled out an AI-assisted code review pipeline (Cursor + AGENTS.md) that catches architectural drift before PRs reach human review
    • Built a shared component for keyboard navigation that handles accessibility compliance across Compose and legacy View hierarchies, currently used in 3 flagship apps
    • Drove KMP adoption for shared domain and networking modules, eliminating duplicated business logic across apps
    • Own the mobile roadmap and experimentation pipeline, running 50+ A/B tests per quarter to inform release decisions
    • I run the sprint cadence end-to-end: daily standup, sprint planning, scope changes, retrospectives, and Play Console release.
    • New modules are built in Jetpack Compose, while existing ones are migrated incrementally based on priority and team capacity.
    • Built structured rule sets for AI tooling (AGENTS.md, Cursor rules) encoding business logic, module relationships, and constraint boundaries - so Cursor/Claude understands impact scope before suggesting changes reducing hallucination risk and improving AI-assisted code quality across the codebase.
    KotlinJetpack ComposeFlutterHiltCoroutinesJNI/NDKAGENTS.mdLLM
  2. 02 Feb 2019 – Dec 2022 Gurgaon

    Grappus Technologies

    Senior Mobile Developer

    Past

    Tech lead on 10+ enterprise Android engagements spanning fintech, productivity, and internal tooling.

    Grappus Technologies is an Indian design and development studio that builds digital experiences, mobile applications, websites with a strong focus on UI and animation and brand identities.

    • Modularized monolithic codebases into 50+ feature modules - 70% build time reduction via parallel compilation
    • Delivered PCI DSS payment flows, biometric auth, certificate pinning, and OAuth2/SAML SSO with zero security audit findings across four fintech clients
    • Introduced Jetpack Compose and Coroutines on newly created modules while keeping RxJava on legacy paths, so migration stayed incremental without big-bang rewrites
    • Built offline-first sync (WorkManager + Room) with conflict resolution for high-traffic collaboration apps at 99.9% data integrity
    • Implemented i18n for 30+ locales including Arabic RTL and CJK, sustaining 60fps on entry-tier hardware
    KotlinJetpack ComposeWorkManagerRoomOAuth2PCI DSSRxJava
  3. 03 Jun 2017 – Feb 2019 New Delhi

    Wabi Tech

    Android Developer

    Past

    Built geospatial and IoT Android applications with a focus on performance and device connectivity.

    SimplylocalX is a dual-purpose product developed by Wabi Tech that serves both as an AI-powered neighborhood social network and an enterprise digital signage platform. By combining these two facets, the product bridges the gap between hyper-local community engagement and physical business display management.

    • Built a shared UI component library deployed across 5 enterprise Android applications
    • Engineered a JNI bridge to a C++ map rendering engine, cutting memory use ~50% on low-end devices
    • Delivered the BLE communication layer for IoT device connectivity and real-time data streaming
    • Implemented offline-first sync via WorkManager with background reconciliation
    KotlinJavaJNIC++BLEWorkManager
  4. 04 Oct 2016 – Jun 2017 New Delhi

    PickJi

    Junior Android Developer

    Past

    First Android role, building the rider and customer apps for an intra-city parcel delivery service.

    PickJi was an intra-city parcel delivery startup, moving packages between pickup and drop points within a single city. The product lived or died on routing: matching a parcel to the right rider and getting them there by a sensible path.

    • Built live order tracking on Google Maps, with route rendering and ETA updates for riders and customers
    • Integrated the Directions and Distance Matrix APIs for route selection and delivery time estimates
    • Implemented background location reporting tuned for battery life on riders' phones during long shifts
    • Learned the craft fundamentals here: lifecycle, threading, and how an app behaves on a bad network
    AndroidJavaGoogle MapsDirections APILocation servicesRetrofit
IDX // 005 Build log

Things I've shipped, at work and at home.

The professional work pays the bills; the personal work keeps the instincts sharp. Both are here, labelled honestly.

Personal Featured

Custom AI Coding Harness

A tool-calling runtime that makes project conventions enforceable, not advisory

AGENTS.md and project rules are read once, at the top of a long context, and then compete with everything that follows. In practice that meant the assistant kept drifting: it wrote far more code than a task called for, added defensive layers and logging nobody asked for, and reinvented patterns we already had a convention for. Adding more rules made it worse, because a longer rules file is still only a suggestion. So I built a harness that moves the conventions out of the prompt and into the runtime. The model works through an explicit tool-calling loop where every action is a declared tool with a typed contract, and the rules run as checks between steps rather than as text the model may or may not still be weighing. If a change exceeds the scope of the task, introduces a pattern we do not use, or adds code the task never asked for, the step is rejected and fed back with the reason. A Figma integration supplies design tokens, variants and component specs directly from the file, so generated UI starts from our real spacing scale and named components instead of the model inventing its own.

TypeScriptTool callingClaude APIFigma APIDesign tokensAST parsingMCP
  • Conventions run as runtime checks between steps, instead of sitting in a rules file the model gradually stops weighting
  • Scope limits per step, so a small task cannot quietly turn into a refactor of everything around it
  • Rejects speculative additions: no logging, error handling or abstraction the task did not ask for
  • AST checks match new code against the patterns already in the codebase rather than the model's defaults
  • Figma integration reads tokens, variants and component specs so generated UI matches the design source
  • Plan then apply, with every proposed edit reviewable as a diff before it touches the tree
  • Rejections are fed back with the specific rule that failed, so the next attempt is corrected rather than re-rolled
Personal

PaisaTracker / Anuradha - Laxmi Chit Fund

A personal finance automation pipeline, self-hosted on Hetzner

Anuradha is an AI agent that watches my Gmail and parses incoming transaction emails. It asks me to categorize each one on Telegram, sends a reminder at 10 PM for anything uncategorized, and delivers a daily and monthly spend summary every morning at 6 AM. No third-party finance APIs.

  • IMAP IDLE for real-time email processing - no polling
  • LLM-based parsing that distinguishes transaction emails from marketing
  • Remembers category preference per payee - needs less input over time
PythonOpenClawDeepSeek APIIMAP IDLESQLiteTelegram BotHetzner
Professional

gStore by GreyOrange

Cross-platform Flutter app for warehouse operations

End-to-end Flutter delivery for a cross-platform warehouse operations app targeting Android and iOS. Owned architecture, API contracts, and store-ready builds.

  • Wired native auth, analytics, and deep links through platform channels
  • Dart-side business logic kept fully unit-testable
  • Widget and golden test patterns plus Fastlane CI for gated releases
FlutterDartBLoCPlatform channelsFastlaneFirebase
Personal

gointervals

Five browser timers for movement, focus and quiet moments

A free online timer covering the five patterns people actually use: Interval, Tabata, EMOM, Pomodoro and Meditation. No account, no ads, no premium tier. The clock runs off timestamps rather than a ticking counter, so a backgrounded session is still on the right second when you come back, and each common routine gets its own ready-made page instead of a settings screen.

  • Five timer modes in one tool: Interval, Meditation, Tabata, EMOM and Pomodoro
  • Timestamp-driven clock, so a backgrounded session returns on the correct second
  • Requests a wake lock while running so the screen does not lock mid-session
WebPWAOffline-firstService workerWake Lock APIWeb AudioSEO
gointervals.com
Personal

Paperlink AI

RAG-powered knowledge engine for business documents

Paperlink AI turns business documents - PDFs, policies, contracts - into an intelligent chat assistant that answers customer questions instantly. Built on a RAG pipeline, it indexes uploaded documents and serves structured, accurate answers through an embeddable widget. The goal is reducing bounce rates and support load by giving visitors clear answers instead of making them dig through long documents.

  • RAG-powered engine that indexes documents and retrieves context-aware answers
  • Embeddable chat widget - deployable on any website in minutes
  • Handles poorly formatted or complex documents and returns structured responses
RAGAIDocument IntelligenceEmbeddingsChat WidgetSaaS
IDX // 006 Method

AI as infrastructure, with a specification.

I'm not interested in whether a model can write a function. I'm interested in whether a team can rely on it, which is a question about context, constraints and verification, not about the model.

01

Rules before prompts

I wrote the AGENTS.md and Cursor project rules now governing AI-assisted review across all three flagship apps. They encode domain models, module ownership, accessibility requirements and security boundaries, so the tool understands blast radius before it proposes a change. Most hallucinated suggestions are really missing-context suggestions.

Result Architectural drift caught pre-review

02

A first pass that is not a human

Every PR gets an automated review before a person opens it, flagging absent test coverage, accessibility regressions and deviations from the documented architecture. Reviewers arrive to judgement calls instead of typos. The round-trips that used to eat a day on routine changes largely stopped happening.

Result Fewer review round-trips

Personal experiments Running in production, for one user

Away from work I use LLMs as a parsing layer and keep everything else deterministic, which is, so far, the only pattern I trust. PaisaTracker runs a persistent agent that watches Gmail over IMAP IDLE, structures transaction mail with DeepSeek, and pushes it to Telegram in real time with no manual step after setup. A separate multi-agent pipeline stitches Tavily, Firecrawl and Claude on Bedrock into automated job-market research.

The shape repeats: let the model do the ambiguous reading, let ordinary code do everything that has to be correct. When a run fails, I want to know which of those two halves broke, and with this split, I always do.

OpenClawDeepSeekClaude APIAWS BedrockTavilyFirecrawlTelegram Bot
IDX // 007 Available · India / Remote

If the hard part of your problem is architecture, platform depth or a team that needs leading, I'd like to hear about it.

I'm open to lead and staff mobile roles. The work I'm best at is the kind that needs judgement rather than throughput: shaping an architecture that survives its second year, going deep enough into the platform to fix what other people route around, and getting a team to a standard it holds on its own. Tell me what's actually hard about yours.