Skip to content

Siddharth Pandalai

Senior Android Engineer, Mobile Architecture & Platform

+91 8848852062·siddharthpandalai990@gmail.com·linkedin.com/in/siddharth-pandalai·github.com/darkpandawarrior·cv-siddharth.vercel.app

Pune, India · Open to remote (worldwide / India) and hybrid in Pune / Bengaluru

Professional Summary

Senior Android Engineer, 5+ years in Kotlin. Technical owner and Product Owner of a ~964k-LOC, 50,000+ MAU financial SaaS app, inherited as Java with no Kotlin in it and now ~87% Jetpack Compose across the UI layer. Clean Architecture with MVVM/MVI, Coroutines and Flow, Hilt, Room. Hard-systems depth where it counts: staged dead-reckoning location with Kalman smoothing (GPS accuracy 50% to 95%), VAPT-grade on-device security (Android Keystore, SSL pinning), and an 80% production crash reduction at 22,000+ DAU won on the concurrency model, not defensive catches.

Core Competencies

Kotlin & Jetpack ComposeClean Architecture (MVVM / MVI)Kotlin Coroutines & FlowHilt Dependency InjectionRoom (2 DBs, 24 production migrations)Retrofit / OkHttp & REST APIsLocation Engineering (Dead Reckoning, Kalman)Mobile Security (Android Keystore, SSL Pinning)CI/CD (Fastlane, Gradle)

Key Results

50k+ monthly active users · 95% GPS accuracy · 80% crash reduction · ~87% UI-layer Compose · 1.6 to 4.5 stars on the Play Store

Experience

Neev Consulting · Consulting Engineer, Platform & AI

April 2026 - Present

Concurrent with Dice.tech

  • Agentic ERP: Built the LLM assistant layer of an ERPNext/Frappe consulting ERP: business-context resolution, capability discovery, and an AI capability gate that defaults OFF with a test proving it. Models client to project to PO to milestone to GST invoice to payment end to end.
  • Platform: Shipped the platform on Python and Frappe over MariaDB under Docker Compose, with a LibreChat deployment and MCP tool wiring for Atlassian and Playwright. Four repositories, all of it reviewed.

Dice.tech · SDE-2, Android & Product Owner

June 2023 - Present

Concurrent with Neev Consulting

  • Platform Ownership: Own the Android platform end to end, a ~964k-LOC Kotlin app serving 50,000+ MAU, as both technical owner and Product Owner. Set the module architecture, release process and review standards the team builds against.
  • Scope: Owned requirements as well as delivery on the same platform. Here they are one job, not a handoff. Sprint planning, feature and code allocation across the team, review, release, deployment, and the crash dashboard the morning after. The platform work is deliberately the kind other people build on: a new client ships without anyone writing UI code, nobody forks the app to brand it, and every release goes out through the pipeline.
  • Team: Led interview loops and helped hire onto both the frontend and the React Native mobile teams; mentored a junior engineer from Flutter to production Kotlin, Java and React.
  • Mentorship Outcome: That engineer now manages this app at the company that acquired it.
  • Compose Migration: Led the migration off legacy Java and XML: ~87% of the UI layer is now Compose, migrated incrementally through interop with per-screen parity checks against the legacy XML baseline.
  • Location Engineering: Own the GPS pipeline behind a location-type foreground service for 22,000+ DAU: staged dead reckoning over GPS/IMU with a 1D Kalman smoother and spike rejection so implausible jumps never reach the buffer, taking tracking accuracy from 50% to 95%.
  • Crash Reduction: Reduced production crashes 80% at 22,000+ daily users. The fix was the concurrency and threading model, not defensive try/catch. Crashlytics and Sentry catch regressions before users report them.
  • Security Hardening: Hardened the app to VAPT/banking compliance: AES-256 Android Keystore field-level encryption, a biometric access gate, and SSL pinning across 9 domains (5 SHA-256 pins) via build flavors.
  • Data Layer: Own the Room persistence layer across two databases with 24 verified production schema migrations.
  • Product Growth: Built the in-app review prompting that moved the Play Store listing from 1.6★ across 67 reviews to 4.5★ across 27,300, the rating a prospective customer sees before they install anything.
  • Travel Platform: Shipped the Android side of Trip V2: Itinerary V2, GIN screens, and full Mixpanel instrumentation.
  • UI Platform: Built the multi-tenant theme platform: a server-supplied tenant seed colour resolves into a full Material 3 scheme at runtime (MaterialKolor), with the client owning dark mode, user colour override, palette style, Material You and variant, cutting UI development friction 60% without touching feature code per client.
  • CI/CD & Automation: Own the build platform: automated Fastlane build, signing and release pipelines, and drove the AGP 9 upgrade across the whole app, and wired agent tooling into the build itself (Firebender over MCP).

Jugnoo / Tookan / Jungleworks · Software Engineer, Android & Vertical Owner

January 2021 - May 2023

  • Multi-Tenant Platform Ownership: Owned Android across a multi-vertical super-app (ride-hailing, carpool, delivery, grocery, bike and car rental, shuttle and wallet) spanning customer, driver and merchant apps. Joined a nine-year-old codebase seven years in, and became one of its primary maintainers.
  • White-Label Platform, Productising Variation: Built a per-tenant flavour system (build config, resource overlays, isolated storage and branding) so 150+ clients ship from one codebase across the customer and driver apps, rather than a fork per client. Cut per-client delivery time 80%.
  • Product-Line Ownership: Owned both the requirements and the implementation for the P2P carpool, trucking, e-bike and super-app verticals, writing the specs I then had to build.
  • Payments at Scale: Implemented Razorpay, Stripe, Beyonic and HyperPay gateway integrations across checkout flows; built Stripe 3DS payment retry/recovery handling and a corporate-account KYC verification flow from scratch.
  • Platform Modernization: Migrated the toolchain across a multi-branch, multi-client codebase: Kotlin plugin and Gradle 7.0 migrations, ViewBinding adoption, and Android 13 (API 33) compliance, without breaking any of the 150+ client builds riding on it.
  • Cross-Functional Engineering: Collaborated cross-team on roadmaps with product and backend, cutting engineering overhead 40%.

John Deere India · GET Intern

May 2020 - July 2020

  • Built a proof of concept integrating social-media sentiment analysis into financial lending systems to enhance credit-risk modeling.

Projects & Open Source

Gaddi

Kotlin Multiplatform · Compose Multiplatform

A Hinglish social-deduction bluffing game of power, satire & second chances. Gaddi ke liye kuch bhi karega. Pure (GameState, Intent) → GameState reducer drives the AI, UI, and a future server.

Doori

Kotlin Multiplatform · Compose Multiplatform

Offline-first mileage, travel & expense tracker on one Kotlin codebase across Android, iOS, Wear OS, watchOS & Desktop. 49-module clean architecture: 13 feature modules meeting only at the composition root.

PaymentsLab-KMP

Kotlin Multiplatform · Compose Multiplatform

An Integration Lab for the Android payments ecosystem: every gateway behind one abstraction, with a live look at what actually happens on each transaction. 44-module registry (15 local + 29 composed) spans 66 cataloged payment gateways.

Candidai

Kotlin Multiplatform · Compose Multiplatform

A native, multiplatform AI career-intelligence engine, and the open-source project it's built on. 25-module Kotlin Multiplatform clean architecture (12 feature + 6 core modules) targeting Android, iOS, Desktop, Web and a Spring Boot 4 server from one shared engine.

Portfolio Twin

cv-siddharth · React 19

The site you're reading, plus Panda the assistant that answers for me, and the whole thing rebuilt a second time in Compose Multiplatform, one commonMain to Web, Desktop, Android and iOS. Two full implementations of one portfolio: the same content rendered by React on the web and by Compose Multiplatform to four targets, which makes the comparison concrete rather than theoretical.

STUTTER

Godot 4.7 · GDScript

A first-person time-loop game about a moment someone could not let end. One deterministic (state, InputFrame) → state step reused five ways: cooperative Echoes, ghosts, leaderboard replays, the Hunter, and boss desync.

SINC-P

Next.js 16 · React 19

A statutory student-grievance redressal system, built to survive a UGC inspection rather than a demo. A statutory SLA clock escalating officer, then admin, then the Ombudsperson tier the regulations require, plus a hash-chained audit trail a retro-edited remark cannot pass unnoticed.

The KMP toolkit family

Kotlin Multiplatform · Gradle convention plugins

Three decoupled repos so a new app starts at "write the feature". kmp-toolkit: 39 modules, each extracted the moment a second consumer needed the same logic, never designed as a "platform" up front, from the MVI core four apps build on to modules like store and bots-policy still finding their first consumer.

The Loopdown

Node.js · Markdown

Field notes from an engineer who writes: one war story, four channels, one branded card. One lesson in, four channel-shaped posts out, each with a branded SVG card. The adaptation is the product, not the writing.

Upstream contributions: 24 merged PRs to career-ops (public OSS, 63k+ stars): make js-yaml imports work on both 4.x and 5.x; take the shared lock for scan-history.tsv appends; concurrent adds silently dropped queued requests; a rate-limited posting was classified expired, not uncertain; a k/M/B magnitude suffix let an inflated claim past the gate; opt-in LLM relevance re-ranker for pipeline.md; Korean and Traditional Chinese CVs had no font rule; aliases the engine accepts were missing from states.yml; states.yml cached for the process lifetime, so core updates go unseen; --company/--posted-after/--posted-before ignored in =value form; $-patterns in candidate text splice the template into the CV; distinct non-Latin companies merged into one, deleting a row; a custom template's unfilled {{TOKEN}} shipped into the letter; queue requests for the next session; rewrite only the Status cell on status update; add Breezy HR provider; add BambooHR provider.

Education

B.Tech, Computer Science & Engineering · NIT Bhopal (MANIT)

2017 - 2021

Technical Skills

Languages: Kotlin, Java, Dart, C++

UI: Jetpack Compose (~87% of UI-layer code), Material 3, Compose-View interop, Compose Multiplatform

Architecture: Clean Architecture, MVVM, MVI, Modular architecture, Repository pattern, Kotlin Multiplatform (KMP, building depth)

Concurrency & DI: Kotlin Coroutines, Flow, StateFlow / SharedFlow, Structured concurrency, Hilt, Dagger

Data & Networking: Room (SQLite, 24 schema migrations across 2 databases), DataStore, Retrofit, OkHttp, Ktor, REST APIs

Platform: Android SDK, WorkManager, Foreground Services, Location / dead reckoning + Kalman filtering, Firebase Crashlytics + Sentry, Mixpanel

Security: Android Keystore (AES-256), SSL pinning, BiometricPrompt, EncryptedSharedPreferences, VAPT compliance

Leadership & Process: Cross-functional collaboration, Mentoring & hiring loops, Code review standards, Agile sprint planning

Build, CI/CD & Tools: Gradle (Kotlin DSL), AGP 9, Fastlane, Git, Play Store release management, Android Studio, Jira, Figma, Postman, Firebender + MCP agentic workflows

frequently asked

What does he do at Dice.tech?

SDE-2, Android & Product Owner at Dice.tech (June 2023 - Present), platform owner of the app behind 50k+ monthly active users (22k+ daily, platform owner at Dice.tech). See the source.

What did he do to improve GPS accuracy?

Took GPS accuracy to 95%: up from 50%, by predictive dead reckoning. See the source.

How did he reduce production crashes?

80% crash reduction: Crashlytics + structured concurrency fixes. See the source.

How much of the app is Jetpack Compose?

~87% of the UI layer: 455k of 523k UI-layer LOC, verified screen by screen against the legacy XML. See the source.

Where did he study?

B.Tech, Computer Science & Engineering, NIT Bhopal (MANIT) (2017 - 2021). See the source.

What is the Neev Consulting role?

Consulting Engineer, Platform & AI at Neev Consulting (April 2026 - Present). Built the LLM assistant layer of an ERPNext/Frappe consulting ERP: business-context resolution, capability discovery, and an AI capability gate that defaults OFF with a test proving it. Models client to project to PO to milestone to GST invoice to payment end to end. See the source.

What is Doori?

Doori: Offline-first mileage, travel & expense tracker on one Kotlin codebase across Android, iOS, Wear OS, watchOS & Desktop. See the source.

What is Gaddi?

Gaddi: A Hinglish social-deduction bluffing game of power, satire & second chances. Gaddi ke liye kuch bhi karega. See the source.

What is PaymentsLab-KMP?

PaymentsLab-KMP: An Integration Lab for the Android payments ecosystem: every gateway behind one abstraction, with a live look at what actually happens on each transaction. See the source.

What is Candidai?

Candidai: A native, multiplatform AI career-intelligence engine, and the open-source project it's built on. See the source.

Does he write, outside of code?

Yes: The Loopdown, his field-notes writing hub, where the recurring bug characters are named after real production incidents. See the source.

What's he like to work with?

Answered by his own teammates, not by him: see the EB Profiles, one question per member, in their own words. See the source.

Is he available, and how do I reach him?

Open to remote (worldwide / India) and hybrid in Pune / Bengaluru. Email siddharthpandalai990@gmail.com. See the source.

What has he contributed outside employer work?

Shared Kotlin Multiplatform libraries used across his own apps, plus merged upstream pull requests on career-ops: see the repos and the running count. See the source.

Has anything he's built shipped for real?

Yes: see the Play Store shelf for the apps that are actually live and installable, not just source. See the source.

What can I try on this site besides reading it?

Every route on the site, as a tile you can open: 3D builds, labs and canvases, not screenshots. See the source.