Sign in

Egor Andreevich

@egorand.dev
203 followers 203 following 39 posts

Barcelona, hiking, travelling, rock shows, movies, books, work-life balance. Developer at JetBrains (Kotlin Build Tools), Square Open Source contributor. Opinions my own.

PostsRepliesMedia
Reposted by Egor Andreevich
Jesse Wilson @swank.ca · 18/09/2026
‘the main purpose of unit tests is keeping your code from being violently shat on by others in an environment where everything changes uncontrollably all the time.’ (they also defend against blunders by future-me)
yosefk.com
Unit tests mark territory more than squash bugs
031
Egor Andreevich @egorand.dev · 09/09/2026
Didn't expect to be targeted by a bus stop ad!
A Kotlin ad banner at a bus stop in Barcelona
080
Reposted by Egor Andreevich
Bridget Phillips @jingibus.bsky.social · 09/09/2026
Okay, here's my first (published) attempt to write about what it's been like on the other side of the layoffs at Cash App (and all of Block): www.billjings.net/posts/title/... The answer is that it's been weird! Alienated, but not alone.
billjings.net
Checking the Classrooms
0122
Egor Andreevich @egorand.dev · 07/09/2026
KotlinPoet 2.4.0 has explicit backing fields, multi-field value classes and improved formatting! 🖨️ github.com/square/kotli...
github.com
Release 2.4.0 · square/kotlinpoet
Thanks to @eyupcanakman and @arimu1 for contributing to this release. New: Kotlin 2.4.20. New: KSP 2.3.11. New: Support for explicit backing fields. (#2325) New: value class validations have been ...
0101
Reposted by Egor Andreevich
Bridget Phillips @jingibus.bsky.social · 03/09/2026
Wherein I rant about OO data modeling and slap an upbeat title on it: www.billjings.net/posts/title/...
billjings.net
A Heartfelt Prayer For OO Data Modeling
012
Reposted by Egor Andreevich
Jesse Wilson @swank.ca · 27/08/2026
Android 17’s better HTTPS privacy is rad. I’m proud that OkHttp 5.5 makes it easy to adopt.
medium.com
Closing a Critical Internet Privacy Gap for Billions of Users: Android 17 Rolls Out ECH Support
When you launch an app or visit a website, you likely assume your connection is private. In reality, a critical privacy gap remains. Even…
2348
Egor Andreevich @egorand.dev · 14/08/2026
This one's exciting! blog.gradle.org/resilient-sync
blog.gradle.org
Resilient Sync: Your IDE Keeps Helping even when your Build is Broken
Gradle 9.7 and IntelliJ IDEA 2026.2 bring resilient sync to IDE users. When part of your build fails to configure, Gradle still hands the IDE models for everything that succeeded, so you keep code com...
010
Reposted by Egor Andreevich
Jesse Wilson @swank.ca · 22/07/2026
Okio 3.18 has what you long for: unsigned reads and writes. 🗿
lysine.dev
Change Log - Okio
A modern I/O library for Android, Kotlin, and Java.
1101
Egor Andreevich @egorand.dev · 20/07/2026
Guess what, my new health insurance app, not every Spanish resident has two last names! And yeah, read this: www.kalzumeus.com/2010/06/17/f...
A screenshot from an automated email in Spanish, where the second last name is missing and is replaced with "null"
230
Reposted by Egor Andreevich
Pamela Hill-Galloway @pamelaahill.bsky.social · 18/07/2026
Women belong in tech
0112
Reposted by Egor Andreevich
Sebastian Sellmair @sellmair.dev · 17/07/2026
Something big might happen to the Kotlin Multiplatform Ecosystem 👀 We were never too happy about how Kotlin publishes and resolves KMP libraries. It takes up significantly more space than it has to, produces a ton of artifacts and Maven modules, and is just... complex!
14914
Egor Andreevich @egorand.dev · 15/07/2026
Something that I really enjoy about working at JetBrains is dogfooding everything all the time: IDEA, its plugins, the Kotlin Gradle Plugin, Kotlin itself. So cool to file bugs and see them picked up, triaged and fixed!
190
Reposted by Egor Andreevich
Zac Sweers @zacsweers.dev · 01/07/2026
Metro 1.3.0 has rich diagnostics and experimental runtime tracing! github.com/ZacSweers/metro/re...
github.com
Release 1.3.0 · ZacSweers/metro
New [IR] Revamp graph-validation diagnostics with structured output. Taking some inspiration from Rust error messages. Stable diagnostic IDs Compact dependency chains Aligned binding traces...
1162
Reposted by Egor Andreevich
Zac Sweers @zacsweers.dev · 10/06/2026
Metro 1.2.0 has Hilt interop, provider inlining, improved compiler performance, and leaner runtime primitives! github.com/ZacSweers/metro/re...
github.com
Release 1.2.0 · ZacSweers/metro
New [interop] This release introduces experimental support for Hilt @InstallIn and @EntryPoint interop. Enabled with metro { interop { includeHilt() } } A @DependencyGraph(<scope>) automatically ...
0133
Reposted by Egor Andreevich
Jesse Wilson @swank.ca · 10/06/2026
Okhttp 5.4 interceptors can do more. 🎸 square.github.io/okhttp/chang...
square.github.io
Change Log - OkHttp
Square’s meticulous HTTP client for the JVM, Android, and GraalVM
1133
Reposted by Egor Andreevich
Zac Sweers @zacsweers.dev · 22/05/2026
Here are the slides: speakerdeck.com/zacsweers/me...
speakerdeck.com
Metro Under the Hood
0122
Reposted by Egor Andreevich
JetBrains @jetbrains.com · 21/05/2026
KotlinConf'26 started today in Munich, and there’s a lot to announce. Kotlin is easier than ever to get started with, and it now powers some of the most-used apps in the world – both on the backend and mobile. 🧵 Here are the highlights from the opening keynote.
192
Reposted by Egor Andreevich
Zac Sweers @zacsweers.dev · 20/05/2026
I'll be giving a talk about Metro's internals tomorrow at @kotlinconf.com! This'll be an advanced talk that assumes familiarity with Metro, and is a sort of part 2 of my "Navigating Dependency Injection with Metro" talk last year. You can find it here: www.youtube.com/watch?v=jVfm...
The first slide from the talk - "Metro Under the Hood"
1272
Reposted by Egor Andreevich
Zac Sweers @zacsweers.dev · 13/05/2026
Metro 1.1.0 and 1.0.1 are out now! This is largely a performance release. They are identical except 1.1.0 drops Kotlin 2.2.0 - Improved compiler performance - Lots of tracing improvements - SwitchingProvider now generates tableswitch bytecode - Kotlin 2.4.20 support github.com/ZacSweers/metro/re..
github.com
Release 1.0.1 · ZacSweers/metro
New [FIR] Add a diagnostic warning that @Module.subcomponents is ignored by Metro (when Dagger interop is enabled). [FIR] Add a diagnostic error for annotating @AssistedInject types with @Contribu...
1251
Reposted by Egor Andreevich
Mark Carney @mark-carney.bsky.social · 04/05/2026
Prime Minister Pedro Sánchez and I are deepening our cooperation in energy, AI, and digital sovereignty — and we have a goal to double two-way trade between Canada and Spain. Thank you for the jersey, and see you at the World Cup! 🇨🇦 🇪🇸
40792160
Reposted by Egor Andreevich
Zac Sweers @zacsweers.dev · 27/04/2026
Metro reaches 1.0! It's the proudest work of my career and I strongly feel this is how dependency injection in Kotlin should be. Thank you to everyone that's contributed and helped this project get to where it's at. Metro wouldn't be where it is without you. www.zacsweers.dev/metro-is-sta...
zacsweers.dev
🚇 Metro is Stable
Metro 1.0.0 is out now and stable. This means that its runtime APIs (runtime, MetroX artifacts, Gradle plugin, etc.) are now API-stable unless annotated with an experimental annotation. This is an ex...
310630
Reposted by Egor Andreevich
Zac Sweers @zacsweers.dev · 23/04/2026
Metro 1.0.0-RC3 is out now and promotes function providers to the default! github.com/ZacSweers/metro/re...
github.com
Release 1.0.0-RC3 · ZacSweers/metro
This is the third release candidate for Metro 1.0! This means that its runtime APIs (runtime, metrox artifacts, Gradle plugin, etc) will be API stable unless annotated with an experimental annotati...
1102
Reposted by Egor Andreevich
Gordon Fontenot @gfontenot.bsky.social · 21/04/2026
A couple of months ago I was laid off by Block. I’ve mostly been doing dad stuff since then but I’m very gently looking to start having conversations and figure out what’s next for me. I’d love to chat with anyone that thinks I might be a good fit! gordonfontenot.com/hire-me
gordonfontenot.com
gordon fontenot
077
Egor Andreevich @egorand.dev · 18/04/2026
Barcelona is gorgeous this time of the year.
070
Reposted by Egor Andreevich
Zac Sweers @zacsweers.dev · 15/04/2026
I know there's a lot of people that worked on this behind the scenes but on top of Ralf and Tom, I also wanna give a huge shout out to Joel Wilcox and Jacob Applin for a ton of contributions, pairing sessions over tuple, and starting work with me on Metro as far back as January 2025. Hire them!
1356
Reposted by Egor Andreevich
Ralf @ralf-wondratschek.com · 14/04/2026
We're wrapping up our migration to Metro internally for Square Android. I summarized some of our challenges and steps we took in a blog post. If you use Dagger 2 for a Kotlin project, then you should migrate to Metro sooner rather than later. engineering.block.xyz/blog/metro-m...
engineering.block.xyz
Metro Migration at Square Android
How Square Android migrated its monorepo from Dagger 2 and Anvil to Metro over nine months and saved thousands of hours of build time.
0318
Reposted by Egor Andreevich
Zac Sweers @zacsweers.dev · 13/04/2026
Metro 1.0.0-RC1 is out now! Last call for feedback on the public, non-experimental runtime/metrox/gradle APIs! github.com/ZacSweers/metro/re...
github.com
Release 1.0.0-RC1 · ZacSweers/metro
This is the first release candidate for Metro 1.0! This means that its runtime APIs (runtime, metrox artifacts, Gradle plugin, etc) will be API stable unless annotated with an experimental annotati...
2429
Reposted by Egor Andreevich
Zac Sweers @zacsweers.dev · 05/04/2026
Metro 0.13.0 adds top-level contribution providers, Circuit code gen, and a new @DefaultBinding annotation. This also removes most deprecated APIs as Metro prepares to go stable (!!). If you have runtime API feedback, now is the time! github.com/ZacSweers/me...
github.com
Release 0.13.0 · ZacSweers/metro
New Circuit codegen Metro now includes experimental built-in support for Circuit, a Compose-first architecture for building kotlin apps. See the docs for more details. In the long term, this will e...
1277
Egor Andreevich @egorand.dev · 03/04/2026
Timmy's at the train station in Alicante, Spain
061
Reposted by Egor Andreevich
Saket Narayan @saket.me · 02/04/2026
I built a tiny IntelliJ IDEA plugin for something that had been bothering me for years github.com/saket/intell...
5289
Egor Andreevich @egorand.dev · 27/03/2026
KotlinPoet 2.3.0 supports typealias declarations inside types, has new convenience API for adding annotations and ships with a healthy dose of bug fixes. Time for a version bump! 🤜🤛 github.com/square/kotli...
github.com
Release 2.3.0 · square/kotlinpoet
Thanks to @haruue, @hfhbd, @yz4230, @mina-jaff, @BoD, @RaoPrashanth for contributing to this release. New: Kotlin 2.3.20. New: KSP 2.3.6. New: Support for defining type aliases inside other types....
0133
Reposted by Egor Andreevich
Jesse Wilson @swank.ca · 07/03/2026
✊🏻
publicobject.com
‘Humans use Energy and Water too’
An engineer I admire was lamenting about AI. He said that his new programming agent is excellent at fixing bugs! And all that it costs is a bunch of energy and many litres of water. He said that he co...
0228
Reposted by Egor Andreevich
P-Y @p-y.wtf · 02/03/2026
What happens to Square / Block Android OSS projects post layoffs? Let's start with some context OSS at Square is mostly a happy accident. Jack hired Bob, who's job was attracking world class engineers, and he did that through talks & OSS.
28123
Reposted by Egor Andreevich
Bluesky @bsky.app · 23/02/2026
v1.117 is live! We rolled out support for Bandcamp embeds. Now you can play songs right inside posts! We're big fans of Bandcamp and everything they do to support artists. Upgrade to the newest app version and give it a try 👇 caribouband.bandcamp.com/album/butter...
caribouband.bandcamp.com
Butterfly, by Daphni
16 track album
24962031144
Reposted by Egor Andreevich
Jesse Wilson @swank.ca · 21/02/2026
Dear Competition Bureau Canada...
publicobject.com
Keep Android Open
Google is building a digital lock into Android. It's a very bad idea and I hate it. The excellent organizers at keepandroidopen.org encouraged me to complain to the Competition Bureau of Canada. What ...
1199
Reposted by Egor Andreevich
Aurimas Liutikas @liutikas.net · 13/02/2026
It is the year 2026, people are still confused about compileSdk and targetSdk. (e.g. you can have targetSdk that is higher than compileSdk) www.liutikas.net/2026/02/13/R... Maybe this will explain it a bit more. #android
liutikas.net
Relationship Status of minSdk, compileSdk, targetSdk
It is year 2026 and yet Android developers continue to be mystified about minSdk, compileSdk, and targetSdk. There are some myths and false claims floating i...
0157
Egor Andreevich @egorand.dev · 06/02/2026
Today is Bandcamp Friday - Bandcamp is waiving their fees and passing the funds directly to the artists - so I went shopping. Got the entire Spiritbox discography and a few As I Lay Dying and Parkway Drive albums. One step closer to cancelling my Spotify subscription!
010
Reposted by Egor Andreevich
Jesse Wilson @swank.ca · 22/01/2026
written ’cause we don't all get this right
publicobject.com
Don’t Block Suspend Functions
Here’s a program that launches 3 jobs. The first runs forever and the other two exchange a value. @Test fun test() = runTest { val channel = Channel&lt;String&gt;() val deferredA = async { whi...
1164
Reposted by Egor Andreevich
The Europeans @europeanspod.bsky.social · 22/01/2026
🚨 NEW EPISODE 🚨 Everyone’s watching Davos - so we’re talking about some of the other European news. This week: potatoes in Berlin 🥔, a leaked “Made in Europe” proposal, and an interview with a sitting UK cabinet minister on the UK’s “reset” with the EU. www.europeanspodcast.com/all-episodes...
europeanspodcast.com
The UK and the EU: best buds again? — The Europeans
You’d be forgiven for forgetting that Europe is bigger than Davos this week, but we’ve got three great stories to remind you. First up: it’s been a good week for Berliners making Kartoffelsalat, Karto...
082
Reposted by Egor Andreevich
Mark Carney @mark-carney.bsky.social · 21/01/2026
As great powers abandon rules and values for their own interests, middle powers like Canada have a choice: compete with each other for favour or act together with impact.
25952881293
Reposted by Egor Andreevich
Michael Druker 🇨🇦 @mdruker.app · 07/01/2026
Giving it a shot
My email to a letters@ address:

Why are Canadian officials still on X?

Dear Editor,

What will it take for our governments and elected officials to leave the social media platform X (formerly Twitter)? Almost all of them stayed as its new owner Elon Musk reinstated the accounts of white nationalists. They’ve kept posting there as its algorithms were recalibrated to promote conflict and downrank posts with links. They stopped getting much engagement, but remained even as the site's owner promoted American threats to Canadian sovereignty. Now, X is making it easy for people to use its AI bot to create and share non-consensual sexualized deep-fakes, including of children. What will it take for them to leave? It is embarrassing and enraging that our elected officials and governments are continuing to give that vile platform a veneer of legitimacy with their presence.

Michael Druker
1267
Reposted by Egor Andreevich
Chris Banes @chrisbanes.me · 29/12/2025
If your engineering team is 'senior-only' + AI-assisted… where do tomorrow's seniors come from? New blog post on the 'disappearing middle': chrisbanes.me/posts/disapp...
chrisbanes.me
The Disappearing Middle: How AI Coding Tools Are Breaking Software Apprenticeship
How AI coding agents are automating away the developer apprenticeship ladder. Discover three personas for using agentic programming effectively, when it accelerates work, and critical guardrails to pr...
64418
Egor Andreevich @egorand.dev · 31/12/2025
Sharing the Resonant Computing Manifesto I just signed: resonantcomputing.org, I agree with the vision it outlines. Check it out, and if it resonates with you - join me in signing it.
resonantcomputing.org
The Resonant Computing Manifesto
Technology should bring out the best in humanity, not the worst—a manifesto for resonant computing built on five principles that reject hyper-scale extraction for human flourishing.
010
Reposted by Egor Andreevich
Mark Carney @mark-carney.bsky.social · 28/12/2025
Canada stands with Ukraine. Our new loan guarantees and financing will support a just and lasting peace — and help the Ukrainian people rebuild and recover.
Screenshot of an article from Global News. The headline reads: Carney announces $2.5B for Ukraine in meeting with Zelenskyy.
601522310
Egor Andreevich @egorand.dev · 19/12/2025
It makes no sense to me that the shutdown button for an iPhone is located under General Settings.
100