👨‍💻 Researcher at Kotlin Evolution Team 🧙‍♂️ Haskell wizard 📚 Author of 4 books 👨‍👩‍👦‍👦 +1 of @ElenaVielva

Utrecht, NL
Joined September 2009
📚 My self-published books 🌯 Book of Monads: leanpub.com/book-of-monads + lulu.com/es/shop/alejandro-s… 🧱 Haskell (almost) std libs: leanpub.com/haskell-stdlibs + lulu.com/es/shop/alejandro-s… 💭 FP Ideas for the Curious Kotliner: leanpub.com/fp-ideas-kotlin + lulu.com/shop/alejandro-serr…
2
11
44
5,656
Alejandro Serrano retweeted
Kotlin's return value checker - lots of developers missed this one. In this video, I show how you can use it to expect call sites to use the values returned from your functions. See you at KotlinConf this week! youtube.com/watch?v=VDEQh2Jk…
4
12
847
Alejandro Serrano retweeted
The Full Lineup for #LambdaWorld26 is HERE! Where: Torremolinos, Malaga. Spain When: October 29-30, 2026 How: lambda.world Get your tickets NOW!
5
1
6
1,218
Alejandro Serrano retweeted
Great roadmap! Love it. One underrated lesson from Kotlin: positional destructuring by default was a design mistake. Functional ideas are great and useful, but pragmatic languages for industry should be careful about importing too much academic baggage.
Happy to share that we have folks from the language design team blogging about new features! Check out this post by @trupill about how Kotlin is moving to a safer, Name-Based Destructuring syntax: blog.jetbrains.com/kotlin/20…
2
1
1
66
10,691
Happy to share that we have folks from the language design team blogging about new features! Check out this post by @trupill about how Kotlin is moving to a safer, Name-Based Destructuring syntax: blog.jetbrains.com/kotlin/20…
1
8
2
54
14,450
Alejandro Serrano retweeted
After years of waiting for this feature, we finally have it in Kotlin! Collection literals are supported as an experimental feature since Kotlin 2.4. The idea is simple: You can create a collection using a box bracket. Based on the specified type, a different collection type might be created, like a list or a set. If no type is specified, a list is created by default. Collection literals associated with the of operator on a companion object. You can make them work for custom types by defining this operator. It mustn’t be an extension. Collection literals require Kotlin 2.4 (such as "2.4.0-Beta2”), "-Xcollection-literals” compiler argument, and IntelliJ IDEA 2026.2 (which should be released in EAP around May 5th). Here you can see them used in the KotlinConf application: github.com/JetBrains/kotlinc…
5
19
1
116
7,530
Alejandro Serrano retweeted
We encourage undergraduate, master’s, and early-stage PhD students interested in programming languages to apply for PLMW at PLDI 2026. It is a great opportunity to learn from researchers, build connections, and explore future directions in PL. Apply here: pldi26.sigplan.org/home/PLMW…
3
72
399
31,384
Boring code meets exciting new tech 😮
We just open-sourced lean4-json-schema: derive JSON Schema from Lean 4 types, with a compile-time proof that serialization always validates against it. No more trusting. The compiler checks it. 🧵 predictablemachines.com/blog…
1
8
713
Alejandro Serrano retweeted
Destructuring has been a popular feature in Kotlin, but since it's been based on position, it comes with some risks. But with Kotlin 2.3.20, you can eliminate many of those risks! Here's what I mean... Since destructuring is based on position, the order of your variables needs to match the order of the components (such as the data class constructor properties). If you accidentally swap around a few of them, you could end up with some surprises, and it's easy to do, especially when several of the components have the same type! But with Kotlin 2.3.20, you can now enable an experimental feature to use name-based destructuring instead! When activated in "complete" mode, the syntax we've been using up until now will match based on name rather than position. This means you can get them out of order, and it still works. If you use a name that doesn't match, you'll get a compiler error. But for those cases where you actually wanted a different name, you can use a new syntax to assign the component to a different name: val (title, cost = price, author) = book Prefer to use the classic, position-based destructuring? You can use brackets instead of parentheses, like this: val [author, cost, title] = book The bracket syntax brings along some connotations of collections, which seems fitting, since position-based destructuring could still be helpful for things like Pair and List. It's still experimental, and there's a full migration path planned out, but you can activate it today with a compiler argument. What do you think about this feature Do you like the new syntax? Have you run into issues with position-based destructuring in the past? #Kotlin #AndroidDev
3
11
70
2,924
Alejandro Serrano retweeted
YO! FP Community! Do you know who is coming to Malaga this April? @ElixirConf EU 2026 takes place in Málaga, Spain, this April with 600+ attendees, keynotes from @josevalim and @chris_mccord , and 40+ talks on Phoenix, LiveView, AI/ML, and production systems. As Europe's premier Elixir conference, it's the perfect opportunity to connect with the community and showcase your involvement in the ecosystem.   elixirconf.eu/#register
3
6
437
Alejandro Serrano retweeted
🆕 The Kotlin 2.3 what’s new video is out! Learn from Márton (@zsmb13) as he showcases the highlights of the new version, including language additions, features that became stable in this release, and improvements across all platforms 👇 youtu.be/_6PSSkqwbp8?si=EktC…
12
1
52
6,258
Catch up with everything that's new in Kotlin 2.3 in our latest video! We have some really cool new features (explicit backing fields and unused return value checker!), previously announced features that are stabilizing, neat stdlib updates, and more! youtube.com/watch?v=_6PSSkqw…
3
30
2,080
Here's our overview and links to our initial materials to help you with AGP 9.0 migrations of your Kotlin projects! blog.jetbrains.com/kotlin/20… More to come later still, such as updates in the KMP wizard and in our samples.
5
8
1
47
3,103
Alejandro Serrano retweeted
Join our Kotlin/Native team! What a fantastic opportunity to learn deep technical technologies, such as LLVM, compilers, ... 🎉 Please do apply! If you have questions about JetBrains, feel free to ask me (DM) linkedin.com/feed/update/urn…
7
40
3,499
Alejandro Serrano retweeted
Arrow-kt 2.2.1.1 is out. Release notes: arrow-kt.io/community/blog/2… If you're curious about the Arrow-kt, or functional programming in Kotlin be sure to check out the website It's full of cool sections on resilience, typed errors, coroutines, STM, immutable data, etc.
5
32
1,834
Alejandro Serrano retweeted
Kotlin 2.3.0 is out! My faves (not in order) 😅 - Unused value checker - Improvement Context Sensitive Resolution - Java 25 Bytecode - Kotlin/JS suspend function export - Better Swift Interop - Explicit backing fields - New Kotlin Uuid APIs and there is much more! Check it out
📢 Kotlin 2.3.0 is out! Here are some of the highlights: ✅Language: More stable and default features, unused return value checker, explicit backing fields, and changes to context-sensitive resolution. ✅Kotlin/JVM: Support for Java 25. ✅Kotlin/Native: Improved interop through Swift export, faster build time for release tasks, C and Objective-C library import in Beta. ✅Kotlin/Wasm: Fully qualified names and new exception handling proposal enabled by default, and new compact storage for Latin-1 characters. ✅Kotlin/JS: New experimental suspend function export, `LongArray` representation, unified companion object access, and more. ✅Gradle: Compatibility with Gradle 9.0 and a new API for registering generated sources. ✅Compose compiler: Stack traces for minified Android applications. ✅Standard library: Stable time tracking functionality and improved UUID generation and parsing. Learn more: ➡️ kotl.in/2-3-0
1
15
112
5,062
Alejandro Serrano retweeted
📢 Kotlin 2.3.0 is out! Here are some of the highlights: ✅Language: More stable and default features, unused return value checker, explicit backing fields, and changes to context-sensitive resolution. ✅Kotlin/JVM: Support for Java 25. ✅Kotlin/Native: Improved interop through Swift export, faster build time for release tasks, C and Objective-C library import in Beta. ✅Kotlin/Wasm: Fully qualified names and new exception handling proposal enabled by default, and new compact storage for Latin-1 characters. ✅Kotlin/JS: New experimental suspend function export, `LongArray` representation, unified companion object access, and more. ✅Gradle: Compatibility with Gradle 9.0 and a new API for registering generated sources. ✅Compose compiler: Stack traces for minified Android applications. ✅Standard library: Stable time tracking functionality and improved UUID generation and parsing. Learn more: ➡️ kotl.in/2-3-0
6
106
12
423
47,407