Hi, I'm Ryan Conway

Mobile Developer
Kotlin & Flutter

9+ years building production Android and cross-platform mobile apps - from fintech and food delivery to open-source templates and game development.

Currently Building

Creature Keeper

In Progress

A relaxing idle creature-collection game for iOS and Android. Collect, nurture, and evolve creatures while building habitats and sending expeditions - even while you sleep.

  • Designed a three-pillar core loop (Habitats → Expeditions → Evolution) with meaningful tradeoffs, including an expedition injury system that forces strategic roster management
  • Engineered a tick-less game engine where all resource generation is calculated retroactively from elapsed time, enabling reliable offline progression capped at 8 hours
Flutter Dart Bloc Hive AdMob in_app_purchase

Featured Projects

Skills

Kotlin Flutter Dart Java Jetpack Compose Android Clean Architecture MVVM Bloc Git SQLite Hive

Experience

Nimble

Mid/Senior Software Developer

Bangkok, Thailand

Jan 2022 – Present
  • Team lead on the Self-Ordering Kiosk system for Okya - managed backlog, assigned tasks, and drove technical decisions across a multi-product Flutter suite (Kiosk, POS, Order Management, Kitchen Display)
  • Lead maintainer of Nimble's public Android Templates repository - owned the backlog and raised the quality bar for all new Android projects generated from it
  • Drove internal initiative to migrate XML layouts to Jetpack Compose across Android projects

E-Science Corp

Software Engineer II

Muntinlupa, Philippines

Jul 2017 – Dec 2021
  • Lead mobile developer on projects that made up 21% of company revenue as of 2021 - responsible for delivery, architecture, and team standards across EDTR and SOLE
  • Spearheaded migration from Java to Kotlin and introduced Clean Architecture to a legacy codebase with 10,000+ active users across South-East Asia
  • Optimised data transfer and querying for large inventory datasets, improving reliability for field users on limited connectivity
Creature Keeper
In Progress Personal 2025 – Present

Creature Keeper

A relaxing idle creature-collection game for iOS and Android. Collect, nurture, and evolve creatures while building habitats and sending expeditions - even while you sleep.

Flutter Dart Bloc Hive AdMob in_app_purchase

Role

  • Sole developer - design, architecture, and implementation
  • Game designer - core loop, economy, and balance design

Key Contributions

  • Designed a three-pillar core loop (Habitats → Expeditions → Evolution) with meaningful tradeoffs, including an expedition injury system that forces strategic roster management
  • Engineered a tick-less game engine where all resource generation is calculated retroactively from elapsed time, enabling reliable offline progression capped at 8 hours
  • Implemented client-side time-cheat mitigations including a 100-snapshot save history, negative-delta clock detection, and automatic rollback on repeat offences
  • Architected across Clean Architecture layers (domain/data/presentation) with Bloc for predictable, testable state management
  • Designed ethical F2P monetization with rewarded ads and cosmetic/convenience gems - no pay-to-win

Overview

Creature Keeper is a relaxing idle game where players collect, nurture, and evolve adorable creatures across 5 elemental families. Build habitats, send creatures on expeditions, and grow your collection - even while away from the game.

Targeting a soft launch on iOS and Android via Flutter.

Core Loop

The game revolves around a three-pillar flywheel:

  1. Habitats - place creatures in elemental habitats to passively generate Coins and Essence.
  2. Expeditions - send creatures on timed missions (5 min → 8 hr) to discover new species, gather evolution materials, and earn rare loot.
  3. Evolution - spend resources to level up and evolve creatures through three stages (Baby → Juvenile → Adult), unlocking stronger passive generation and expedition capabilities.

Better creatures produce more resources, which unlock harder expeditions, which yield rarer creatures, which fuel further evolution.

Technical Focus

Tick-less game engine: No real-time simulation loop. All resource generation is calculated retroactively when the app opens using elapsed = now - lastSaveTime. This makes the engine simple, testable, and perfectly accurate for offline play.

Offline-first architecture: Habitat income accumulates for up to 8 hours offline. Expeditions complete on schedule regardless of app state. A “Welcome Back” screen summarises offline earnings and completed expeditions on return.

Time-cheat mitigation: Without a server, full prevention is impossible. The approach: maintain a rolling 100-snapshot save history in Hive; detect clock rollback (negative delta > 1 minute); on first offence clamp elapsed to zero; on repeat offences roll back to the last valid save and purge future records.

Architecture: Clean Architecture across domain, data, and presentation layers. Bloc for state management throughout. Hive for fast local persistence with save format versioning from day one to support future migrations.

Content Scope (Soft Launch)

  • 5 elements: Nature, Fire, Water, Shadow, Light
  • 15 creature families (45 total forms across Baby/Juvenile/Adult evolution stages)
  • 5 habitat types with passive income and element-match bonuses
  • 15 expedition zones (5 elements × 3 difficulty tiers) with 4 duration options
  • ~30 achievements with Gem rewards
  • Cosmetic creature skins (purchasable with Gems)
Restaurant Chain Solution (Okya)
In Progress Professional May 2025 – Present

Restaurant Chain Solution (Okya)

A suite of Flutter applications for restaurant chains - Self-Ordering Kiosk, POS, Order Management, and Kitchen Display systems.

Flutter Dart

Role

  • Team lead of the Kiosk system
  • Led development, created and managed backlog, and coordinated development efforts across systems

Key Contributions

  • Team lead on the Self-Ordering Kiosk system within a multi-product suite (Kiosk, POS, Order Management, Kitchen Display)
  • Responsible for delivery, task coordination, and technical decisions on the Kiosk, POS, and Order Management products

Overview

Okya is an all-in-one restaurant technology platform. The suite includes a Self-Ordering Kiosk, POS, Order Management system, and Kitchen Display system - all built in Flutter to share a consistent codebase and design language across touchpoints.

My Role

As team lead on the Kiosk system, I’m responsible for the technical direction and delivery of the self-ordering kiosk product. This includes managing the backlog, assigning tasks, coordinating with other system teams, and making architectural decisions. I also engage in technical discussions and architectural decisions across each of the four products.

Technical Focus

Building a multi-product Flutter suite requires careful separation of shared logic from product-specific features. The architecture supports independent development of each system while maintaining consistency across the platform.

Clean Notes
Personal Jan 2021 – Feb 2021

Clean Notes

A minimal note-taking Android app built to demonstrate Clean Architecture principles in a real, published codebase.

Kotlin Android Clean Architecture MVVM SQLite

Role

  • Sole developer - design, architecture, and implementation

Key Contributions

  • Built as a deliberate showcase of Clean Architecture with strict separation of domain, data, and presentation layers
  • Published to the Google Play Store as a real-world reference implementation
  • Demonstrates MVVM, repository pattern, and dependency inversion in a concise, readable codebase

Overview

Clean Notes is a basic note-taking application built with a single goal: demonstrate Clean Architecture principles in a real Android app. It’s intentionally simple in scope so the architecture speaks for itself.

Technical Focus

The project follows a strict three-layer Clean Architecture separation:

  • Domain layer - entities and use cases with no Android dependencies
  • Data layer - repository implementations and SQLite data source
  • Presentation layer - MVVM with ViewModels and Android UI components

This structure makes the codebase easy to navigate, test, and extend - the same principles applied to production apps at scale.

Android Templates
Professional Aug 2022 – May 2025

Android Templates

A public open-source template collection for quickly bootstrapping new Android projects with production-ready architecture and tooling, maintained at Nimble.

Kotlin Jetpack Compose Android Clean Architecture MVVM

Role

  • Lead maintainer
  • Backlog owner and task assignment

Key Contributions

  • Lead maintainer of Nimble's public Android Template repository - responsible for managing the backlog, assigning tasks, and reviewing contributions
  • Templates are used by internal teams to bootstrap new Android projects with consistent architecture, tooling, and structure
  • Drove the initiative to explore migration from XML layouts to Jetpack Compose across internal projects

Overview

Nimble’s Android Templates repository provides a collection of project templates for quickly generating a new Android project with commonly used features, architecture patterns, and tooling pre-configured. As lead maintainer, I owned the direction and health of the repository over nearly three years.

My Role

As lead maintainer, I was responsible for:

  • Managing the backlog and prioritising template improvements
  • Assigning tasks to contributors and reviewing pull requests
  • Ensuring templates stayed current with Android ecosystem changes
  • Driving the Jetpack Compose migration initiative internally

Technical Focus

A template repository has a different maintenance model to a product: it needs to be exemplary by definition, since it sets the standard for every project generated from it. This meant keeping architecture patterns clean, tooling up to date, and documentation clear - so that engineers spinning up new projects could start with confidence rather than technical debt.