I talk about productivity, engineering management, software engineering, life advice, and other random things that I find interesting. Subscribe to my newsletter to get my latest writing delivered straight to your inbox.
Long-form pieces on engineering, leadership, and life.
Practical techniques for controlling AI coding costs at scale through efficient models, dynamic routing, developer visibility, budgets, and reduced token overhead.
How we built an internal benchmark from real engineering tasks to compare coding-agent quality, cost, models, and harnesses on the Databricks codebase.
I recently joined my friend Kaushik on the Fragmented Podcast to discuss the future of Android Development.
Most decisions at work and in life are made under a temporary set of constraints. We accept the world as it is, optimizing within limits that may not even be real. What if we approached decisions like a toddlerβignoring the rules, focusing on whatβs possible, and bending reality to fit our goals?
The internet has democratized role models and success stories, enabling "pocket revolutions" where individuals can find inspiration from real people doing extraordinary things
π€ The padding Modifier and the Spacer composable are both valid ways of adding space to a component. Surely, this must be a mistake. Why else would Jetpack Compose expose two ways of doing the same thing?
π§Ά Have you wondered which lint rules ship by default with Compose? Do you even know where you can find this list? Learn this and more in this article!
β³ Learn about a simple trick that will save you many engineering hours when working with Jetpack Compose!
β»οΈ Learn how you can debug recompositions of your Composable functions in Jetpack Compose
π© Learn how Jetpack Compose is able to be smart during recompositions!
Learn how you can use Jetpack Compose to build Android apps. Jetpack Compose is a rewrite of the Android UI toolkit
A Library to Organize, Discover, and Visualize Your Jetpack Compose Elements
An Android & Jetpack Compose newsletter read by engineers at all the top companies. Learn more
π In today's Dispatch: Android agents arrive π οΈ Compose 1.11 stacks up π¨ KMP gets cleaner π§± Pulsar brings the buzz πͺ
π In today's Context: The ceiling of AI delegation isn't your prompting skill. It's your tests, linters, and CI pipeline.
π In today's Dispatch: π£ Compose BOM Drama π Android Bench π Maestro Flaky Tests π§° Kotlin LSP Breakout
π In today's Context: Understanding when to use IDE agents vs CLI tools vs background agents β and why you'll probably use all three today
π In today's Dispatch: π» Snapchat has a surprise open-source hit π Bulletproof @Preview stripping π Instagram's Compose playbook
Announcing Dispatch: Context, a new AI-focused series for Android engineers who refuse to be left behind
π In today's Dispatch: What I'm up to after Airbnb? π€ Sora Android in 28 days β‘ More useful Compose stack traces π§© Bengaluru Meetup π»
π In todayβs Dispatch: π§Ύ Stop GPL surprises with Licensee βοΈ β‘ Gradle config speed rule π€― Compose effects order puzzle π§ AI vs git bisect
π In todayβs Dispatch: Closing my Airbnb chapter β¨ Swift on Android π€― Timezones are complicated βοΈ Touch me not Composables π
π In todayβs Dispatch: π₯ We meet the team behind Firebender ππ» Easiest one-line win of the year π€ Composable scoped View Model's and π performant way to modify background color
π In todayβs Dispatch: πΌ 2D Scrolling π£ Prefetching Lists π Better Compose Debugging & ποΈ Architecting Persistent UI Elements
π In todayβs Dispatch: π° Selling Android apps π οΈ Metro DI takes the crown, π¨ AndroidView antiβpattern exposed & π Telegramβs hashβcoded file bans
π In todayβs Dispatch: πΈ Screenshot testing pro-tips β¨ Native shadows in Compose, π€ Kotlin powering AI SDKs, π± Android 16 adaptivity shift & β‘οΈ 6Γ faster transforms
π In today's Dispatch: ποΈ Google Play's 47 % app-purge drama, π οΈ Amazon's shiny new KMP 'App Platform', ποΈ ADB slow-mo frame-timing captures, π¨ the theme bug that steals your Column's color, π€£ 'Soft Earnings' and π @Preview-free code-coverage magic.
In today's issue, we talk about the πΈ strange hiring market and salaries, π£ latest BOM drop, π sorting UUIDs and obviously...AI π
In today's issue, we talk about π§ cheating during interviews, πΈ fully transparent salaries, πͺ Google's big agentic bet, π΅π»ββοΈ committing a Kotlin crime and 𫨠jittery text animations
In today's issue, we talk about π₯Ά chilly mobile hiring trends, the best Kotlin speaking LLMs π£οΈ, another project in the Google graveyard πͺ¦, shadcn/ui for Android β¨ and learn how to trust time β°
In today's issue, we talk about π¦βπ₯ Swift on Android, learn some mind-boggling facts about naming variables, discuss my recent chat with Kaushik Gopal, and explore how to provide the entire codebase to an LLM.
In today's issue, we talk to some Android experts about their hot-takes, predictions, wishes, and advice on how they expect the Android ecosystem to changeβand how developers should prepare for that future.
π€― some mind bending facts about SQLite, "Monotone Cubic Hermite Spline" and buttery smooth animations, a game to improve our Compose knowledge and why return types in Kotlin can be interesting π€¨
π₯ JetBrains' project to bring true hot reload to Compose, share a tip to improve screenshot test reliability using a new CompositionLocal, explore situations when onDispose doesn't get called, and bid farewell to Picasso π¨π»βπ¨
π° New & creative vesting schedules in tech, an amazing 10 year old engineer, a public service announcement and why onGloballyPositioned is feared
π¦ The Turkey that broke your code, advice from Saket Narayan, some personal wins, and strategy for safeguarding composables
π The decline of mobile dev, Storybook like tool from JetBrains, the badass developer of SQLite and meeting Annyce Davis
π€ Learn about Zach Klippenstein, the Android connection to Wordle, creating presentations using Compose, running Android Studio on Android and @ComposableTarget
πͺπ» Power Asserts, XML in Compose, Compose UI previews on web & Airbnb's new screen architecture
π "Server" Composabes, new graphicsLayer API, first-party visibility tracking, and debouncing state updates
π¨ Inside scoop from Google I/O, interesting updates from the event & a tip to using Gemini in Android Studio without compromising sensitive IP
π Code structure optimizations, Android memes, New Shared Element Transition APIs, Debugging Compose State & More!