top of page


21 NOVEMBER, 2026
BANGALORE


( SPEAKER )
Shekhar Patel
MTS
ConnectMachine
Shekhar Patel is a founding engineer at ConnectMachine — an offline-first Flutter networking app with 22,000+ users across Play, App Store, and Huawei AppGallery. He was a Google Summer of Code '24 contributor and maintainer with the Palisadoes Foundation, organises and speaks at GDG Noida, and mentors at FOSS Hack Delhi NCR. He works across Flutter, Go, and TypeScript.
Unconference Roundtable
Millions of Users, Zero Jank: Advanced Performance Profiling
We can no longer blame the rendering engine for dropped frames. With Impeller now the standard, the "shader compilation jank" of the past is gone, yet high-scale production apps still struggle to maintain a consistent 120Hz. The core tension has shifted from the engine to our own architecture: we are building features so complex and data-heavy that we silently overload the UI thread, choke the rasterizer, and blow through frame budgets regardless of how fast the underlying graphics layer is.
This roundtable is a "war room" for performance tuning in a post-Impeller world. We will move beyond basic optimization tips and focus on the hard reality of hunting down application-level jank using DevTools and tracing. Bring your toughest performance mysteries.. whether it’s list rendering at scale, main-thread bottlenecks, or custom layout architectures and let’s debate how to achieve true "zero jank" when the default widgets aren't enough.
Session
Online, Offline, and the Ugly Middle: Cache and Sync Architecture for Flutter Apps
Every offline-first tutorial gives you a boolean: online or offline. Production gives you a third state, and it's the one that breaks apps — the connection reports "connected," the request hangs for 30 seconds, and your FutureBuilder sits on a spinner forever. That ugly middle is the default at every conference venue, which is exactly where ConnectMachine (22,000+ users, 4.7★) gets used hardest.
This is a walkthrough of the offline architecture we actually ship, in three layers.
Reads. A cache-first fetcher over Hive with a central TTL policy table — one minute for transcriptions, seven days for the user profile — plus in-flight request de-duplication so a rebuild storm doesn't fire the same call five times. We chose hard-expire when offline: an expired entry throws rather than serving unbounded stale data, and TTLs are generous to compensate. I'll defend that choice and show where it hurt.
Connectivity. Why we replaced the online/offline boolean with NetworkStatus { online, unstable, offline }, derived from a latency heartbeat and consecutive-failure counting rather than from the OS's idea of connectivity — and how a broadcast Stream of that status changes what your widgets build.
Writes. Durable queues for card scans, recording uploads, and deep links, with a state machine that knows the difference between "retry this" and "only a human can fix this." Plus schema-versioned, user-scoped cache keys so an app update or an account switch doesn't resurrect the wrong data.
bottom of page