Pemberly at LinkedIn

LinkedIn Engineering Team
5 min readadvanced
--
View Original

Overview

The article discusses Pemberly, LinkedIn's re-imagined technology stack for their flagship app, focusing on modernizing the user experience and improving developer productivity. It outlines the challenges faced with the previous stack and how Pemberly integrates various technologies to enhance responsiveness, state management, and overall app performance.

What You'll Learn

1

How to implement a modern technology stack for web applications

2

Why client-rendered applications enhance user experience

3

How to manage state effectively in JavaScript applications

4

When to use server-side rendering versus client-side rendering

Prerequisites & Requirements

  • Understanding of JavaScript and web application architecture
  • Familiarity with Ember.js and Play framework(optional)

Key Questions Answered

What are the main challenges faced in modernizing LinkedIn's app?
The main challenges included improving responsiveness, managing state effectively, and enhancing developer productivity. The previous stack was falling behind in these areas, leading to a need for a more modern approach that could provide a better user experience and streamline development processes.
How does Pemberly improve the user experience of LinkedIn's app?
Pemberly enhances user experience by implementing a client-rendered architecture that allows for smooth transitions and app-like interactions. This approach replaces the traditional page loading with dynamic updates, making the application feel more responsive and aligned with mobile experiences.
What technologies are integrated into Pemberly?
Pemberly integrates several technologies including the Play framework for the API server, Ember.js for the frontend application, and the ArtDeco CSS library for consistent styling. This combination supports a robust and efficient development environment while enhancing user experience.
What is the role of the API server in Pemberly's architecture?
The API server in Pemberly's architecture facilitates communication between the web and mobile clients by exposing RESTful endpoints. It transforms requests into standard JSON, ensuring that both platforms can share data seamlessly while maintaining security and access control.

Technologies & Tools

Backend
Play
Used for building the API server that handles HTTP requests.
Frontend
Ember
Framework for building the client-side application with strong conventions for state management.
Frontend
Artdeco
Internal CSS library for consistent styling across web applications.

Key Actionable Insights

1
Adopting a client-rendered architecture can significantly improve the user experience of web applications by providing smooth transitions and faster interactions.
This approach is particularly beneficial for applications that require frequent updates and dynamic content, as it minimizes jarring page reloads and enhances user engagement.
2
Implementing a robust state management solution is crucial for maintaining consistency and reducing complexity in JavaScript applications.
By consolidating state management practices, teams can improve developer productivity and ensure a more maintainable codebase, especially in larger applications.
3
Utilizing a well-defined API server can streamline data access across multiple platforms, enhancing the overall development process.
This allows developers to focus on building features rather than managing data retrieval complexities, leading to faster development cycles.

Common Pitfalls

1
Relying on multiple state management solutions can lead to a fragmented frontend ecosystem.
This fragmentation makes it difficult to provide adequate developer tooling and can result in inconsistent application behavior, making it essential to adopt a unified approach to state management.

Related Concepts

Modern Web Application Architecture
State Management In Javascript
Client-side Rendering Vs Server-side Rendering