Vsevolod Tolstopyatov's Avatar

Vsevolod Tolstopyatov

@qwwdfsad.bsky.social

Kotlin @ JetBrains. API and language design, concurrency, performance

175 Followers  |  92 Following  |  46 Posts  |  Joined: 24.12.2023  |  2.1572

Latest posts by qwwdfsad.bsky.social on Bluesky

Today’s the last day to submit a talk for @kotlinconf.com. Go submit one!

Teaching something is a great way to deepen your understanding of it.

30.11.2025 12:39 β€” πŸ‘ 12    πŸ” 6    πŸ’¬ 0    πŸ“Œ 1

Additionally, GraalJIT consistently yields higher throughput than the stock JDK, with a similar warmup time

14.11.2025 16:13 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Native Image is an *amazing* technology!

Having a 150mb+ JAR full of weird compiler stuff (from jrtfs to Swing!) in kotlinc quite easily built with Native Image, and immediately yielding this kind of improvement is outstanding.

Looking forward to what's next πŸ‘€

14.11.2025 16:02 β€” πŸ‘ 9    πŸ” 2    πŸ’¬ 1    πŸ“Œ 0

Dima is a brilliant engineer, and the way he structures any discussion (be it internal or external) is always thoughtful and insightful. Every time I read his musings or talk to him, I learn something new or connect new dots

25.10.2025 11:31 β€” πŸ‘ 4    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

\\Special\acknowledgement\goes\to\Windows\path handling\

06.08.2025 15:35 β€” πŸ‘ 4    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Release v0.253.10629 Β· Kotlin/kotlin-lsp πŸ§ͺ Kotlin for VS Code Extension Includes the Kotlin Language Server bundled for use with Visual Studio Code. Download Β |Β  SHA-256 Checksum πŸ—‚οΈ Kotlin Language Server (Standalone ZIP) Standalone ver...

New Kotlin Language Server goodies are out: github.com/Kotlin/kotli...!

A lot of work ahead, but it starts getting its shape πŸ‘€

06.08.2025 15:33 β€” πŸ‘ 28    πŸ” 5    πŸ’¬ 1    πŸ“Œ 0

Random quote of the day: income taxes 'required an element of understanding as to why they were needed on the part of the individuals subject to said taxes and this understanding was usually widely lacking'

01.07.2025 20:24 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

My *by far* the most favourite talk this year.

@Sellmair did an amazing job -- explaining dynamic classloading, DCEVM, continuous builds, Compose internals, anonymous classes naming policy, and more in a deeply technical yet engaging manner

20.06.2025 14:34 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Such things rarely can happen individually, often they cannot even happen within a single team or a product.

I am eternally grateful to have @stukalov.bsky.social
on my side. Congrats! That's your achievement as much as it's Kotlin's πŸ’œ

23.05.2025 07:36 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

We poured the real effort, broke really thick walls, had heated debates and pitches, stretched IntelliJ limits (sometimes as far as using test infra to make it work in the LSP), and damn we did it! And there is still more to come :)

23.05.2025 07:35 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Not only was that a hell of a team effort, pushing the IJ codebase to its limits, but it is also a great step forward for Kotlin and a huge shift within JetBrains that we made happen.

23.05.2025 07:35 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
GitHub - Kotlin/kotlin-lsp: Kotlin Language Server and plugin for Visual Studio Code Kotlin Language Server and plugin for Visual Studio Code - Kotlin/kotlin-lsp

There is plenty of amazing stuff announced at KotlinConf.

But the thing I am most proud of is our release of Kotlin LSP along with VSC support: github.com/Kotlin/kotli...
Damn that was some action!

23.05.2025 07:34 β€” πŸ‘ 9    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

Futurama was definitely released ahead of its time

20.02.2025 18:03 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

If you want to participate in a naming battle, here's your chance!

I'd even say it might have an effect similar to deprecating String.capitalize(), but this time with a (hopefully) properly-named replacement

20.02.2025 17:43 β€” πŸ‘ 9    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
Preview
Sequences.kt GitHub Gist: instantly share code, notes, and snippets.

gist.github.com/qwwdfsad/eb3...

Something like that can do the trick (for less trivial chains still, similar to streams).

By the way, beware of benchmarks not consuming (returning) the result from the @Benchmark function, maybe it's worth remeasuring the original bench (especially the small one)

14.02.2025 10:57 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Thinking about it more, we can potentially provide a push-based sequence almost seamlessly, but it will require quite some tweaks.
And for trivial use cases (small collections, trivial transformations) unlikely to be *much* faster

13.02.2025 19:10 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Iterator-based protocol (which sequence is) is really unfortunate, the constant field-spilling and hasNext-next pair (which is strict with its contract) absorbs all the CPU :(

Also, a nice showcase of why we picked the push-based Flow model!

13.02.2025 19:02 β€” πŸ‘ 4    πŸ” 0    πŸ’¬ 2    πŸ“Œ 0

totally deserved!

07.02.2025 13:02 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Is it going to deadlock because of the clinit "deadlock" where lambda body (private static fun) cannot be invoked from another thread ("parallel") unless clinit is completed which in turn awaits parallel operator to complete?

05.02.2025 17:59 β€” πŸ‘ 6    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

Not all notes are that useful though

19.12.2024 10:52 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

...and today is one of these days. Thank you, Seva from the past, I guess

18.12.2024 19:04 β€” πŸ‘ 7    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

When dealing with concurrency problems, I leave comments with my findings even if they aren't really that meaningful (e.g. "don't do X, X leads to logical races" What races? Why?). I used to feel uneasy about that, but damn, every now and then, they save me hours of debugging

18.12.2024 19:04 β€” πŸ‘ 11    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

By the way, @volebamor.bsky.social suggested a really beautiful solution -- count all the junctions (i.e. β–’β–’ has two junctions: βŠ₯ and ⊀) and subtract the number from the perimeter. I am still mad that it actually works!

12.12.2024 23:07 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Damn these modern business practices! Who on earth counts discounts LIKE THAT?!

12.12.2024 19:18 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

you can probably guess what the section is about :)

12.12.2024 17:21 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

Came up with this one when writing an internal blogpost about performance work

12.12.2024 17:20 β€” πŸ‘ 4    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Sorry for that, I promise I'll switch back to technical content

12.12.2024 14:08 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

An update to the posting: www.jetbrains.com/careers/jobs...

Now with Germany and Netherlands on the table!

12.12.2024 14:07 β€” πŸ‘ 10    πŸ” 3    πŸ’¬ 1    πŸ“Œ 0

Also, the job description is supposed to be that :) There is, of course, regular maintenance, OSS, and compatibility work, things like that one cannot escape %)

09.12.2024 18:01 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

That's up to you for sure. Usually, what we care about (apart from the usual stuff) is the broad understanding of the JVM ecosystem and the taste for DX/ergonomics. Quite a few Kotlin developers (me included :)) were not really savvy with Kotlin beforehand

09.12.2024 17:59 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

@qwwdfsad is following 20 prominent accounts