#  David Albers
[PDF version](./resume.pdf) | [GitHub](https://www.github.com/davidalbers) | [LinkedIn](https://www.linkedin.com/in/davidgalbers) | [Other stuff](./notes/index.html)
---
#### Currently
**Android Developer** Acorns
 David Albers
[PDF version](./resume.pdf) | [GitHub](https://www.github.com/davidalbers) | [LinkedIn](https://www.linkedin.com/in/davidgalbers) | [Other stuff](./notes/index.html)
---
#### Currently
**Android Developer** Acorns
Since February 2022 remote in Chicago, IL
* Helped modularize Android project
  * Demonstrated the effect of large modules on build and test time with module-based metrics
* Customized Gradle and CI pipeline to decrease test time by 75% and total CI usage by 50%
  * Converted Acorn's screenshot testing framework to use JVM-based testing with [Roborazzi](https://github.com/takahirom/roborazzi)
  * Added [AffectedModuleDetector](https://github.com/dropbox/AffectedModuleDetector) to only test affected modules
* Lead effort to replace cache singleton with Apollo Kotlin's [normalized cache](https://www.apollographql.com/docs/kotlin/caching/normalized-cache)
  * Refactored cache singleton usage in View to use MVVM with Apollo
  * Created extensive docs on using caching and how to refactor View architecture
* Release manager for the weekly release rotation
  * Automated release management so devs no longer ran custom release scripts
* Added metrics for flaky tests and used it to fix common issues
  * Went from 20% CI runs failing due to flaky tests to near-zero
#### Previously
**Android Developer** Expedia
From January 2018 to February 2022 in Chicago, IL
* Integrated a new GraphQL API using Apollo Android
  * migrated lodging LOB from REST to GraphQL
  * built new features across lodging, homescreen, and trip LOBs using GraphQL 
* Helped bring Expedia's design system to Android
	* Wrote design system tokens and code for system's Android library
	* Built custom `Views` adhering to the system
* Core team member on a project that combined above design system & API to build a library of reusable server-driven UI (SDUI) components 
 * created proofs-of-concept and later implemented solutions for library architecture 
 * setup publishing of library on Jenkins then later migrated it to Github Actions (GHA)
 * helped onboard teams of contributors to the project
* Wrote blog posts and gave presentations to other devs about design system, GraphQL, and SDUI library on Android
* Wrote integration tests using Robolectric, helped convert existing code to MVVM
**Android Developer** First Orion
From November 2016 to December 2017 in Little Rock, AR
						     
* Handled push messages from both Google Cloud Messaging (GCM) and Firebase
* Utilized Realm for efficiently storing and reading large amounts of data 
* Wrote UI and unit tests in Espresso, Mockito, & others
**Software Engineer** CymSTAR
from January to November 2016 in Tulsa, OK
* Modified A-10 Simulator for added functionality and bug fixes
* Debugged and solved issues caused by upgrading real-time OS (VxWorks) on simulator
* Implemented additional constraints for scheduling genetic algorithm in C
**Software Intern** InvoTek
from August 2011 to January 2016 in Alma, AR
* Created accessible user interfaces by providing alternative access methods such as eye-tracking 
* Implemented Bluetooth communication in apps and developed custom Views in Android 
---
#### Projects
##### White Noise Plus for Android & iOS
* White noise app focused on useful, simple features
* Available on [Play Store](https://play.google.com/store/apps/details?id=dalbers.com.noise "App Link") and [App Store](https://apps.apple.com/us/app/white-noise-plus/id1281372285)
 
 ##### Open Source contributions
* [Fork - Upgrade AGP 4.1.0](https://github.com/shazam/fork/pull/180/files)
* [AffectedModuleDetector - Trying to resolve a bug](https://github.com/dropbox/AffectedModuleDetector/issues/219#issuecomment-1579457923)
##### Open Source contributions
* [Fork - Upgrade AGP 4.1.0](https://github.com/shazam/fork/pull/180/files)
* [AffectedModuleDetector - Trying to resolve a bug](https://github.com/dropbox/AffectedModuleDetector/issues/219#issuecomment-1579457923)