Senior Android Engineer — 5+ years building Android at scale. SDE-2 & Android Platform Owner at Dice.tech, owning a platform serving 50,000+ MAU / 22,000+ DAU. I ship deep, well-architected Kotlin — and I extract the reusable parts into a Multiplatform toolkit family so the next app starts further ahead.
🌐 darkpandawarrior.github.io · 📄 Interactive CV · 💼 LinkedIn
What I've shipped · KMP toolkit family · Flagship apps · Side projects · Tech stack · Connect
At a glance — 50k+ MAU / 22k DAU platform owner · 80% crash reduction · GPS accuracy 50% → 95% · ~87% UI-layer Jetpack Compose migration of a ~964k-LOC codebase · a 36-module MIT Kotlin Multiplatform toolkit + 22 authored Gradle convention plugins, running on Android · iOS · Wear OS · Desktop · Web.
val siddharth = AndroidEngineer(
location = "Pune, India",
yearsOfExperience = 5, // and counting
role = "SDE-2 · Android Platform Owner @ Dice.tech",
currentFocus = listOf("Compose Multiplatform", "Offline-first architecture", "Performance engineering", "System design"),
believesIn = "extract the reusable core the moment a second app needs it",
)- 📍 Location engineering — predictive dead reckoning over GPS/IMU with Kalman smoothing, taking tracking accuracy from 50% → 95% in production, with spike detection and a deterministic recompute that re-derives history when the math changes.
- 🎨 ~87% UI-layer Jetpack Compose migration of a ~964k-LOC codebase (772k Kotlin), including a custom theme engine that cut UI-development friction by 60%.
- 🛡️ 80% crash reduction — dual Firebase Crashlytics + Sentry monitoring (programmatic init, ProGuard mapping, ANR detection), threading fixes and structured-concurrency cleanup.
- 🔐 Security hardening — Android Keystore field-level encryption (AES-256), SSL pinning across 9 domains (5 SHA-256 pins) as dual build flavors, a BiometricPrompt access gate, EncryptedSharedPreferences/DataStore+Tink — VAPT/banking-compliant.
✈️ Trip V2 travel platform — mileage submission linked to Itinerary V2, approval flows and full analytics across the mileage ecosystem.- 🏢 20+ white-label client apps at Jugnoo / Jungleworks with an 80% reduction in delivery time via build automation — and a +85% Play Store rating with reviews up 80×.
Most of my open source is one system: a family of decoupled repos where the reusable libraries, the shared build logic, and the app shape each live in their own place — so a new app pulls them in and starts at "write the feature."
|
36-module MIT KMP library monorepo |
A family of small, focused libraries — each extracted the moment a second consumer needed the same logic, never designed as a "platform" up front. Typed |
|
17 convention plugins here (22 authored in total) |
The AGP / Kotlin / Compose / test / lint / Firebase / Room / Koin setup written once and applied with one line — |
|
A buildable CMP app seed |
The app shape the toolkit slots into: one shared Compose UI, a wired root-navigation scaffold (Splash → Login → Home), and thin Android + Desktop shells — nothing to delete before you begin. |
Kotlin Multiplatform · Android + iOS + Wear OS + watchOS + Desktop · 46-module clean architecture (36 local + 10 composed from kmp-toolkit)
- Five platforms from one codebase — native SwiftUI watchOS app, Glance + WidgetKit widgets, iOS Live Activity / Dynamic Island.
- 149 Roborazzi screenshot tests on the JVM (no emulator, no network), detekt / ktlint / Kover, CI.
- Dual
gms/noGmsdistribution with a dependency-prefix guard (Play Store + F-Droid). - Location engine with predictive dead reckoning, a Kalman smoother and
MotionFusiongravity/linear-acceleration filtering; on-device document AI (OCR field-fill, doc-type classification) and an on-device LLM assistant behind a sharedLlmGateway.
Compose Multiplatform · Android + iOS + Desktop + Web (Wasm) · 13 modules · ISMCTS + LLM AI opponents
Satirical India corporate-political underworld — Kursi ke liye kuch bhi karega.
- Tiered AI — ISMCTS bots (1.5k–16k iterations by difficulty) → cloud-LLM upgrade (Anthropic / OpenAI / Gemini / on-device); each of 10 personas has a personality profile driving targeting and bluff choices.
- DARBAR social layer — bots form alliances, carry grudges, send Hinglish chat — without breaking the engine's byte-for-byte determinism.
- A deterministic, dependency-free
:engine(ashared.puritytripwire keeps it that way), consuming the kmp-toolkit family via a git submodule.
Kotlin Multiplatform · Android + iOS · Ktor backend · 40-module architecture (15 local + 25 composed from kmp-toolkit)
An Integration Lab for the Android payments ecosystem — every gateway behind one abstraction, with a live look at what actually happens on each transaction.
- Gateway catalog behind one
PaymentGatewayabstraction — Razorpay, Cashfree, Stripe (+ Google Pay), Square, Omise, UPI intent, plus hosted-webview and mobile-money archetypes; one Gradle module per native-SDK provider, contributed via Koin'sgetAll<PaymentGateway>(). - Server is the source of truth — a companion Ktor server owns order creation, HMAC-SHA256 signature verification and webhook reconciliation; the client callback is only ever a hint.
- Process-death recovery + VAPT-grade security — every in-flight payment is journaled to Room before the SDK opens; Android Keystore AES-256-GCM at rest, device-integrity checks, certificate pinning.
| Project | What it is |
|---|---|
| cv-siddharth |
Interactive CV with an AI assistant — React 19, multi-provider LLM chat, 3D hero, printable résumé |
| HireSignal |
Local-first AI career-intelligence dashboard — resume onboarding, reverse-ATS discovery, evidence-based fit scoring, tailored résumés, single-server multi-profile. Built on the open-source career-ops engine. Repo is private while v1 lands; the case study is public |
| kmp-app-template | The buildable CMP app seed above — fork it, customizer.sh --package …, and start shipping |
| cv-siddharth-kmp | This portfolio rebuilt in Compose Multiplatform — ~16.5k lines of Kotlin in one commonMain, rendering to Kotlin/Wasm, Desktop, Android and iOS. Deliberately bleeding edge (Kotlin 2.4.20-Beta1, CMP 1.12.0-beta02, AGP 9.4.0-alpha04) and near-dependency-free: routing, the Mermaid layout engine, the SkSL wash, the SSE parser and every icon hand-built on Compose primitives |
| The Loopdown | Field notes from an engineer who writes — one war story from a real project, adapted to LinkedIn / dev.to / Hashnode / Medium with a branded card, plus the whole back catalogue. Framed as an engineer stuck in a time loop, because seniority is the loop: you've just run the same failure enough times to name it on sight |
Open-source contributions — 9 merged PRs to career-ops (⭐63k+): two new ATS providers (BambooHR, Breezy HR), a dashboard status-cell fix and an agent-inbox feature.
Most recently a run of five correctness fixes, each shipped with a reproduction and a regression test — the class of bug that reports success while doing the wrong thing: distinct non-Latin company names collapsing into one and deleting a tracked application, $-patterns in CV text splicing the template into the résumé at exit 0, a date filter silently ignored in its --flag=value form, an unfilled template token shipping into a cover letter, and the dashboard caching its canonical states for the process lifetime. Every one publicly checkable.
Architecture: MVVM + Clean Architecture · MVI unidirectional state · Repository pattern · Multi-module · Gradle convention plugins Also: WorkManager · Foreground Services · Retrofit/OkHttp + Ktor · on-device AI (ML Kit GenAI / MediaPipe / Foundation Models) · Roborazzi · Firebase + Sentry · agentic dev workflows (MCP)




