Roman Dvornov's Avatar

Roman Dvornov

@rdvornov

Engineer at Microsoft / Frontend researcher, author of CPUpro, Discovery.js, React Render Tracker, CSSTree https://github.com/lahmatiy

60
Followers
74
Following
10
Posts
14.11.2024
Joined
Posts Following

Latest posts by Roman Dvornov @rdvornov

Preview
AI and the Coming Correction A forecast for the next year (2026)

Most AI forecasts today assume two things:

AI will replace engineers.
AI will write all the code.

I think both questions miss the real story.

A short forecast for the next year:
medium.com/@rdvornov/ai...

06.03.2026 14:19 ๐Ÿ‘ 2 ๐Ÿ” 2 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Preview
Why Profiling Leaves You Guessing From isolated measurements to understanding execution as a process

If profiling feels useless in complex apps (systems), maybe thatโ€™s not because nothing can be done.
But because weโ€™re still looking from the wrong perspective.
medium.com/@rdvornov/wh...

19.01.2026 01:09 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Preview
Stability Comes From Tension If removing tension feels like improvement, you are probably breaking something important.

A simple observation that becomes uncomfortable once you take it seriously:

Stability and objectivity in complex systems emerge from the structured coexistence of conflicting evaluative perspectives.

medium.com/@rdvornov/st...

15.01.2026 01:40 ๐Ÿ‘ 3 ๐Ÿ” 1 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Preview
Speeding up the JavaScript ecosystem - Semver During the installation process, package managers run a bunch of semver comparisons. The semver library used in npm, yarn and pnpm can be made around 33x faster.

The semver library used in npm, yarn and pnpm could be made 33x faster.

Ran into that while wondering why running `npm install` takes so long on the Preact repo.

marvinh.dev/blog/speedin...

10.08.2025 08:34 ๐Ÿ‘ 201 ๐Ÿ” 35 ๐Ÿ’ฌ 12 ๐Ÿ“Œ 8
Preview
Web Streams in Depth, Part 1: From Callbacks to Streams Introduction: The Challenge of Modern Data JavaScript has come a long way from its humble...

โœ๏ธ New article: Web Streams in Depth โ€“ Part 1: The Challenge of Modern Data

From callbacks to for await...of, and from Node.js Streams to the Web Streams API โ€” here's how JavaScript evolved to handle massive data efficiently, everywhere.

05.08.2025 13:10 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Video thumbnail

CPUpro 0.7.0 brings an enhanced All Call Frames table!

Get a birdโ€™s-eye view of every function โ€” with hotness, code states, deopt counts, and inline expansion for source + code states.

No more jumping between source and back โ€” everything at your fingertips.

github.com/discoveryjs/...

08.05.2025 06:07 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Video thumbnail

See exactly where time is spent โ€” with per-location precision, inlining markers, and deoptimization highlights, right in your source code.

JavaScript performance analysis, now more precise than ever.

08.05.2025 06:05 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Preview
Release 0.7.0 โ€“ Source code view, code states, raw V8 log and gzipped profiles support ยท discoveryjs/cpupro CPUpro opens a new chapter in providing deeper insights into how JavaScript code runs, introducing annotated function source code display with per-location precision. This feature is only available...

๐Ÿš€ CPUpro 0.7.0 is here!

- Annotated source code view
- Code states, inlining, deoptimizations insights
- Enhanced "All call frames" table
- Raw V8 log support (no conversion needed)
- Gzipped profiles support

08.05.2025 06:01 ๐Ÿ‘ 3 ๐Ÿ” 2 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Post image

Discovery.js 1.0.0-beta.94 Introducing text rendering
github.com/discoveryjs/...

22.03.2025 01:45 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Dear @webstorm.jetbrains.com and @jetbrains.com IDEs users who use JS testing framework integrations,
A huge refactoring of this subsystem was delivered in EAP 5.

It has changes for:
- @vitest.dev
- Jest
- @nodejs.org test runner
- @playwright.dev
- Cypress
- Mocha
- Protractor and Karma

...

21.02.2025 16:14 ๐Ÿ‘ 5 ๐Ÿ” 3 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Video thumbnail

New in Chrome 133 โ€“ which goes stable on Feb 4 โ€“ is a new method to move an element around the DOM.

Unlike the classic way of removing+reinserting a node, this moveBefore method preserves the elementโ€™s state!

Iframes remain loaded, animations donโ€™t restart, โ€ฆ

DEMO: codepen.io/bramus/full/...

16.01.2025 09:56 ๐Ÿ‘ 162 ๐Ÿ” 27 ๐Ÿ’ฌ 4 ๐Ÿ“Œ 2
Preview
Release 0.6.0 โ€“ Call stack restoration of inlined code, enhanced calculations and presentation, new data model ยท discoveryjs/cpupro In the months since the previous release, CPUpro underwent significant refactoring, with major improvements in computations and new feature prototypes. This release introduces enhanced calculations...

๐Ÿš€ CPUpro v0.6

After months of research, experiments and refactoring, a first release in a row is here: call stack restoration of inlined code (V8 log), enhanced calculations and presentation, new data model.
Release notes (long read): github.com/discoveryjs/...

More to come soon!

14.01.2025 06:56 ๐Ÿ‘ 2 ๐Ÿ” 1 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Preview
Node.js โ€” Node v23.6.0 (Current) Node.jsยฎ is a JavaScript runtime built on Chrome's V8 JavaScript engine.

Node.js v23.6.0 is out! ๐Ÿฅณ๐ŸŽ‰

This release enables the flag --experimental-strip-types by default.

Node.js will be able to execute TypeScript files without additional configuration!

โš ๏ธ This feature is experimental, has limitations and is subject to change.

nodejs.org/en/blog/rele...

07.01.2025 17:56 ๐Ÿ‘ 99 ๐Ÿ” 30 ๐Ÿ’ฌ 3 ๐Ÿ“Œ 6

Also, I am looking for active maintainers to help me maintain VueUse. I'd be happy to provide some mentorships if you are interested in that.

Doing OSS would be a long process tho, and probably won't make you have financial benefits at the beginning - but could be an interesting experience.

18.12.2024 09:16 ๐Ÿ‘ 77 ๐Ÿ” 15 ๐Ÿ’ฌ 11 ๐Ÿ“Œ 1
Preview
Top 8 things I want in the Devtools Network Panel Look, I'm just going to come out and say it: I'm a jealous man. I'm not proud of it, but I'm a jealous man. These past months and years, I've seen great update after amazing update (not you) being rel...

Web performance calendar: Friday the 13th edition with @programmingart.bsky.social's monster ๐Ÿ˜ˆ of a post on what's sorely needed in a browser's Network panel today

calendar.perfplanet.com/2024/top-8-t...

13.12.2024 20:14 ๐Ÿ‘ 15 ๐Ÿ” 4 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 1

With the recent Safari 18.2 release, WebAssembly Garbage Collection is now available in all the major browsers ๐Ÿฅณ

12.12.2024 07:26 ๐Ÿ‘ 38 ๐Ÿ” 8 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 2
Post image

You can force garbage collection in your JS by starting Chrome with a flag:
open "/Applications/Google Chrome.app" --args --js-flags=--expose-gc
Now you can call `gc()` to collect the rubbish :)

07.12.2024 01:22 ๐Ÿ‘ 6 ๐Ÿ” 1 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Preview
Converting FormData to a multipart/form-data String and Back Using Response While working on another article about converting various values into ReadableStream, I stumbled upon...

Discovered a neat trick: converting FormData to a multipart/form-data string (and back!) using the Response API. Seems to be an unknown or little-known approach, though I donโ€™t claim originality. Wrote an article to share how it works: dev.to/rdvornov/con...

05.12.2024 16:16 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Preview
@eslint/css CSS linting plugin for ESLint. Latest version: 0.1.0, last published: 5 minutes ago. Start using @eslint/css in your project by running `npm i @eslint/css`. There are no other projects in the npm regi...

๐Ÿ“ฃ Start linting CSS with ESLint using the brand new eslint/css package!

This is a very early edition so feedback is welcome. ๐Ÿฃ

www.npmjs.com/package/@esl...

26.11.2024 16:09 ๐Ÿ‘ 107 ๐Ÿ” 21 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 5
Blink: Intent to Ship: Explicit resource management (sync) Blink: Intent to Ship: Explicit resource management (sync)

Blink: Intent to Ship: Explicit resource management (sync)

22.11.2024 00:00 ๐Ÿ‘ 4 ๐Ÿ” 2 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Preview
Make creative borders with background-clip border-area Howโ€™d you like to use CSS to easily create a border from an image or gradient?

We implemented a new value for `background-clip` called `border-area`. It lets you use CSS fill a border with a background image or gradient.

This article explains how it works, and shows up the possibilities in 7 demos.

#css #webdesign #webdevelopment #graphicdesign

webkit.org/blog/16214/b...

20.11.2024 16:02 ๐Ÿ‘ 251 ๐Ÿ” 44 ๐Ÿ’ฌ 10 ๐Ÿ“Œ 8
Video thumbnail

Excited to announce Easing Wizard is now live! ๐ŸŽ‰

The ultimate CSS easing editor with support for Bรฉzier, spring, bounce, wiggle, and overshoot! ๐Ÿš€

๐Ÿ”— easingwizard.com

Can you find the hidden easter egg?

19.11.2024 16:06 ๐Ÿ‘ 108 ๐Ÿ” 25 ๐Ÿ’ฌ 5 ๐Ÿ“Œ 7