Ivan “CLOVIS” Canet
banner
ivcanet.bsky.social
Ivan “CLOVIS” Canet
@ivcanet.bsky.social
Kotlin developer & teacher @ 4SH, learn more about me: ivan.canet.dev

Open source at https://opensavvy.dev • @opensavvy.techhub.social.ap.brid.gy

Organizing the Kotlin Bordeaux User Group at https://bordeauxkt.io
Reposted by Ivan “CLOVIS” Canet
I made a map of 3.4 million Bluesky users - see if you can find yourself!

bluesky-map.theo.io

I've seen some similar projects, but IMO this seems to better capture some of the fine-grained detail
Bluesky Map
Interactive map of 3.4 million Bluesky users, visualised by their follower pattern.
bluesky-map.theo.io
February 8, 2026 at 10:59 PM
We got social media cards now!

It uses the short title instead of the long one though…

spine.opensavvy.dev/failures-arr...
Failures with Arrow - OpenSavvy Spine
Share your Ktor endpoints between client and server
spine.opensavvy.dev
February 9, 2026 at 9:19 PM
If you have a GitHub account, please follow me!

GitHub.com/clovis-ai

I'm trying to make it to committers.top/france, I have enough contributions but not enough followers 😅
CLOVIS-AI - Overview
Software development & architecture, specialized in Kotlin & Rust - CLOVIS-AI
GitHub.com
February 7, 2026 at 11:28 AM
I had never really used GitLab's personal TODO feature. Apparently, it saves a maximum of 1000 TODOs.

I'm currently cleaning them up, it goes all the way to 2022 😮
February 7, 2026 at 10:43 AM
Reposted by Ivan “CLOVIS” Canet
With KtMongo 0.26.0, easily compare two complex BSON documents or arrays

Particularly useful in tests to understand what changed!

ktmongo.opensavvy.dev
February 3, 2026 at 6:22 PM
Reposted by Ivan “CLOVIS” Canet
Waiting for Gradle to finish 😂
February 1, 2026 at 11:53 AM
Today @ogkodee.bsky.social tried telling Slonik but I'm not sure it understood
January 31, 2026 at 11:41 PM
I found a HACK to get EVERYONE to TAKE PICTURES OF ME at TECH CONFERENCES

You wouldn't guess what it is
January 31, 2026 at 9:19 PM
I'm trying very hard to materialize an Exposed mascot @ogkodee.bsky.social
January 31, 2026 at 4:20 PM
FOSDEM 2026, Here we go!
January 31, 2026 at 9:09 AM
If I had a nickel every time I visited a french-speaking capital city on a river named ‘sane’...
January 30, 2026 at 11:38 PM
First cultural shock in Belgium: 5.50€ for water in a restaurant??
January 30, 2026 at 1:27 PM
Reposted by Ivan “CLOVIS” Canet
Thursday 12/02 we’re hosting the first BEKUG MeetUp of 2026 at DPGMedia in Vilvoorde!
Interested or curious about @kotlinlang.org ?
Register for free: meetu.ps/e/PNbwy/sYjb...
Belgian Kotlin User Group Vilvoorde, Thu, Feb 12, 2026, 6:30 PM | Meetup
Hi Kotlin enthusiasts! I am happy to be facilitating our **second BEKUG Meetup** at **DPG Media**. We'll figure out what works best for our community as we go along, so y
meetu.ps
January 29, 2026 at 11:15 AM
January 28, 2026 at 4:18 PM
What did I do again 😅
January 27, 2026 at 12:41 PM
I have to ensure 3 different serialization libraries have the same output, and of course, they don't 🤦‍♂️

• the MongoDB data-class serializer
• the MongoDB KxS serializer
• my own KxS serializer
January 26, 2026 at 1:10 PM
It turns out, I'm very good at crashing the Kotlin compiler
January 26, 2026 at 12:33 PM
Yeah I was wondering how long it would take to learn how to avoid explicit user authorization
January 23, 2026 at 1:15 PM
RIP Gwen, 2012–2026 ♥️
January 22, 2026 at 1:43 PM
Super de faire un changement à St Pierre des Corps.

Dans un rayon de 20min à pieds il y a en tout UN kebab, et le mec fume en cuisine
January 20, 2026 at 7:19 PM
Big companies investing into New Things is good! Stop hoarding!

But everyone could see it wouldn't work when a budget larger than some countries' couldn't copy the existing tech of VRChat.

Where did the money go?
January 18, 2026 at 9:00 PM
Bordeaux, France
January 18, 2026 at 1:54 PM
Reposted by Ivan “CLOVIS” Canet
Shit is getting bad out in the actual software economy. Cash registers that have to be rebooted twice a day. Inventory systems that randomly drop orders. Claims forms filled with clearly “AI”-sourced half-finished localisation strings. I see more and more in the lives of people around me every day.
January 18, 2026 at 12:18 PM
Implementing JSONPath is interesting

It looks like
$['foo']['bar']

Or, simplified:
$.foo.bar

Essentially, it's composed of segments. Each segment is a filter on the matching ‘depth’.
January 17, 2026 at 11:26 PM
Finally got around to finishing it!

Thanks @mbonnin.net
January 16, 2026 at 8:42 PM