Jetpack Compose Recomposition: A Deep Dive
7 min read
A detailed look at how Compose recomposition works under the hood, what triggers it, how the slot table tracks state, and how to control it in production apps.
7 min read
A detailed look at how Compose recomposition works under the hood, what triggers it, how the slot table tracks state, and how to control it in production apps.
8 min read
A systematic look at Application Not Responding errors on Android, covering the detection mechanism, common root causes in production, and concrete strategies to fix and prevent them.
8 min read
Real-world memory leak patterns from production Android apps, covering lifecycle-bound leaks, static references, listener registration, and systematic detection strategies.
6 min read
Concrete latency, TTFB, and cache-hit measurements across SSR, SSG, and ISR rendering strategies in Next.js under realistic traffic.
8 min read
A practical breakdown of Android app startup optimization, covering cold start internals, measurement methodology, and the interventions that produce real improvements.
8 min read
A systematic approach to identifying, measuring, and eliminating frame drops in Jetpack Compose applications, with concrete patterns and tooling strategies.
7 min read
A systematic approach to identifying, isolating, and fixing performance bottlenecks in large Android codebases, covering profiling strategies, common pitfalls, and production-grade tooling.
9 min read
Practical catalog of non-obvious Compose patterns that trigger excessive recomposition, with fixes and measurement strategies for each.
7 min read
Techniques for collecting meaningful performance data from production Android apps without degrading user experience, covering sampling strategies, custom metrics, and real-world pitfalls.
9 min read
A detailed look at ART's garbage collection mechanisms, how GC pauses affect frame rates, and practical strategies to minimize GC impact in production Android apps.
8 min read
A deep examination of Android's Binder IPC mechanism, its thread pool model, and the performance consequences that surface at scale in large applications.
9 min read
Concrete memory allocation anti-patterns in Android and Kotlin code that degrade performance, with profiling strategies and fixes for each.
8 min read
A side-by-side comparison of RecyclerView and LazyColumn performance characteristics, optimization strategies, and trade-offs for production Android apps.
7 min read
Cold start latency measurements across AWS Lambda, Vercel Functions, Cloudflare Workers, and containerized deployments with concrete numbers.
9 min read
A systems-level look at the Android main thread, its message queue, how work is scheduled and blocked, and strategies for keeping it responsive in large-scale apps.
8 min read
Practical techniques for shrinking Android APK size in production apps, covering R8 configuration, resource optimization, native library management, and the trade-offs of each approach.
8 min read
A structured methodology for identifying and fixing battery drain in Android apps, covering wake locks, location updates, background work, and network polling patterns.
7 min read
Measured write throughput and latency for Postgres under increasing concurrency, comparing single inserts, batch inserts, COPY, and async writes.
7 min read
Comparing cache-aside, write-through, and read-through strategies with measured hit rates, latency, and consistency trade-offs under production traffic patterns.
8 min read
A practical framework for catching performance regressions before they reach production, covering CI benchmarks, statistical analysis, alerting strategies, and automated bisection.
8 min read
Techniques for reducing SSR latency including streaming, selective hydration, component-level caching, and measured performance gains.
6 min read
Real scenarios where adding a cache increased complexity, introduced bugs, or degraded performance, and the decision framework I use to evaluate whether a cache is the right solution.
8 min read
Designing load tests that replicate mobile traffic patterns including bursty connections, mixed network conditions, and session-based workflows.
6 min read
The case for investing in observability before optimization, and why the ability to understand system behavior is more valuable than making it faster.
7 min read
Measuring the impact of HTTP cache headers, service workers, and local storage caching on repeat visit performance and data freshness.
8 min read
Benchmarking the runtime overhead of ORMs, validation libraries, middleware chains, and framework abstractions with concrete performance numbers.