Ryan Conway
← All Projects
Professional May 2019 – Dec 2021

EDTR

Attendance and inventory tracking application with 10,000+ users across South-East Asia, built at E-Science Corp. Led the modernisation from Java to Kotlin and Clean Architecture.

Kotlin Java Android Clean Architecture SQLite

Role

  • Lead mobile developer on attendance and inventory modules
  • Spearheaded the Java to Kotlin migration

Key Contributions

  • Lead mobile developer on both the attendance and inventory tracking modules of an app with 10,000+ active users across South-East Asia
  • Spearheaded the migration from Java to Kotlin and introduced Clean Architecture to a previously unstructured legacy codebase
  • Optimised data transfer and querying for large inventory datasets, improving performance for field users on limited connectivity
  • Projects under lead made up 21% of company revenue as of 2021

Overview

EDTR is an attendance and inventory tracking application used by more than 10,000 users across South-East Asia. Built at E-Science Corp, it serves field teams who need reliable tracking and reporting on limited connectivity.

My Role

I was the lead mobile developer on both the attendance and inventory modules - the two core features of the product. Beyond feature development, I drove the technical modernisation of the codebase.

Key Contributions

Java → Kotlin migration: The codebase was originally Java. I spearheaded the incremental migration to Kotlin, establishing patterns for the team and ensuring consistency as new code was written in Kotlin while legacy code was progressively converted.

Clean Architecture introduction: The existing codebase had no clear architectural structure. I pushed for and led the adoption of Clean Architecture, giving the team a shared mental model for how to organise code across layers.

Performance optimisation: Inventory tracking involves large datasets that needed to be queried and synced efficiently. I optimised the data transfer and querying logic, making the app reliably usable for field users on slower connections.

Technical Focus

Legacy modernisation at scale requires sequencing carefully - breaking changes on a live app used by 10,000+ people carry real risk. The migration was done incrementally, with Kotlin interop allowing new and old code to coexist until full migration was complete.

Tech Stack

Kotlin Java Android Clean Architecture SQLite