Native Android development in Kotlin and Java.
- Technical leadership on native Android projects
- Expertise in developing for the Android user experience including best practices for permissions, notifications, back button behaviour, and other UX
- Building Design Systems that support both light and dark appearance modes to support teams in building out views
- High attention to detail with regards to UI implementation and striving for pixel-perfect layouts on Android
- Building Android apps that support multiple flavours and build variants, e.g. Development, Staging and Production app flavours.
- Extensive experience with Android SDK versions and have been building functionality to support down to Lollipop (and previously Jellybean)
- Building support for deep link functionality including deferred deep linking
- Working with a variety of libraries and API's including Firebase, error trackers, networking libraries, etc.
- Working with push notifications and allowing users to configure notifications based on type
- Networking, including REST with JSON, web sockets, gRPC, and Protobuf
- MVVM architecture with LiveData and architecture components
- Reactive programming with Kotlin flows and LiveData with experience in Rx
- Data persistence in SQLite with Room database
- Implementing asynchronous worker tasks with WorkManager
- Building location-based functionality including "near me" functionality and working with maps
- Building custom UI for audio/video recording
- Building web view applications and enabling communication between the web view and native layer
- Unit testing in Java and Kotlin, including with coroutines, JUnit (4 & 5), Mockk
- Automated UI testing with Espresso and Appium
- Setting up Android lint and Kotlin lint to ensure code style consistency in the project
- CI/CD setup for running tests, lint and other tasks for Git workflows, as well as automating deployments and code signing for Firebase App Distribution and the Google Play Store
- Most of my experience is working with XML views, but I have also built projects using Jetpack Compose, as well as worked in apps that use both
- Building apps that use Kotlin Multiplatform Mobile to build apps in Kotlin for both Android and iOS