Home
Work
PostNord
LOGISTICS · POSTNORD
Track & Send Parcels: accessibility, at scale, on-site.
A parcel-tracking app that needed dependable status visibility and accessible interaction, with accessibility maturity starting near 10%. Three months on-site with the customer in Sweden, running PI Planning and delivery alongside the engineering work.
SCOPE
Track & Send Parcels, Android
COLLABORATION
3 months on-site in Sweden, PI Planning
SURFACE
Phone, EU/Nordic locales
THE SITUATION
Accessible interaction wasn’t optional, and it wasn’t there yet.
Accessibility maturity sat near 10%. Screens weren't labelled for TalkBack, touch targets were inconsistent, and phone authentication needed to work across Nordic-language locales with country selection.
On top of the accessibility gap, the app runs on Compose over an existing view hierarchy, so a fix in one layer had to interoperate cleanly with the other. Working alongside the customer on-site in Sweden meant the plan and the roadmap were shared in real time through PI Planning, not handed over after the fact.
OUTCOME
Accessibility, from a gap to the default.
BEFORE
~10%
AFTER
~90%
+40%
Tracking refresh reliability
6
Parcel/customs statuses in the SE Parcels module, zero-defect
3mo
On-site with the customer in Sweden
Verified with manual and automated testing. The Customs Status module shipped in a single PR release, zero-defect.
APPROACH
What actually changed
Five pieces of delivered work, in the order they shipped.
01
Accessibility groundwork
TalkBack
Touch targets
Manual + automated testing
Added TalkBack labels and fixed touch-target sizing across core screens, moving accessibility maturity from roughly 10% toward roughly 90%, verified with both manual and automated testing.
02
Custom Compose tooltips with XML interop
Jetpack Compose
XML interop
Built custom tooltip components in Compose that interoperate cleanly with the app's existing XML view hierarchy.
03
SE Parcels Customs Status module
Clean MVVM
Shipped a module handling 6 parcel and customs statuses in a single PR release, zero-defect.
04
EU country picker for phone authentication
Kotlin
Locale filtering
Added a country picker with flags for phone-number authentication, filtered for Nordic-locale language.
05
CI and quality gates
GitHub Actions
detekt
CI with unit tests and detekt static analysis, keeping the accessibility and architecture work from regressing release to release.
RECOGNITION
Kudos, not formal awards
Multiple kudos from the team, kept to the terminology they were actually given in.
SE Parcels Customs Status integration
Accessibility work
Learning and appreciation
Sprint story-clearing strategy
Faster sprint goal delivery
Android profile evaluation
A note on the baseline
Everything above is reported as delivered. One detail behind the numbers isn't published here.
Where the ~10% starting figure comes from
The method behind the starting ~10% accessibility figure isn't published, so read it as an approximate baseline.
More case studies
ENTERPRISE · AUTOMOTIVE & LOGISTICS Compose at scale, without a performance regression.
AVIATION / TRAVEL · AIR FRANCE Flying Blue+: owning delivery on a live loyalty app.
OPEN SOURCE CASE STUDY An airline itinerary built to be read, not decoded.
Got an accessibility gap to close?
TalkBack audits, Compose/XML interop, and the CI gates that keep a fix from regressing.
EMAIL ME
← Back to abhikr.com
Résumé
© 2026 Abhishek Kumar · abhikr.com