Skip to main content
Software Engineering Daily

pnpm with Zoltan Kochan

36 min episode · 2 min read
·
Zoltan Kochan

Episode

36 min

Read time

2 min

Topics

Leadership, Software Development, Crypto & Web3

AI-Generated Summary

Key Takeaways

  • Symlink Architecture: PNPM creates a hidden .pnpm directory with flat package-name-at-version structure, using symlinks to isolated dependency folders. This prevents hoisting issues while Node.js resolves to real locations, maintaining proper dependency isolation without duplication.
  • Pipeline Parallelization: PNPM processes each package through independent resolve-fetch-write pipelines simultaneously, rather than completing all resolution before fetching. This architectural difference dramatically reduced installation times from 30 minutes to under 10 minutes in 140-component monorepos.
  • Catalogs Feature: Centralize dependency versions across monorepo workspaces using catalog: syntax in package.json version fields. The pnpm-workspace.yaml file defines standard versions, eliminating version drift without third-party tools like syncpack or Yarn constraints.
  • Configurational Dependencies: New dependency type runs before standard installation, enabling shared patches, overrides, and linting configs across multiple repositories. Teams can publish one package containing patch files and configuration, avoiding manual synchronization of dot-files.

What It Covers

Zoltan Kochan explains how PNPM uses symlinks and content-addressable storage to solve JavaScript package management inefficiencies, achieving faster installs and reduced disk usage compared to NPM and Yarn in monorepo environments.

Key Questions Answered

  • Symlink Architecture: PNPM creates a hidden .pnpm directory with flat package-name-at-version structure, using symlinks to isolated dependency folders. This prevents hoisting issues while Node.js resolves to real locations, maintaining proper dependency isolation without duplication.
  • Pipeline Parallelization: PNPM processes each package through independent resolve-fetch-write pipelines simultaneously, rather than completing all resolution before fetching. This architectural difference dramatically reduced installation times from 30 minutes to under 10 minutes in 140-component monorepos.
  • Catalogs Feature: Centralize dependency versions across monorepo workspaces using catalog: syntax in package.json version fields. The pnpm-workspace.yaml file defines standard versions, eliminating version drift without third-party tools like syncpack or Yarn constraints.
  • Configurational Dependencies: New dependency type runs before standard installation, enabling shared patches, overrides, and linting configs across multiple repositories. Teams can publish one package containing patch files and configuration, avoiding manual synchronization of dot-files.

Notable Moment

Kochan reveals their Rust rewrite proof-of-concept failed to improve speed because network requests, not language performance, dominate installation time. Future optimization requires registry-level changes like server-side resolution or partial file fetching.

Know someone who'd find this useful?

Episode Transcript

Traditional package management systems for JavaScript have faced several inefficiencies related to dependency storage, resolution, and project performance. PNPM is a fast, disk efficient package manager for JavaScript and TypeScript projects, serving as an alternative to NPM and Yarn. Due to its efficiency and reliability, PNPM is increasingly popular for managing monorepos and large scale applications. Zoltan Kokon is a full stack web developer and the creator of PNPM. He joins the show with Josh Goldberg to talk about his background and package management in the web ecosystem. This episode is hosted by Josh Goldberg, an independent full time open source developer. Josh works on projects in the TypeScript ecosystem, most notably TypeScript eslint, the tooling that enables eslint and Prettier to run on TypeScript code. Josh is also the author of The O'Reilly Learning TypeScript book, a Microsoft MVP for developer technologies, and a live code streamer on Twitch. Find Josh on Blue Sky, Mastodon, Twitter, Twitch, YouTube, and .com as Joshua k Goldberg. Zoltan, welcome to Software Engineering Daily. Hi. Hi. I'm happy to be here. As a consistent and now long time user of PNPM, I'm excited to talk to you. We've got a lot of great stuff to talk about, like architectures and modern eco management. Before we get into all that, though, how did you get into coding? I started coding at school, like, at 2,004. I didn't have a computer back then, or maybe it was even a little bit earlier. So I kind of had the whole journey from the invention of Internet still as the invention of AI. The first couple of years, I was coding without Internet. I got Internet only in 2008. So I was using just old school books and pirate content, I guess, in Ukraine. Actually, early on, I was planning to be a painter. I was doing a lot of drawing. I didn't want to join the university or institute. It was for painters, but I missed, like, entry dates. I mixed up the dates. So, accidentally, I failed that gym. And later on, I entered the math faculty to become an engineer. That's a guess. Most of it. Like, I started with Pascal at school, and then I used c sharp. And I used c sharp at my first job. So you're saying there's an alternate universe where instead of creating p and p m, you became an artist, a painter? Yeah. But I don't think I would be very successful at that. I was always painting, like, real stuff, you know, not some imaginative abstract stuff, which I think is more exciting for a painter. So you got your first job in c sharp. What was that? So the first job was at an outsource company. It's called Swan. And I have a little office in my city, Uzhkod, which is in Ukraine. And I had different projects for American companies. I started as a junior programmer there, and I was only doing, like, unit …

Get the full transcript (4,996 words) + summary by email — free

One-time email with the complete transcript and AI summary of this episode. No account needed.

One email, no spam. We’ll also show you what SignalCast does.

Browse all Software Engineering Daily transcripts →

You just read a 3-minute summary of a 33-minute episode.

Get Software Engineering Daily summarized like this every Monday — plus up to 2 more podcasts, free.

Pick Your Podcasts — Free

Keep Reading

Books, tools, and gear mentioned in this episode

SignalCast may earn commission on purchases via these links.

Tools

  • PNPMBy guest
    Zoltan Kochan explains how PNPM uses symlinks and content-addressable storage to solve JavaScript package management inefficiencies, achieving faster installs and reduced disk usage compared to NPM and Yarn in monorepo environments.
  • The pnpm-workspace.yaml file defines standard versions, eliminating version drift without third-party tools like syncpack or Yarn constraints.
  • achieving faster installs and reduced disk usage compared to NPM and Yarn in monorepo environments.
  • achieving faster installs and reduced disk usage compared to NPM and Yarn in monorepo environments.

More from Software Engineering Daily

We summarize every new episode. Want them in your inbox?

Similar Episodes

Related episodes from other podcasts

Explore Related Topics

This podcast is featured in Best Cybersecurity Podcasts (2026) — ranked and reviewed with AI summaries.

Read this week's Software Engineering Podcast Insights — cross-podcast analysis updated weekly.

You're clearly into Software Engineering Daily.

Every Monday, we deliver AI summaries of the latest episodes from Software Engineering Daily and 192+ other podcasts. Free for one show.

Start My Monday Digest

No credit card · Unsubscribe anytime