Senior engineer on the team · Senior Android Engineer, lead · Feb 2019 – Mar 2022
Stabilising a 100k-line consumer app, then leading the new B2B app
Fixed 50+ crashes and leaks in the consumer app, then led a team of four on the new Business app with 400+ automated tests.
- 50+
- crashes and leaks fixed
- 400+
- automated tests
- 4
- developers led
Part 1 of 2
Consumer app: stabilising a legacy codebase

Challenge
The Consumer app was an established legacy app with hundreds of thousands of users and a 100k+ line codebase that needed stabilising.
What I did
- Dived into the 100k+ line codebase to fix bugs and performance issues.
- Used static analysis tools (Facebook Infer, PMD, FindBugs) to identify and fix over 50 crashes and memory leaks.
- Migrated parts of the app to Kotlin.
Outcome
- A stable app for an existing user base of hundreds of thousands.
Stack
- Android
- Java
- Kotlin
- XML
- ConstraintLayout
- RxJava
- Facebook Infer
- PMD
- FindBugs
Part 2 of 2
Business app: architect and lead

Challenge
Schedulicity's brand-new B2B app needed an architect and lead developer while the team also built its e-commerce app.
What I did
- Spearheaded development of the Business app using MVP/MVVM while leading a team of four developers.
- Implemented a fully featured checkout flow with payments, discounts, deals and promotions across dozens of screens.
- Helped create the custom calendar view with pinch-to-zoom, custom navigation and colourful calendar items.
- Created a form validation framework that made the many forms in the app easy to implement.
- Covered the app with integration and unit tests: over 400 automated tests in the suite.
Outcome
- A B2B app shipped to the Play Store with a test suite the team still relies on.
- Faster feature work for the whole team thanks to shared frameworks.
Stack
- Kotlin
- Jetpack Compose
- XML
- ConstraintLayout
- RxKotlin
- Coroutines
- Dagger
- Retrofit
- Espresso
- Mockito