LinkedIn Karthik Ramgopal Mar 2, 2016

The LinkedIn Android Data Pipeline

Article Summary

LinkedIn rebuilt their Android data pipeline from scratch for their flagship app. The result? A system that handles everything from feed updates to messaging while keeping data consistent across screens.

Karthik Ramgopal, Distinguished Engineer at LinkedIn, breaks down how they designed a universal data pipeline that every feature team could use. The system needed to work flawlessly on low-end devices with flaky networks while maintaining speed and testability.

Key Takeaways

Critical Insight

LinkedIn's data pipeline combines code generation, intelligent caching, and streaming to deliver fast performance even on constrained Android devices.

The article reveals specific Android optimizations like using ArrayMap and generating fields instead of getters to avoid the 65k method limit.

About This Article

Problem

Android devices have limited memory, and reflection-based JSON parsing libraries like Gson create significant overhead when apps start up. This directly slows down launch times on low-end devices.

Solution

LinkedIn built a code generator that creates custom Jackson stream parsing code. It removes reflection overhead and cuts down intermediate memory allocations. The generated code also uses Android-specific optimizations like ArrayMap and public final fields to keep the method count low.

Impact

Apps start faster and use less memory on constrained devices. The approach also sidesteps the 65k method limit by generating fields instead of getter methods.