As an Android application and platform developer for 10 years, I've developed Point of Sale systems (while an employee of Bypass Mobile and then Swiftly Systems), Internet Speed testing apps (while an employee of Ookla), Last-mile delivery apps (while an employee of Amazon), and e commerce platforms and apps (while an employee of Swiftly Systems). In the last several years, I've I am now seeking to take that experience and begin freelancing.
Having such a long history with Android app development, I'm suited to working on apps in Java and in Kotlin. Additionally, I have extensive experience with frameworks that facilitate commonly used patterns in Android development:
Dependency Injection
HTTP, GraphQL, REST, etc
- Ktor Client
- Retrofit
- OkHttp
- Volley
- Apollo (GraphQL)
- Web Sockets
Data Persistence
- SQLiteOpenHelper
- ContentProvider
- Room
- SQLDelight
- Realm
- Shared Prefrerences
- Encrypted Shared Preferences
- Android Jetpack Data Store
- Multiplatform Settings
Serialization (including polymorphic serialization)
- Gson (JSON)
- Moshi (JSON)
- kotlinx.serialization (JSON and protocol buffers)
- Google Protobuf (protocol buffers)
UI
- Android Views
- Jetpack Compose
- Jetpack Navigation
- Many more Jetpack libraries
Image Loading
Observer Pattern and Asynchronous Programming
- Kotlin coroutines and coroutine flows
- Jetpack Compose
- Live Data
- RxJava (2 and up)
- Broadcast Receiver
Testing
- JUnit 4 and 5
- Espresso
- Jetpack Compose Previews
- Jetpack Compose Testing
- Mockito
- MockK
- mockative
- Kotlin test
Inter-Process Communication
- Bound Services
- Content Provider
- Broadcast Receiver
Building
- Gradle. With 10+ years experience with Gradle, I can take the pain of Gradle away. I know how difficult it is to learn, as I've seen developers at all experience levels struggle with it over the years.
On top of my framework experience, I've also lead Android development teams and set up processes/procedures and automation, such as CI/CD pipelines via Azure Devops Pipelines, CircleCI, BuildKite, and Github Actions. I've published jars and aars to internal maven repositories (feeds) and external maven repositories (maven central).
Additionally, I have some experience with Android NDK, and have used tools such as Djinni to marshal native code. However, I've since learned that Djinni's development has been discontinued.
You can see some of my recent work (from the last 5 years) by downloading the Speedtest Android App (on which I was senior Android engineer from 2017 to 2019), The Family Dollar Store App, Save Mart, Lucky Supermarkets, FoodMaxx, and The 99 Cents Only app (all developed between 2019 and 2022), each of which is still on the Google Play store today, and each enjoy a healthy group of users.