top of page
Zac Sweers

Zac Sweers

Mobile @ Slack

Zac is a mobile engineer at Slack with primary focus areas in Android, code gen, Kotlin, OSS, and avoiding sniffly APIs. He’s the creator of a few open source projects like Circuit, CatchUp, AutoDispose, and active contributor to several more.

Breaking the Build: Lessons from the Frontlines of Android Tooling

As Android development teams grow in complexity, so do their build systems — and the decisions around how to scale them. This panel brings together engineers who’ve migrated (or decided not) to new systems like Bazel, navigated polyglot codebases, and built resilient tooling strategies under real-world constraints. Topics We’ll Explore: * The trade-offs of migrating to Bazel, Buck, or other modern build systems — and why some teams chose not to. * Hidden costs, cultural impacts, and technical debt from tooling transitions. * Strategies for managing cross-platform builds in Kotlin Multiplatform and polyglot environments. * Balancing build performance with developer experience in large-scale codebases. * If we had to do it all over again: lessons learned from build system overhauls.

Panel: The Future of Dependency Injection in Modern Android

Dependency Injection remains a cornerstone of scalable Android architecture—but as the platform evolves, so do the tools and patterns we rely on. This panel brings together DI experts to discuss the current and future state of DI in Android, from Google’s Hilt and Kotlin-first Koin to community-driven frameworks like Dagger, Anvil, and Metro. We’ll explore real-world lessons and technical insights across topics such as: What are the key strengths and weaknesses of current DI frameworks, and how should teams choose the right tool for their architecture and scale? What are the tradeoffs of using DI at scale, and where do most frameworks begin to show their limitations? How can teams effectively manage complexity, performance, and maintainability as their DI setup grows? Can Dependency Injection be used for more than just wiring services and repositories? What are some unconventional or creative use cases, and how well do frameworks support them? What are effective strategies for migrating between DI frameworks, especially in large codebases? With Kotlin Multiplatform adoption increasing, how can DI be applied across shared and platform-specific code? What are the challenges of building and maintaining multiplatform DI solutions, and what opportunities does this unlock for cross-platform architecture? What goes into designing and building a DI framework from the ground up? What technical decisions, architectural patterns, and developer experience considerations must be addressed—and where do current solutions still fall short?
bottom of page