Zac Sweers
@zacsweers.dev
📤 1424
📥 408
📝 203
All this happened, more or less. Currently funemployed 🌴 Blog: zacsweers.dev
pinned post!
Wrote a lot of thoughts on junior developers, AI, and what I strongly feel is going to become the defining challenge of our industry's next generation.
www.zacsweers.dev/forklifts-re...
loading . . .
Forklifts Require Training
Sleepwalking into labor collapse
https://www.zacsweers.dev/forklifts-require-training/
3 months ago
7
65
36
MoshiX 0.33.0 drops the need for proguard rule generation, meaning you can use it and its IR code gen entirely without needing KSP 🎉
github.com/ZacSweers/Mo...
loading . . .
Release 0.33.0 · ZacSweers/MoshiX
Remove moshi-proguard-rule-gen. moshi-ir now includes a sourceless runtime artifact with embedded proguard rules that cover the same functionality. This also means that KSP is no longer required to...
https://github.com/ZacSweers/MoshiX/releases/tag/0.33.0
2 days ago
0
9
2
reposted by
Zac Sweers
Bridget Phillips
8 days ago
This is fantastic and
@zacsweers.dev
deserves all the praise but it also is gonna give you a false idea of what Z is like as a maintainer and author, what the project is like, and how you might achieve something like this yourself
add a skeleton here at some point
1
22
9
Metro 0.7.5 has the Guice
github.com/ZacSweers/me...
loading . . .
Release 0.7.5 · ZacSweers/metro
New: Add Guice interop. This is largely focused on Guice's Provider type, annotations, and existing interop with jakarta.inject annotations. metro { includeGuice() } Enhancement: Improve IR cach...
https://github.com/ZacSweers/metro/releases/tag/0.7.5
9 days ago
1
17
2
Excited to share Metro's original design doc. Pulls back the curtain on a lot of the historical community feedback and discussions that went into it in its early days!
www.zacsweers.dev/metros-desig...
loading . . .
Metro's Design Doc
Back in December 2024, I was around a month into working on Metro (at the time still called Lattice) and realized it crossed the threshold from "is this anything" to "oh shit this has wheels". I'd bee...
https://www.zacsweers.dev/metros-design-doc/
10 days ago
0
22
3
reposted by
Zac Sweers
Kyle Griffin
11 days ago
Zohran Mamdani in his victory speech: "Donald Trump, since I know you're watching, I have four words for you: Turn the volume up." The cheers in the room are deafening.
18
1573
246
Metro 0.7.3 adds member injection interop, Kotlin 2.3.0-Beta2 support, and a bunch of other smaller goodies and fixes.
github.com/ZacSweers/me...
loading . . .
Release 0.7.3 · ZacSweers/metro
New: Support interop with Dagger/Anvil-generated member injector classes. Enhancement: Skip reading members when loading externally compiled member injector classes. Parameters are now computed fro...
https://github.com/ZacSweers/metro/releases/tag/0.7.3
14 days ago
0
4
0
Traveling to London tonight, but Metro 0.7.2 should mostly work with Kotlin 2.3.0-Beta2. There’s on API change that affects logging but is fixed in snapshots, will cut a new release prolly tomorrow after I fix a separate dagger multibinding interop issue.
19 days ago
0
4
0
reposted by
Zac Sweers
nilay patel
21 days ago
School shootings and measles
add a skeleton here at some point
3
193
19
Metro 0.7.1 improves diagnostic messages for missing dependencies and multibinding code gen optimizations.
github.com/ZacSweers/me...
loading . . .
Release 0.7.1 · ZacSweers/metro
New: Add missing dependency hints for missing bindings errors [Metro/MissingBinding] Cannot find an @Inject constructor or @Provides-annotated function/property for: FooImpl FooImpl is injecte...
https://github.com/ZacSweers/metro/releases/tag/0.7.1
26 days ago
1
6
0
Metro 0.7.0 is out with dynamic graphs, implicit injects, and wasmWasi targets! Dynamic graphs have been a long time in the making and should unlock some pretty powerful testing patterns.
github.com/ZacSweers/me...
loading . . .
Release 0.7.0 · ZacSweers/metro
Dynamic Graphs Dynamic graphs are a powerful new feature of the Metro compiler that allows for dynamically replacing bindings in a given graph. To use them, you can pass in a vararg set of binding ...
https://github.com/ZacSweers/metro/releases/tag/0.7.0
about 1 month ago
1
22
0
Metro 0.6.10 introduces some new optional behaviors, interop with @BindsOptionalOf, and the usual host of other fixes and improvements!
github.com/ZacSweers/me...
loading . . .
Release 0.6.10 · ZacSweers/metro
Optional Dependency Behaviors Graph accessors can now expose optional dependencies, just use @OptionalDependency on the accessor. Note that the accessor must declare a default body that Metro will ...
https://github.com/ZacSweers/metro/releases/tag/0.6.10
about 1 month ago
0
13
1
reposted by
Zac Sweers
Kara Swisher
about 1 month ago
What a crock of shit from Marc Benioff — who appears willfully ignorant of news and facts and so thirsty for approval and attention from the Trump tech bros (who in the past mocked him relentlessly) that he is soiling himself in public
www.nytimes.com/2025/10/10/u...
loading . . .
Marc Benioff Says Trump Should Send Guard Troops to San Francisco
https://www.nytimes.com/2025/10/10/us/marc-benioff-san-francisco-guard.html?smid=nytcore-ios-share&referringSource=articleShare
123
1471
268
I left Slack for a few reasons and Marc was two of them.
www.nytimes.com/2025/10/10/u...
loading . . .
Marc Benioff Says Trump Should Send Guard Troops to San Francisco
https://www.nytimes.com/2025/10/10/us/marc-benioff-san-francisco-guard.html
about 1 month ago
1
24
8
reposted by
Zac Sweers
Mihai Neacsu (Trakx)
about 1 month ago
There it is!
loading . . .
In-depth on Metro — with Zac Sweers
YouTube video by Code with the Italians
https://youtu.be/c9r8H1DobaI?si=afACSeJBAjwPnvfN
0
5
2
Was on
@codewiththeitalians.it
today with
@sebastiano.dev
and Ivan chatting about Metro and some of the more nitty gritty of how the newer IDE features work! Some fun live coding
www.twitch.tv/videos/25864...
loading . . .
In-depth on Metro — with Zac Sweers - codewiththeitalians on Twitch
codewiththeitalians went live on Twitch. Catch up on their Software and Game Development VOD now.
https://www.twitch.tv/videos/2586472412
about 1 month ago
1
4
0
Metro 0.6.9 is out now with improved cross-compiler version support, support for Kotlin 2.3.0-Beta1, improved IDE support, configurable max error reporting, and a whole bunch more!
github.com/ZacSweers/me...
loading . . .
Release 0.6.9 · ZacSweers/metro
This release introduces new experimental support for multiple compiler and IDE versions. The primary goal of this is to better support running Metro's FIR extensions across different IntelliJ Kotli...
https://github.com/ZacSweers/metro/releases/tag/0.6.9
about 1 month ago
1
17
2
reposted by
Zac Sweers
Timothy Snyder
about 2 months ago
From 1939-1945 German officers also listened to speeches from civilians about how the laws of war didn’t apply to them. And then they participated in the Holocaust, starved millions of prisoners of war, destroyed villages and cities, and were defeated.
add a skeleton here at some point
247
5358
2119
Metro 0.6.7 brings a dedicated `@AssistedInject` annotation, Dagger module interop, and a bunch of other goodies!
github.com/ZacSweers/me...
loading . . .
Release 0.6.7 · ZacSweers/metro
New @AssistedInject annotation Assisted-injected classes must now use @AssistedInject instead of @Inject. This is for multiple reasons: It's more explicit at the source declaration site that this ...
https://github.com/ZacSweers/metro/releases/tag/0.6.7
about 2 months ago
0
7
1
Designers when an android engineer ask to just use the system back arrow: “our custom back arrow is an expression of our brand, we cannot yield to looking like a Google app” Designers when Liquid Glass looks like shit everywhere in their app: “LEROY JENKINSSSSSSS”
about 2 months ago
4
120
17
reposted by
Zac Sweers
Mehdi Hasan
2 months ago
Suddenly "hate speech" is bad. Suddenly "dehumanizing" people is bad. Suddenly "cancel culture" is good. Suddenly words have consequences. The modern American right in 2025, folks.
730
24455
5074
reposted by
Zac Sweers
Molly White
2 months ago
> the shooter is trans > ok the bullets were trans > ok the roommate is trans
160
7907
1250
Every tech CEO handling moderation this week 🤦♂️
add a skeleton here at some point
2 months ago
1
6
1
Video is already up (!!)
youtu.be/jVfmtVKa604?...
add a skeleton here at some point
2 months ago
0
29
6
Here are the slides for the "Navigating Dependency Injection with Metro" talk I just gave at DroidKaigi. Great conference and super well-organized.
speakerdeck.com/zacsweers/na...
loading . . .
Navigating Dependency Injection with Metro
Metro is yet another compile-time dependency injection framework. How is this one different though? In this talk we’ll explore how it balances blazing-f…
https://speakerdeck.com/zacsweers/navigating-dependency-injection-with-metro
2 months ago
1
27
4
reposted by
Zac Sweers
skydoves
2 months ago
Navigating Dependency Injection with Metro by
@zacsweers.dev
at
#DroidKaigi
0
8
1
Couple Metro patches today! 0.6.5 - new @Origin annotation API + a bugfix 0.6.6 - same as 0.6.5 but targeting Kotlin 2.2.20 and another fix for conflicting overrides that relies on a fix in the compiler that came in 2.2.20
github.com/ZacSweers/me...
github.com/ZacSweers/me...
loading . . .
Release 0.6.6 · ZacSweers/metro
Enhancement: Optimize annotation lookups in some places in IR. Fix: If a graph declares an overridable declaration that matches one of a contributed supertype, transform it to add the requisite ove...
https://github.com/ZacSweers/metro/releases/tag/0.6.6
2 months ago
0
7
0
reposted by
Zac Sweers
nilay patel
2 months ago
What a surprise
www.theverge.com/news/773928/...
loading . . .
Google admits the open web is in ‘rapid decline’
One Google exec recently said the web is “thriving.”
https://www.theverge.com/news/773928/google-open-web-rapid-decline
9
205
49
Today I ran a race down 5th ave, hung out in Central Park, got coffee in Hell’s Kitchen, played soccer in east river park, got bbq in Williamsburg, and now flying to Tokyo from JFK. Life in NYC’s feeling very rich today
2 months ago
0
17
0
reposted by
Zac Sweers
Ralf
2 months ago
Our KMP framework App Platform now supports Metro out of the box:
github.com/amzn/app-pla...
@zacsweers.dev
is pushing the boundaries with Metro and there are still some Kotlin compiler bugs that need to be resolved, but on the JVM / Android it works.
loading . . .
Release 0.0.6 · amzn/app-platform
Added Added support for Metro as dependency injection framework. User can choose between kotlin-inject-anvil and Metro. For more details see the documentation for how to setup and use both depende...
https://github.com/amzn/app-platform/releases/tag/0.0.6
1
7
1
Crenshaw's district in Houston is literally gerrymandered in such a way to avoid including Greenspoint, a neighborhood locally nicknamed Gunpoint.
add a skeleton here at some point
2 months ago
1
2
1
Killing their own children to own the libs
add a skeleton here at some point
2 months ago
0
3
0
Slack people were affected by this too, and not just customer service roles. The AI claim is obviously bogus. Tech media should do better than just accept claims like this at face value, make CEOs own (the consequences of) their decisions.
www.nbcbayarea.com/news/local/s...
loading . . .
Salesforce CEO confirms 4,000 layoffs 'because I need less heads' with AI
Salesforce has cut 4,000 of its customer support roles, CEO Marc Benioff said in a recent interview. Here's what we know.
https://www.nbcbayarea.com/news/local/salesforce-layoffs-artificial-intelligence/3941975/
2 months ago
0
12
1
Google product development in 2025
add a skeleton here at some point
3 months ago
3
30
4
Wrote a lot of thoughts on junior developers, AI, and what I strongly feel is going to become the defining challenge of our industry's next generation.
www.zacsweers.dev/forklifts-re...
loading . . .
Forklifts Require Training
Sleepwalking into labor collapse
https://www.zacsweers.dev/forklifts-require-training/
3 months ago
7
65
36
Still a miler at 33
3 months ago
1
18
0
Metro 0.6.0 is out now with revamped graph extensions, lazier validation, a bunch of improvements to Dagger interop, and a ton of bugfixes! The biggest change here is graph extensions are no longer detached and wired much more like dagger subcomponents now.
github.com/ZacSweers/me...
loading . . .
https://github.com/ZacSweers/me..
3 months ago
0
14
3
reposted by
Zac Sweers
dell cameron
3 months ago
Can't say they didn't warn us
add a skeleton here at some point
13
712
200
Always ask why the position was available
3 months ago
6
44
5
reposted by
Zac Sweers
Kylie Cheung
3 months ago
Genuinely incredible that she's saying this with 2 accused rapists on either side of her
add a skeleton here at some point
0
15498
4127
Last day at Slack! Nothing planned next yet, gonna enjoy some time off 🌴
3 months ago
12
87
0
A 16yr old kid from east Texas ran 1:42.27 for 800m today. I can’t even begin to describe what an insane stat that is
3 months ago
0
3
0
Metro 0.5.4 finishes aligning @ContributesGraphExtension APIs with @DependencyGraph and has improved support for repeatable annotations. Plus the usual long list of bugfixes!
github.com/ZacSweers/me...
loading . . .
Release 0.5.4 · ZacSweers/metro
Enhancement: Support excludes, bindingContainers, and additionalScopes in @ContributesGraphExtension. Enhancement: Allow binding containers and regular contributed classes to replace each other in ...
https://github.com/ZacSweers/metro/releases/tag/0.5.4
4 months ago
2
11
0
This talk was great
youtu.be/bkd6EAPIVe0
loading . . .
Compose Prototyping in Kotlin Notebooks | Christian Melchior
YouTube video by Kotlin by JetBrains
https://youtu.be/bkd6EAPIVe0
4 months ago
0
13
2
Metro 0.5.3 has a million bugfixes and some important behavior changes 🚇
github.com/ZacSweers/me...
loading . . .
Release 0.5.3 · ZacSweers/metro
Behavior change: The enableScopedInjectClassHints option is no longer enabled by default. This option is tricky to get right and will be iterated on further in #764. Enhancement: Generate synthetic...
https://github.com/ZacSweers/metro/releases/tag/0.5.3
4 months ago
1
11
1
Droidcon NYC videos are up! I was on a panel about dependency injection and also hosted a panel on build systems, enjoy!
www.droidcon.com/2025/07/23/t...
www.droidcon.com/2025/07/23/b...
loading . . .
The Future of Dependency Injection in Modern Android - droidcon
Dependency Injection remains a cornerstone of scalable Android architecture—but as the platform evolves, so do the tools and patterns we rely on.
https://www.droidcon.com/2025/07/23/the-future-of-dependency-injection-in-modern-android/
4 months ago
3
25
6
PROTIP: put it in ~/.gradle/gradle.properties and never deal with it again
add a skeleton here at some point
4 months ago
0
18
2
reposted by
Zac Sweers
Márton Braun
4 months ago
This is a fantastic post.
distantprovince.by/p...
loading . . .
It's rude to show AI output to people | Alex Martsinovich
Feeding slop is an act of war
https://distantprovince.by/posts/its-rude-to-show-ai-output-to-people/
3
17
5
reposted by
Zac Sweers
Chris Banes
4 months ago
I migrated our entire codebase over to it last week, and we’re now fully on the Metro train. 💺 It has pretty much everything y’all will need, right now.
add a skeleton here at some point
0
25
2
Metro wouldn’t be where it is without the road that Anvil paved before it. I’ve really enjoyed working with Joel and Jacob on several Metro features already, with
@ralf-wondratschek.com
in its early design phase, and really looking forward continuing to work with all of them. Future’s bright 🚇
add a skeleton here at some point
4 months ago
1
40
5
reposted by
Zac Sweers
Ray Ryan
4 months ago
Anvil is approaching the icebox, long live Metro.
github.com/square/anvil...
loading . . .
Anvil Moves to Maintenance Mode · Issue #1149 · square/anvil
Hey all! We wanted to share an update on the state and future of Anvil. We previously published a roadmap covering the major work we had planned, including K2 support and making Anvil a standalone ...
https://github.com/square/anvil/issues/1149
1
22
6
Load more
feeds!
log in