Skip to content
View ChandraChaan's full-sized avatar
🎯
Focusing
🎯
Focusing

Block or report ChandraChaan

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
ChandraChaan/README.md
Chandra ObulaReddy, Principal Software Engineer (Mobile) in Bangalore

Website  ·  LinkedIn  ·  Where I've worked  ·  For developers  ·  Open source  ·  Apps


I'm Chandra, a Principal Software Engineer (Mobile) at mPokket in Bangalore. I lead the Flutter work on SkillZi, a learning and rewards app used by 100K+ people.

In 8+ years across FinTech, HealthTech, EdTech and HRMS, I've led teams of up to 15 engineers (Flutter teams of up to 8), taken an AWS digital health platform from concept to MVP as Technical Architect, and shipped apps that held 99.8%+ crash-free users.

I go deepest on Flutter architecture, Bluetooth LE and wearables, payments and app security. Chandra means moon in Telugu, which is why there's one up there.

Where I've worked

  • Apr 2026 to now · Principal Software Engineer (Mobile), mPokket. I lead SkillZi, an AI-powered learning and rewards app for 100K+ users, with in-app purchases, referrals, SSL pinning and secure video streaming.
  • Sep 2025 to Apr 2026 · Technical Architect, SEWB (via Cosmos Media). I took an AWS digital health platform from concept to MVP, with AI features and HealthKit, Google Fit, Fitbit and Samsung Health integrations.
  • Jun 2022 to Sep 2025 · Senior Software Engineer, SoftDEL Systems. I worked on MSA Safety XS Connect (BLE hardware through native Java and Swift bridged to Flutter), the Lochinvar PWA and apps, KONE and Asset Vantage.
  • Feb 2021 to Jun 2022 · Mobile Lead, Reliance Industries. I led the Flutter team for People First (HRMS), Sunstone (EdTech, 100K+ students) and Plus Pin Pharma, with Paytm, Stripe and Razorpay integrations.
  • Mar 2018 to Jan 2021 · Software Engineer, Marvelous Tech Solutions. I built full-stack web and Flutter apps: EstreetMart, GastroCare, Edecofy and NRIbuddy.

B.Tech in Computer Science, JNTU Anantapur.

Things for other developers

Dart packages

  • ble_gatt_parser turns raw bytes from heart-rate straps, BP cuffs, oximeters, scales and cycling sensors into typed Dart objects.  playground pub
  • ble_device_simulator simulates BLE health and fitness devices so you can test apps without hardware. pub
  • india_validators validates PAN, GSTIN, Aadhaar, IFSC, UPI ID, mobile and PIN code, with real checksums. pub
  • upi_kit builds, parses and validates UPI payment links and Bharat QR codes, with CRC checks.  playground

Guides and templates

  • mobile-system-design has worked case studies for UPI payments, wearable sync, offline chat, live tracking and more.  read online
  • flutter-architect-handbook has 67 Flutter interview and architecture questions, from junior to architect.  practise as flashcards
  • flutter-agent-skills holds AGENTS.md rules and skills that help AI coding agents write production-quality Flutter.
  • flutter-release-kit is a Claude Code plugin that checks a Flutter app before release: signing, permissions, store listing limits and the mistakes that get apps rejected.
  • flutter-production-starter is a template app with clean architecture, Riverpod 3, go_router, environments, SSL pinning, tests and CI.
  • jobright is a local AI job-search agent that tailors your resume from real facts and applies only with your approval.

Open source

When something I use is broken, I'd rather fix it than work around it. These fixes are merged upstream, and the lists below hold the rest, including open pull requests to Flutter.

Project What I fixed Status
dart-lang/http RetryClient threw when the retry check read the response body PR
dart-lang/core · args Help-text separators ignored the configured line length PR
dart-lang/tools · csslib Wrong hex values for three named CSS colours PR
minijinja split(none, n) returned trailing whitespace PR
minijinja The Go port's split(none, n) maxsplit handling now matches Rust PR
calibre mobi2iana took the region of a different language, so German could come out as de-sa PR
PyAV AudioFifo accepted frames with a different channel layout PR
Haraka The tarpit plugin ignored delays that were set before a transaction began PR
miller fsec2hms and fsec2dhms lost the carry from rounded fractional seconds PR
croc File sizes showed 1024.0 kB instead of 1.0 MB PR
More in Flutter, Dart and their ecosystem, with live status
Project What I fixed Status
flutter/flutter Screen readers kept announcing a text's old label or language after it changed PR
flutter/packages · material_ui Button theme equality ignored the button bar layout PR
flutter/flutter TableBorder lost its rounded corners while animating PR
flutter/flutter Text fields ignored a changed spell-check selection colour PR
flutter/packages · material_ui SnackBar theme dropped its close button during theme animations PR
flutter/packages · cupertino_ui iOS theme equality ignored the selection handle colour PR
flutter/packages · camera Recording events broke the ==/hashCode contract PR
plus_plugins · share_plus Windows builds failed under C++20 PR
plus_plugins · device_info_plus Linux device info kept stray quotes from os-release on some distros PR
carp-health-flutter · health Android workout summaries were always empty PR
bloc · replay_bloc Undo history ignored a lowered history limit PR
dio ListFormat.tsv joined values with a literal \t instead of a tab PR
serverpod The CLI planned a bogus rename cycle when two columns swapped names PR
More in Python, Go, Rust, TypeScript, Java and others, with live status
Project What I fixed Status
PyAV AudioFrame.planes could report more planes than the frame has PR
pdm setup dropped the version from an earlier project file when a later one had none PR
PySceneDetect The CSV cut-list row was unlabelled when no cut list was passed PR
MoneyPrinterTurbo The config error now explains how to fix a Docker bind-mounted config.toml that became a folder PR
dominate attr() and dict attributes skipped the tag's attribute cleaning PR
dust --only-dir mishandled duplicate top-level names PR
YouTube.js The parser had no InlineSurvey, ExpandableSurveyResponse, RatingSurvey or RatingSurveyOption nodes PR
xerj Autoindex skipped Dart extension and extension type declarations PR
tcell Color.Name() returned a random name for colours that have several aliases PR
kando The Open File action broke on Linux for paths with spaces or quotes PR
sesh ShortenHome also shortened sibling folders that share the home directory's prefix PR
minio-go ParseObjectTags dropped an invalid-escape error when a later tag was valid PR
overcommit Git hooks crashed on a non-ASCII .overcommit.yml under an ASCII locale PR
datafaker One Alabama postcode had a leading space PR
datafaker 17 K-pop group names ended with a space PR
carbon IsSagittarius was true on November 22, the last day of Scorpio PR
carbon The Persian name for Sunday was misspelled PR
rails-i18n Luxembourgish and Dzongkha date.order made date_select raise PR
pagy The Croatian page info text showed a raw %{page_input} placeholder PR
nginx-ui Nine translations had broken %{name} placeholders, so the UI showed raw text PR
Gopeed Filenames with an escaped ampersand were decoded differently from one run to the next PR
react-native-gesture-handler On web, two fingers on screen mixed their movement into one speed, so pan and fling got wrong velocities PR

The small apps

Each one does a single job. They're open source and free of ads, and the ones that run on one phone keep your data on that phone.

  • Devalay is a devotional app: aarti and bhajans, the Bhagavad Gita, Panchang, a virtual Mandir, a japa mala and Rashifal, with Telugu support.  APK · website
  • Chittilata brings the Telugu paper-chit games Chittilu Aata and Raja Rani to real-time multiplayer. The server enforces the rules, so nobody can cheat.  APK
  • Medicine Reminder is made for elderly parents: reminders spoken in Telugu, Hindi or English, and a family check for missed doses.  APK
  • ScrollLess counts the Reels and Shorts you watch and how long you scroll.  APK
  • UPI Split splits a bill and sends each friend their own UPI payment link, equally, by shares or by amount.  open in browser
11 more small apps
  • Puli Meka is Tiger and Goats, the board game of Kadapa and Rayalaseema, in Telugu and English.  APK
  • Tambola Host runs a Housie night with a voice caller, printable tickets and a claim checker.  open in browser
  • Gully Cricket Scorer scores street and weekend matches ball by ball, and works offline.  open in browser
  • Notification Batch holds noisy notifications and delivers them a few times a day. Calls, alarms and OTPs still come straight through.  APK
  • Data Pack Meter shows live speed in the status bar and how much of today's data pack is left, app by app.  APK
  • DueDay reads bill and EMI due dates from your SMS, on the phone, and reminds you before they're due.  APK
  • Chat Media Cleaner finds large, duplicate and old chat media. You review everything, and deleted files sit in a 7-day trash.  APK
  • Best Clock has a world clock, alarms that still ring after a reboot, a lap stopwatch and a timer, with dark, light and OLED themes.  APK
  • Heart Rate Web connects any Bluetooth heart-rate strap to the browser for live bpm, zones, HRV and export.  open in browser
  • Grabbit is an Android browser that finds videos, audio and images on a page and downloads them, HLS streams included.  APK
  • Tatkal Helper is a Chrome extension for IRCTC Tatkal booking with saved passengers, one-click form fill and a countdown. You still do every click yourself.  download · website

Teaching

I mentor engineers and teach Flutter by building real apps, from the first widget to production architecture. The free material is all public: the handbook, the flashcards and the system design guide.

What I work with

Mobile  Flutter, Dart, Kotlin, Java, Swift, Android Studio
Backend and cloud  Node.js, Python, FastAPI, PHP, Laravel, AWS, Firebase, MongoDB, MySQL
Also  Bluetooth LE, HealthKit, Google Fit, Fitbit, BLoC, Riverpod, GetX, SSL pinning, Stripe, Razorpay, Paytm, UPI, PWA, CI/CD, Playwright, local LLMs (Ollama), Claude


If you'd like to talk about Flutter architecture, Bluetooth devices or leading mobile teams, say hello on LinkedIn or through chandrachaan.com.

Pinned Loading

  1. mobile-system-design mobile-system-design Public

    Mobile system design case studies for interviews and real projects: UPI payments, wearable sync, offline-first chat, feeds, live tracking, uploads, rollouts.

    Python

  2. ble_gatt_parser ble_gatt_parser Public

    Parse standard Bluetooth LE GATT characteristics (heart rate, blood pressure, glucose, SpO2, cycling, running) into typed Dart objects. Pure Dart, works with any BLE plugin.

    Dart

  3. flutter-architect-handbook flutter-architect-handbook Public

    Flutter interview & architecture handbook, junior to architect: 67 questions on Dart, Flutter internals, state management, architecture, performance, security, testing, mobile system design and lea…

  4. flutter-release-kit flutter-release-kit Public

    Claude Code plugin: ship Flutter apps without store rejections. Release preflight, version bumps, changelogs, store listings, permission audits.

    Python 1

  5. devalay devalay Public

    Free, open-source, ad-free Hindu devotional app for Android: aarti & bhajans, Bhagavad Gita, accurate Panchang, virtual Mandir, japa mala, Rashifal. Flutter + FastAPI.

    Dart

  6. flutter-production-starter flutter-production-starter Public template

    Production-ready Flutter starter template: clean architecture, Riverpod 3, go_router, dev/staging/prod environments, typed errors, SSL pinning, crash reporting, l10n (English + Hindi), tests and CI.

    Dart