Reposted by Matt McKennaBryan Cantrill @bcantrill.bsky.social · 13/09/2026The contagion of fear bcantrill.dtrace.org/2026/09/13/t...bcantrill.dtrace.orgThe contagion of fear | The Observation Deck 1624183
Matt McKenna @mmckenna.me · 10/09/2026Thanks to everyone who tried it, reported issues, contributed fixes, or shared! 💚 github.com/mttmcknn/de...github.comRelease DejaVu 0.5.0 — Compose 1.12 · mttmcknn/dejavuDejaVu 0.5.0 targets stable Compose 1.12 and adds regressions for its new runtime and testing behavior. Android Compose 1.11 remains supported, and DejaVu keeps its own version numbers. Compatibili... 011
Matt McKenna @mmckenna.me · 10/09/2026• Expanded test coverage: keyed SideEffect, changing remember keys, nested movable content, and newer Compose test APIs. • Platform fixes and validation: Android, JVM desktop, iOS, and Wasm! 110
Matt McKenna @mmckenna.me · 10/09/2026• Dejavu 0.4.0: support for Compose Multiplatform 1.11. • Dejavu 0.5.0: support for Compose Multiplatform 1.12, while retaining Android Compose 1.11 compatibility. 110
Matt McKenna @mmckenna.me · 10/09/2026Life’s been busy lately, and I finally found some time today to get caught up on dejavu! Dejavu turns Compose recomposition counts into test assertions, so you can catch regressions and protect the improvements you’ve already made. Here’s what’s new: 120
Matt McKenna @mmckenna.me · 03/08/2026After 4.5 rewarding years at Square, my time there came to an unexpected end. It’s a transition that feels all too familiar right now, but it cleared the path for an amazing new opportunity. I'm excited to start my next chapter at Ramp! 1140
Matt McKenna @mmckenna.me · 17/07/2026I hope droidcon was great! Wish I could have made it this year. 120
Reposted by Matt McKennaSebastian Sellmair @sellmair.dev · 17/07/2026Something 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
Reposted by Matt McKennaTJ @tunji.dev · 09/07/2026Experimenting with something new in the latest Heron release. Heron now let's you download a local inference model to translate text and it works completely offline on your device. Nothing gets sent to any server. 091
Matt McKenna @mmckenna.me · 03/07/2026Side note: Jules gets very annoying very fast by reporting duplicate PRs all the time... 000
Matt McKenna @mmckenna.me · 03/07/2026Finally working on cleaning up PRs for dejavu, including working on Compose 1.11 support. github.com/himattm/dejavugithub.comGitHub - himattm/dejavu: A lightweight framework for tracking and asserting against Jetpack Compose recompositions.A lightweight framework for tracking and asserting against Jetpack Compose recompositions. - himattm/dejavu 120
Reposted by Matt McKennaZac Sweers @zacsweers.dev · 16/06/2026Super sympathetic to Sonatype's situation, hosting isn't free. But announcing this with paltry limits and no public pricing options (a sales contact ain't it) is bad for everyone and going to be a major disruption to the JVM and Kotlin ecosystems. central.sonatype.org/publish/mave...central.sonatype.orgMaven Central Publishing Limits 6297
Reposted by Matt McKennaBridget Phillips @jingibus.bsky.social · 03/06/2026Maybe the most harmful thing about LLMs for a learning community is that you won't learn about anything unrelated to what you asked for. 073
Reposted by Matt McKennaMark Murphy @commonsware.com · 26/05/2026Hi! I shipped jetc.dev Newsletter Issue #315! Google I|O 2026! Compose Multiplatform 1.11.0! Android is Compose-first! And... an LLM-powered layout?!? jetc.dev/issues/315 #JetpackCompose #AndroidDev 1114
Reposted by Matt McKennaChris Banes @chrisbanes.me · 26/05/2026Hunting down Jetpack Compose recomposition issues manually is a huge time sink I’ve spent the past few weeks using @mmckenna.me’s Dejavu to simplify this: - Write Dejavu tests to establish a baseline - Tell the agent to hunt for issues and A/B fixes - Profit 3181
Matt McKenna @mmckenna.me · 26/05/2026Thanks for trying it out! Please let me know if you have any feedback 💚 000
Reposted by Matt McKennaMárton Braun @zsmb.co · 26/05/2026If you somehow missed the KotlinConf keynote last week, here are the top 10 KMP announcements with links to learn more about each 🧵👇 1105
Reposted by Matt McKennaSaket Narayan @saket.me · 25/05/2026Introducing Touch Robot, something that has materially changed how I write screenshot tests. We've been using it at Block for ~2 years to catch animation and gesture bugs that static screenshots miss. saket.me/touch-robot/saket.meIntroducing Touch Robot, for writing interactive screenshot tests in Compose UIThe best parts of a UI are usually in motion. The bugs are too. 1205
Matt McKenna @mmckenna.me · 20/05/2026And we felt the pain of the surrounding code while writing. AI doesn't feel bad code like we do. Eventually that pain would grow to the point where we have to create new solutions or pick better abstractions. 030
Reposted by Matt McKennaGergely Orosz @gergely.pragmaticengineer.com · 19/05/2026Situation 1: dev A thinks approach X is correct, dev B thinks Y is the right way. They argue and try to convince each other. Situation 2: dev A thinks approach X is correct, tells the LLM to implement it. There is SO MUCH learning in Situation 1, lost when using LLMs.... 1616729
Reposted by Matt McKennaAdam McNeilly @adammc.bsky.social · 17/05/2026Screaming into the void some thoughts on AI coding. androidessence.com/leave-me-beh...androidessence.comLeave Me Behind | Android EssenceSimplified Android Development 99536
Matt McKenna @mmckenna.me · 03/05/2026Yes @schimke.ee !! Thank you for making this 💚 github.com/yschimke/com...github.comGitHub - yschimke/compose-ai-tools: Helping the Agents Compose the ThingsHelping the Agents Compose the Things. Contribute to yschimke/compose-ai-tools development by creating an account on GitHub. 251
Matt McKenna @mmckenna.me · 30/04/2026Dejavu is KMP, so the skills work across Android, JVM Desktop, iOS, and WasmJs. They cross-reference each other so the agent moves between them on its own. Try it on a composable that's been bugging you. Repo: github.com/himattm/dejavu Docs: dejavu.mmckenna.megithub.comGitHub - himattm/dejavu: A lightweight framework for tracking and asserting against Jetpack Compose recompositions.A lightweight framework for tracking and asserting against Jetpack Compose recompositions. - himattm/dejavu 040
Matt McKenna @mmckenna.me · 30/04/2026Two lines in any Claude Code session: /plugin marketplace add himattm/dejavu /plugin install dejavu@dejavu 120
Matt McKenna @mmckenna.me · 30/04/2026The floor isn't always zero. Some composables legitimately recompose N times when their inputs change, and that count is the right answer. The skill writes the assertion as exactly = N and locks it in. If the count already matches the floor, the cookbook step is skipped. 100
Matt McKenna @mmckenna.me · 30/04/2026The standout is dejavu-perf-loop. You pick a composable, write a test asserting atMost=10, and run it. You read the failure, choose a cookbook fix, apply it, and rerun. Tighten the bound and keep going until the count matches the floor. 100
Matt McKenna @mmckenna.me · 30/04/2026Today I shipped four skills, one for each part of the loop: • dejavu-onboarding: adds Dejavu to a project • dejavu-test-writer: authors recomposition tests • dejavu-error-triage: diagnoses failing assertions • dejavu-perf-loop: drives recompositions to their floor 100
Matt McKenna @mmckenna.me · 30/04/2026I built Dejavu because agents don't feel extra recompositions. They write Compose code that compiles and passes its tests while the UI quietly does ten times the work. Dejavu turns that hidden work into a failing test, giving the agent a count to optimize against. 150
Reposted by Matt McKennaChris Banes @chrisbanes.me · 29/04/2026💠 Haze 2.0-alpha01 is out! This is a big release, splitting Haze up into layers, with the goal of enabling pluggable visual effects. Let me know what you think! chrisbanes.me/posts/haze-2...chrisbanes.meHaze 2.0: A Pluggable Visual Effects EngineHaze 2.0-alpha01 turns blur into a pluggable effect, splitting it into a separate module and opening the door to custom visual effects built on top of a shared rendering infrastructure. 2297
Matt McKenna @mmckenna.me · 30/04/2026Love this direction! Is the main goal to enable others to make and distribute their own VisualEffect dependencies or to upstream them through contributions? 110
Matt McKenna @mmckenna.me · 29/04/2026Just a few commands and you're set. The marketplace manifest auto-refreshes at Claude Code startup so you'll get future skills and updates. I'd love to hear how it goes if you try it. github.com/himattm/skillsgithub.comGitHub - himattm/skills: My collection of Skills for AI agents.My collection of Skills for AI agents. Contribute to himattm/skills development by creating an account on GitHub. 010
Matt McKenna @mmckenna.me · 29/04/2026Finally got around to bundling the skills I'm using every day into a repo and Claude Code marketplace so anyone can install them. I'm still rebuilding from what I was using daily at work, but we'll get there. 260
Matt McKenna @mmckenna.me · 29/04/2026It's only day two and I've had so much fun finding thinks for this app so far. play.google.com/store/apps/...play.google.comColor Snap - Apps on Google PlayDaily color-matching challenge. Snap photos, build streaks, train your eye. 010
Reposted by Matt McKennaZac Sweers @zacsweers.dev · 27/04/2026Metro 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 StableMetro 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 Matt McKennaAdam McNeilly @adammc.bsky.social · 25/04/2026Wrote up something small about how I started using interface inheritance to handle inserting into multiple tables at a time in Room, when you have a common type used by multiple Daos and don't want to duplicate code. #AndroidDev androidessence.com/multi-table-...androidessence.comManaging Multi Table Inserts With Room | Android EssenceSimplified Android Development 272
Matt McKenna @mmckenna.me · 23/04/2026I also recommend trying Amp as a cli harness. ampcode.com I don't know anything about mistral though and will have to look into it!ampcode.comAmpAmp is a frontier coding agent that lets you wield the full power of leading models. 010
Matt McKenna @mmckenna.me · 23/04/2026I think it matters a lot! Not only for your own use, as others have said. But LLMs learn sloooowly. Humans still have to be in the loop to guide best practices, especially for under explored topics! We only know those by learning them ourselves, so please write about stuff! 💚 010
Matt McKenna @mmckenna.me · 22/04/2026Hit Claude limits for the first time ever with Opus 4.7 It's somehow equivalent to my last 30 days of Opus 4.6 use. This makes the model not worth using imo. 030
Matt McKenna @mmckenna.me · 22/04/2026Here's the docs on that halogen.mmckenna.me/latest/custo... 110