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.
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.