Envoy is seeking an experienced freelance Android UI Engineer to join them on a full-time contract basis for 6 months. The role involves building scalable, high-quality native component libraries and crafting pixel-perfect user experiences with Jetpack Compose, while collaborating closely with design and engineering teams.
Responsibilities:
- Build a native UI component library that can be consumed by multiple internal apps
- Develop a reusable Android library module (AAR and Gradle configurations)
- Implement pixel-perfect UI components in Jetpack Compose
- Integrate design tokens as the source of truth for styling
- Consume token outputs (e.g., JSON / generated constants) and map them into platform-native theming
- Implement token-driven colors, typography, spacing, shapes, and semantic roles with fallback behavior
- Support theme variants (light/dark mode, brand variants)
- Design scalable, consumer-friendly component APIs with stable public interfaces and sensible defaults
- Ensure internal implementation details are abstracted from consumers
- Build accessibility into components by default, including semantics/labels, focus order, minimum hit targets, dynamic type/font scaling, and contrast considerations
- Add automated quality gates to prevent regressions, including unit/UI testing for component behavior and token application
- Maintain strong engineering hygiene for a shared library environment, including clean boundaries, minimal dependencies, and performance optimization (Compose recomposition)
- Create clear documentation for consumers, including usage examples, API docs, and migration notes
Requirements:
- Strong Kotlin fundamentals: extension APIs, sealed types, data modeling, immutability, and API design
- Deep expertise in Jetpack Compose, including: Pixel-perfect reusable component development, State hoisting, Recomposition and stability, Previews, Custom layouts, Modifiers, Slot APIs, Theming and extensibility
- Accessibility best practices in Compose
- Performance optimization in Compose
- Experience with Android library/module development
- Gradle setup for shared modules, publishing/distribution patterns, dependency isolation, semantic versioning, and backward compatibility
- UI testing experience using Espresso APIs
- Experience with design systems and token-driven theming
- Clean code and clean architecture principles