Portfolio


Here's a look at a few projects that I've worked on in the past:


My Officials

My Officials

My Officials is a Android application that helps users find and contact their elected representatives:

  • Kotlin
  • MVI architecture using Android Architecture Components
  • Retrofit 2 for interacting with RESTful services
  • Koin for dependency injection
  • Crashlytics for error reporting
  • JUnit 5, and Mockk UI/integration testing
  • Robot testing patter for UI tests
  • GitLab Pipelines for CI/CD
  • Coroutines for asynchronous operations
  • Timber for easy logging
  • Moshi for serialization
  • Get it on Google Play
  • Get MARC Commuter on GitLab

MARC Commuter

MARC Commuter

MARC Commuter is the only Android app that displays live updates, statuses, and alerts for MARC trains. MARC Commuter uses the following technologies:

  • Kotlin
  • MVVM architecture using Android Architecture Components
  • Retrofit 2 for interacting with RESTful services
  • Koin for dependency injection
  • Crashlytics for error reporting
  • JUnit 5, Mockito, and Robolectric for unit/UI/integration testing
  • GitLab Pipelines for CI/CD
  • LeakCanary for detecting memory leaks
  • RxAndroid / RxJava for asynchronous operations
  • Timber for easy logging
  • Moshi for serialization
  • Get it on Google Play
  • Get MARC Commuter on GitLab

District commuter

District Commuter

District Commuter is a mobile application designed for Android and iOS. Originally written as a cross platform mobile app using Ionic, an Angular based platform, I ended up splitting District Commuter into two separate applications so I could focus on native Android development. District Commuter Android is now very different from the original, written in native Android, it's both faster and easier to use than the original.

District Commuter utilizes the WMATA Next Train API to provide up-to-date notifications of train arrival times and incidents. It also tracks Twitter Notifications from @MetrorailInfo, provides a metro map, displays the closest Metro stations to the user, and provides estimates for the nearest Lyft car based on the users location. The Lyft option uses deep links to open the Lyft app centered on the user's position.

The backend is written in Go and hosted on an AWS EC2 instance. It handles the queries and caching of WMATA data to be utilized by the user applications.

  • Get it on Google Play
  • Get it on iTunes app store

Idle Consent

Idle Consent

A simple library for providing privacy notices and terms of services to users.

  • Get MARC Commuter on GitLab

CoinWatch

CoinWatch

CoinWatch is an Android app I intentionally over-engineered to demonstrate:

  • MVVM
  • Dagger 2
  • Retrofit 2
  • Unit/integration testing
  • Interacting with a RESTful API
  • Kotlin
  • Crash reporting (via Crashylitics on Firebase)
  • Deploying to the Google Play store
  • Get it on Google Play
  • Get MARC Commuter on GitLab