Anton Sviridov
indoorvivants.com
Anton Sviridov
@indoorvivants.com
83 followers 63 following 41 posts
I keep a detailed account of my various projects over at https://blog.indoorvivants.com/ and specifically the summary page: https://blog.indoorvivants.com/projects
Posts Media Videos Starter Packs
There are limits to this of course, but long term committment to a behaviour that is no longer correct/doesn't align with the vision of the interface and its contracts doesn't serve the maintainers or the majority (sic!) of users
I think it depends what you define as compatibility (and IMO it shouldn't be an all encompassing "this will never change promise"). In my area where compatibility is defined by binary and syntactic vectors, a prominent maintainer responded to exactly such a question: github.com/typelevel/ca...
isn't 3.5.0 `async` a breaking API change? · typelevel cats-effect · Discussion #3621
@djspiewak, please help us to understand, why async changes didn't lead to major version bump? If I understood correctly, now we have to be very careful with any library upgrade as our application ...
github.com
But the good thing is that once it works (after trial and error) it continues to work in different environments, and you have a single file with a blueprint of what it takes to build the app on a clean machine.

Using a slightly more portable DSL than GH workflows
Probably the most horrific application of this approach is in sn-bindgen-web: github.com/indoorvivant...

Copying individual linux and llvm files, publishing 6 different forks into local cache, installing system AND vcpkg dependencies... It used to build NGINX Unit from source!
sn-bindgen-web/Worker.Dockerfile at main · indoorvivants/sn-bindgen-web
Web interface to sn-bindgen (https://sn-bindgen.indoorvivants.com/) to generate Scala 3 Native bindings to C header files - indoorvivants/sn-bindgen-web
github.com
New post!

Self-contained multi-stage Dockerfiles are rad

Post: blog.indoorvivants.com/2025-10-14-s...

Repo: github.com/indoorvivant...

I use this old approach a lot in my apps (fullstack mostly) and I'm confident it's good enough for most people.
To celebrate the release of Cats Effect for Native 0.5, I rebuilt my web interface for sn-bindgen in Smithy4s and Http4s.

Now on Native 0.5, and actually working!

Blog post: blog.indoorvivants.com/2025-09-22-s...

App: sn-bindgen-web.indoorvivants.com

Repo: github.com/indoorvivant...
Here's a live coding session I did for London Scala User Group about Scala Native and how it can interop with C, C++, and even Assembly.

Super fun, by the end of it we had a blazing fast HTTP server built with a sprinkle of ARM64 assembly

www.youtube.com/watch?v=rRPe...
LSUG July 2025 Scala Native Live Coding - Anton Sviridov
YouTube video by London Scala User Group
www.youtube.com
It makes each platform infinitely more boring, thus reducing the desire to check it again and again in doom scrolling death spiral, but after gigabytes of rage bait and O-faced thumbnails I've given up.
It's probably the wrong thing to do, but after the horrors of For You page on Twitter I've sworn off any algorithmic timelines.

On Twitter I use addons.mozilla.org/en-GB/firefo..., on Bluesky I just don't open Discover, on Youtube I live on my Subscriptions page.
Control Panel for Twitter – Get this Extension for 🦊 Firefox (en-GB)
Download Control Panel for Twitter for Firefox. Gives you more control over Twitter and adds missing features and UI improvements
addons.mozilla.org
Reposted by Anton Sviridov
Thank you for attending yesterday's Scala Talks! Thank go to @thetradedesk.bsky.social for having us round for pizza, drinks and a beautiful view. Special thanks go to our fantastic speakers @indoorvivants.com and @noelwelsh.bsky.social . See you next time!
Reposted by Anton Sviridov
🗒️ from "Routing HTTP Requests with Scala 3" by @noelwelsh.bsky.social : noelwelsh.com/talks/routin...
🗒️ from "Modern CLIs with Scala Native" by @indoorvivants.com : slides.indoorvivants.com/clis-with-sc....
Join our Discord for video announcements discord.gg/aRCVCHmHES!
Because they had licorice in them, yes.
I respect you Noel but honestly, fuck licorice. Fuck it straight to hell.
Reposted by Anton Sviridov
I had fun contributing the new SimpleTable class to the ScalaSql query library. It lets you drop the `T[_]` from table definitions, and it's based on named tuples and structural types in Scala 3.7. Have a read.
Making ScalaSql boring again (with interesting new internals) | bishabosha
Explaining the motivation for the new SimpleTable feature for the ScalaSql library.
bishabosha.github.io
I didn't know anything about Electron or any of its tooling prior to this, and the journey wasn't particularly smooth.

Electron bindings were really the only Scala-specific hurdle, the rest was JS tooling/Electron related.

Very satisfying to get something that finally works!
Got invited to Imperial College of London to do some livecoding for students, this time making a simple Electron app with Scala.js searching Scala libraries.

github.com/keynmol/scal...
Reposted by Anton Sviridov
Hello folks 👋

ScalaIO is back for another edition in 2025 🥳

🌐 It will be held at La Grande Crypte, Paris 🇫🇷 on the 17/10/2025
🎟️ Early birds tickets are already open to sales(f: Person => `scala.io`)
🤝 CFP & sponsorships will open very shortly

See you soon 😊
Scala.IO
Scala.IO is a conference for people having interest in the Scala ecosystem or simply being curious about the language, usages
scala.io
The shape of the library follows Langoustine, but here I also provide a simple jsonrpc implementation, which should work fine with virtual threads or just blocking APIs.

In the future I'd love to derive tool definitions from case classes.
For something more relatable, here's a Scaladex MCP server: github.com/keynmol/scal....

Note that the model did not get any project descriptions and decided to just wing it.
I've been playing around with MCP to understand the hype, and wrote a small library (codegen, really): github.com/indoorvivant...

This image itself was generated by my CLI (Scala Native btw!) tools, into which I added a mcp subcommand.