This talk has been presented at React Summit US 2023, check out the latest edition of this React Conference.
Video: Road to Zero Lint Failures: Tackling Code Quality Challenges at Scale


FAQ
Lint roles at LinkedIn ensure consistency, bug prevention, and maintenance across the codebase. They help scale guidance to all teams, covering the latest code standards, preventing common mistakes, and maintaining deterministic code during migrations.
LinkedIn runs Lint roles in three stages: during development, pre-commit, and pre-merge. This approach alerts developers early to any Lint rule violations before involving other engineering team members.
LinkedIn faced scaling issues due to their extensive codebase, which included over 24,000 files and 100k commits, and an initial count of over 7,000 Lint failures. The increase in Lint failures was exacerbated by new code and Lint rules that did not address existing issues.
To reduce Lint failures, LinkedIn implemented measures such as blocking commits with Lint failures, setting Lint failure limits for teams, and enforcing standards through a two-step review process. Additionally, they introduced a rule requiring that all existing errors be fixed before a new Lint rule could be enabled at error severity.
LinkedIn used a combination of carrots over sticks, providing technical support, recognition, and a good developer experience. They offered immediate support for queries, shout-outs for cleaning up Lint failures, and tooling that simplified the identification and ownership of errors.
LinkedIn developed a tool that broke down ESLint failures by team and rule, updated nightly. They also used Checkup, a node runner that could analyze the entire codebase nightly and provide structured outputs for easy tracking and visualization of Lint failures.
The initiative to reduce Lint failures led to significant improvements in perceived code quality, with a 30% increase reported in quarterly surveys. The effort involved 55 unique contributors and resulted in the cleanup of over 6,000 Lint failures.
Check out more articles and videos
We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career
Workshops on related topic
Some of the things you'll learn:- Generating a pristine Nx workspace- Generating frontend React apps and backend APIs inside your workspace, with pre-configured proxies- Creating shared libs for re-using code- Generating new routed components with all the routes pre-configured by Nx and ready to go- How to organize code in a monorepo- Easily move libs around your folder structure- Creating Storybook stories and e2e Cypress tests for your components
Table of contents: - Lab 1 - Generate an empty workspace- Lab 2 - Generate a React app- Lab 3 - Executors- Lab 3.1 - Migrations- Lab 4 - Generate a component lib- Lab 5 - Generate a utility lib- Lab 6 - Generate a route lib- Lab 7 - Add an Express API- Lab 8 - Displaying a full game in the routed game-detail component- Lab 9 - Generate a type lib that the API and frontend can share- Lab 10 - Generate Storybook stories for the shared ui component- Lab 11 - E2E test the shared component
Table of contents:
1 - The infamous "N+1" problem: Jonathan Baker - Let's talk about what it is, why it is a problem, and how Shopify handles it at scale across several GraphQL APIs.
2 - Contextualizing GraphQL APIs: Alex Ackerman - How and why we decided to use directives. I’ll share what directives are, which directives are available out of the box, and how to create custom directives.
3 - Faster GraphQL queries for mobile clients: Theo Ben Hassen - As your mobile app grows, so will your GraphQL queries. In this talk, I will go over diverse strategies to make your queries faster and more effective.
4 - Building tomorrow’s product today: Greg MacWilliam - How Shopify adopts future features in today’s code.
5 - Managing large APIs effectively: Rebecca Friedman - We have thousands of developers at Shopify. Let’s take a look at how we’re ensuring the quality and consistency of our GraphQL APIs with so many contributors.

















