“An application is never finished; it is only, at last, released.”A maxim of the workshop
IIhave spent the better part of a decade building software for the small glass rectangles that people carry everywhere, and I remain quietly astonished by them. I am an Android developer: I design, write, test and ship native applications in Kotlin, with a particular fondness for Jetpack Compose and for architecture that still makes sense two years after it was written.1
My work sits where product thinking meets engineering discipline. I care about the first frame a user sees and about the thousandth: cold-start time, smooth scrolling on a five-year-old handset, an offline mode that does not lose a single keystroke, and accessibility that is designed in rather than bolted on. I have led migrations from XML views to Compose, split monoliths into tidy feature modules, and coaxed crash-free rates from the low nineties to above ninety-nine point eight percent.2
I write from Zabrze, in the industrious heart of Silesia, and collaborate with teams across Europe and North America. I enjoy mentoring, I read changelogs for pleasure, and I believe the best code review comment is a kind question. The chapters that follow set out my instruments, a selection of works, and the houses in which I have practised the craft.
Of Method
Every project begins, for me, with the user’s day rather than the API’s shape. I sketch the flows, agree on the state model, and only then reach for libraries. I favour unidirectional data flow, small composable functions, ruthless test coverage on the domain layer, and release trains that leave nobody working on a Friday night.3
1
Conner Jacob NationsA Glossary of Instruments
Chapter II
A Glossary of Instruments
“Know thy tools, and the tools shall not know thee too well.”Workshop proverb
WWhat follows is an alphabet of sorts: the languages, frameworks and practices I reach for daily, arranged as a reader’s glossary. Beside each headword the reader will find a small measure of diamonds indicating depth of acquaintance.4
Kotlin n.
The principal language of the author. Coroutines, Flow, sealed hierarchies, DSLs, and multiplatform modules.see also: Java, KMP
Jetpack Compose n.
Declarative UI with Material 3, custom layouts, animation APIs, theming systems and performance tuning of recomposition.see also: Views, Glance
Architecture n.
MVVM and MVI, Clean Architecture, multi-module Gradle projects, dependency injection with Hilt & Dagger.see also: Navigation, KSP
Persistence n.
Room, SQLDelight, DataStore; offline-first synchronisation with WorkManager and conflict resolution.see also: Paging 3
Networking n.
Retrofit, OkHttp, Ktor client, kotlinx.serialization, GraphQL via Apollo, WebSockets and certificate pinning.
Testing n.
JUnit 5, MockK, Turbine, Robolectric, Espresso, Compose UI tests and screenshot testing with Paparazzi.
Wear OS tiles, home-screen widgets with Glance, Android Auto, ML Kit & TensorFlow Lite on device.
Fellowship n.
Mentoring, design reviews with product & UX, technical writing, and agile delivery in distributed teams.
Key — one diamond for each degree of acquaintance, five being daily and intimate use.
9
Conner Jacob NationsCollected Works
Chapter III
Collected Works
“By their releases ye shall know them.”Release notes, apocryphal
FFour works are gathered here, chosen not because they were the largest but because each taught something worth recording. Each is accompanied by a figure, engraved from the running application, and a note of the instruments in which it was set.
Fig. 3.1 — Survey list, offline.
The First Work
Fieldnote
An offline-first survey companion for environmental field teams
Ecologists working in valleys without signal needed to record observations, photographs and GPS traces for days at a time and trust that nothing would be lost. I designed a local-first data layer on Room with an operation log, synchronised through WorkManager whenever connectivity returned, and resolved conflicts field by field rather than record by record.
The interface, written entirely in Compose, works one-handed and in gloves. The app grew to some 120,000 installs with a crash-free rate of 99.86 percent.5
A commuter’s app for the Upper Silesian tram and bus network, built as a side project that became a community favourite. Departures stream in over a WebSocket and are rendered with gentle, glanceable motion; a Glance home-screen widget and a Wear OS tile mean most journeys never require opening the app at all.
Baseline Profiles cut cold start by thirty-eight percent on entry-level devices, the ones most riders actually own.6
Set inKotlin · Compose · Ktor · Glance · Wear OS · Macrobenchmark
Fig. 3.3 — On-device identification.
The Third Work
Pocket Herbarium
Plant identification that never leaves the telephone
A botanical field guide that recognises some 2,400 European species from a single photograph, entirely on device. I integrated a quantised TensorFlow Lite model through CameraX, kept inference under 120 milliseconds on mid-range hardware, and built a private, searchable herbarium of the user’s own finds.
Because no image is ever uploaded, the app requires no account and collects no data, a decision reviewers singled out for praise.
Set inKotlin · CameraX · TensorFlow Lite · ML Kit · Room · Paging 3
Fig. 3.4 — Specimen page of the catalogue.
The Fourth Work
Compose Ornaments
An open-source library of motion & shape for Jetpack Compose
A small library born of repeated need: morphing shapes, spring-driven reveal effects, and shimmer placeholders that respect the user’s reduced-motion setting. It is documented with a living catalogue app, tested with Paparazzi screenshots, and published to Maven Central.
It has gathered some 2,300 stars and contributions from developers on four continents.7
Set inKotlin · Compose Animation · Paparazzi · Dokka · Maven Central
17
Conner Jacob NationsA Chronicle of Employment
Chapter IV
A Chronicle of Employment
“Every version number is a small autobiography.”From the author’s notebook
TThe houses in which I have served are recorded below in reverse order, the most recent first, with dates set in the margin after the manner of old chronicles.
2022 — presentRemote · Europe
Senior Android Developer
Brightmoor Health
Lead engineer for a telehealth application serving patients and clinicians in six countries, with a team of five Android developers.
Led the migration of forty screens from XML views to Jetpack Compose without a feature freeze.
Restructured the codebase into twenty-two Gradle feature modules, halving incremental build times.
Raised the crash-free rate from 97.1 to 99.8 percent and accessibility audit scores to full WCAG AA.
2019 — 2022Katowice
Android Developer
Parcelwise Logistics
Built and maintained the courier application used daily by some 3,000 drivers for routing, proof of delivery and offline manifests.
Designed an offline-first sync engine with Room and WorkManager, eliminating lost-scan incidents.
Introduced MVVM, Hilt and coroutine-based networking, retiring a legacy RxJava stack.
Set up CI on GitHub Actions with automated Play Store deployment through Fastlane.
2017 — 2019Gliwice
Junior Mobile Developer
Oakline Studio
An apprenticeship in a small agency, delivering Android applications for retail, hospitality and cultural clients.
Shipped eleven client applications, from loyalty schemes to a museum audio guide.
Wrote the studio’s first Kotlin style guide and shared component library.
2013 — 2017Studies
Bachelor of Science, Computer Science
Undergraduate Studies
Concentration in software engineering and human–computer interaction; thesis on energy-aware background scheduling for mobile devices.8
33
Conner Jacob NationsCorrespondence
Chapter V
Correspondence
“Write soon, and write plainly.”Closing of an old letter
SShould the reader have an application in want of building, a codebase in want of mending, or a team in want of another pair of hands, I should be very glad to hear of it. I am open to full-time roles, contract engagements and thoughtful collaborations, and I answer every letter, usually within two working days.9