Engineering the New LinkedIn Profile

Josh Clemm
6 min readintermediate
--
View Original

Overview

The article discusses the engineering behind the redesigned LinkedIn profile, highlighting the adoption of new technologies such as JSON mappers, Fizzy, and Dust.js to enhance user experience and performance. It details the shift from server-rendered HTML to a more dynamic, client-side architecture that allows for faster loading and greater interactivity.

What You'll Learn

1

How to implement JSON mappers for dynamic web applications

2

Why using client-side templates improves performance and user experience

3

How to leverage asynchronous data fetching with Fizzy

Prerequisites & Requirements

  • Understanding of web application architecture and frontend technologies
  • Familiarity with JSON and JavaScript frameworks(optional)

Key Questions Answered

What are the key changes in the new LinkedIn profile architecture?
The new LinkedIn profile architecture includes three key changes: the use of Mappers to serve JSON data, the implementation of Fizzy for asynchronous data fetching, and the adoption of Dust.js for client-side template rendering. These changes enhance performance and user interactivity.
How does Fizzy improve the rendering of UI components?
Fizzy acts as a UI aggregator that fetches and combines UI components from various web applications, rendering them on a single page. It consists of a server-side plugin for Apache Traffic Server and a client-side JavaScript library, allowing for efficient data handling and rendering.
What advantages do JSON mappers provide in the new profile?
JSON mappers allow the profile web app to serve data instead of HTML, enabling independent URL endpoints for different sections. This facilitates parallel requests and reusability of data across various parts of the profile, enhancing performance and flexibility.
How does the new profile handle deferred rendering?
The new profile optimizes performance by breaking the page into smaller UI embeds, allowing critical content to load first while deferring less important sections. This approach significantly improves load times, especially for longer profiles.

Technologies & Tools

Data Format
JSON
Used for serving data from the Profile web app instead of HTML.
Frontend
Fizzy
Acts as a UI aggregator for fetching and rendering UI components.
Frontend
Dust.js
Client-side templating technology used to render HTML in the browser.

Key Actionable Insights

1
Implementing JSON mappers can streamline data handling in web applications, allowing for more modular and maintainable code.
By structuring your application to serve data as JSON, you can enhance performance and reduce server load, especially in applications with dynamic content.
2
Utilizing client-side templates like Dust.js can improve user experience by enabling faster updates and interactions on the frontend.
This approach allows for seamless inline edits and dynamic content updates without full page reloads, which is crucial for modern web applications.
3
Adopting asynchronous data fetching strategies can significantly enhance the perceived performance of your web application.
By fetching data in parallel and rendering it progressively, users experience faster load times and a more responsive interface.

Common Pitfalls

1
Failing to optimize for above-the-fold content can lead to poor user experiences due to slow load times.
This often occurs when developers do not prioritize critical UI elements, resulting in users waiting longer to see important content.
2
Not utilizing asynchronous data fetching can lead to blocking UI updates, making applications feel sluggish.
When all data is fetched synchronously, users may experience delays, especially in applications with multiple data sources.

Related Concepts

Frontend Architecture Patterns
Asynchronous Programming In Javascript
Client-side Rendering Techniques