Open to new opportunities · Costa Rica · Remote

Luis Castillo

Senior Mobile Application Developer /Flutter & React Native

I have spent 8 years shipping production mobile apps to the App Store and Google Play across health, fintech, retail and government. Right now I lead the Oeskn Flutter app — AI-powered skin analysis, personalized routines and subscriptions — end to end on iOS and Android.

Portrait of Luis Castillo Calderón
8
Years shipping mobile
8
Apps in production
50%
Fewer crashes
iOS + Android
Platforms shipped

Selected work

Apps I have built and shipped

Eight products live on the App Store and Google Play, spanning AI-powered health, grocery e-commerce, fintech and public-sector services. Below are the two I am currently closest to, followed by earlier client work.

Oeskn app icon

Oeskn — Skincare Simplified

Current focus

Flutter · iOS & Android · Health & Fitness · English + Spanish

An AI-powered skincare platform that turns a single photo into a structured read of your skin. A facial scan maps the face by zone, produces a 0–100 Skin Score, and generates a personalized morning and night routine that adapts as the skin changes over time.

  • Own the Flutter app end to end — camera-based analysis flow, routine tracking, reminders, streaks and progress charts — now at version 1.9 after 128 production builds.
  • Built on Firebase — Firestore, Cloud Functions, Auth, Storage, Remote Config and Crashlytics — with Sign in with Apple and Google Sign-In.
  • Implemented Stripe subscriptions, push notifications and a full English/Spanish localization layer for US and Latin American users.
  • Instrumented for product decisions with Firebase Analytics, CleverTap, Singular and Sentry, plus Firebase Performance for regression tracking.
FlutterDart FirebaseCloud Functions Stripego_router ProviderRxDart SQLiteSentry i18n
Fresh Market Costa Rica app icon

Fresh Market Costa Rica

Grocery e-commerce

iOS & Android · Food & Drink · Inversiones AM PM

The mobile storefront for one of Costa Rica's premium supermarket chains. Customers browse the full catalog, choose home delivery or in-store pickup, and earn rewards through the FreshLover loyalty program.

  • Delivered a full grocery commerce flow — catalog and search, cart, saved shopping lists, order history and stored payment methods.
  • Integrated the FreshLover loyalty program: up to 5% cashback, redeemable balance and exclusive discounts shared across app and physical stores.
  • Shipped from a single cross-platform codebase to both stores, keeping delivery and pickup fulfilment logic consistent across iOS and Android.
Cross-platformREST APIs E-commercePayments LoyaltyPush notifications

Earlier client work

Also shipped

CONAPE app icon

CONAPE

Android · Public sector

Official app for Costa Rica's national student loan authority, giving borrowers self-service access to their loan status, balances and payments.

AndroidREST APIs Secure auth
Nutri Fit app icon

Nutri Fit

Android · Health & nutrition

A nutrition and fitness companion that connects clients with their meal plans and lets them follow progress between consultations.

AndroidMeal plans Push notifications
Colypro app icon

Colypro

iOS & Android · Education

Member app for Costa Rica's professional teaching association, delivering member services, benefits and announcements on both platforms.

React NativeiOS Android
PEI app icon

PEI

iOS & Android · Fintech

A Latin American mobile payments product built for both platforms, covering transaction flows, account management and secure authentication.

React NativePayments Secure auth
Rich Fit Tips app icon

Rich Fit Tips

iOS & Android · Fitness

A training and wellness app pairing subscribers with guided workout content and coaching tips, released on both stores.

React NativeVideo Subscriptions
Socie Móvil app icon

Socie Móvil

Android · Member services

A membership services app giving affiliates mobile access to their account, benefits and organisational updates.

AndroidREST APIs

Open source

Libraries

android-toolbox icon

android-toolbox

Java · Android

A set of reusable Android helpers and utilities extracted from client projects to cut the boilerplate out of starting a new app.

JavaAndroid Utilities

Career

Experience

Eight years of mobile development, from native Android into cross-platform product ownership.

Senior Mobile Application Developer

Antit · Remote

Jan 2020 — Present

  • Introduced Flutter and React Native as the organisation's cross-platform standard, and now lead delivery on both.
  • Own Oeskn end to end — a Flutter skincare platform with AI skin analysis, Stripe subscriptions and a Firebase backend — shipped to iOS and Android in English and Spanish.
  • Cut application crashes by 50% through disciplined testing, Crashlytics and Sentry instrumentation, and targeted refactoring — lifting store ratings as a result.
  • Built modular component libraries and app templates that raised code reuse across projects and shortened delivery on new client engagements.
  • Hardened apps against data exposure and instrumented them with product analytics so feature decisions rest on real usage data.
  • Mentor junior developers, review code, and run estimation and delivery in Scrum with Jira — while working directly with UX/UI designers and clients through launch and post-launch support.
FlutterReact Native FirebaseStripe ScrumMentoring

Mobile Application Developer

EX2 Outcoding · San José, Costa Rica

Aug 2018 — Jan 2020

  • Built native mobile applications using Java, Swift and Objective-C across Android and iOS.
  • Integrated third-party REST APIs and SDKs to extend product functionality without expanding scope.
  • Raised app store ratings by turning user feedback into concrete improvements release over release, backed by thorough pre-release testing.
  • Partnered with cross-functional teams to define, design and ship new features, and authored fixes and enhancements for scheduled releases.
JavaSwift Objective-CAndroid iOSREST APIs

Toolkit

What I work with

The stack I reach for day to day, grouped by where it fits in a product.

Cross-platform

FlutterDart React NativeJavaScript

Native

AndroidJava iOSSwift Objective-C

Architecture

MVVMMVC Design patternsDependency injection Modular designState management

Backend & data

FirebaseFirestore Cloud FunctionsREST APIs SQLSQLite

Quality & performance

Automated testingCrashlytics SentryProfiling Continuous deploymentApp security

Product & growth

Stripe subscriptionsPush notifications Firebase AnalyticsCleverTap Localization (EN/ES)

Ways of working

AgileScrum JiraGit & GitHub Code reviewMentoring

Languages

Spanish — nativeEnglish — professional

About

A little more context

I am a Senior Mobile Application Developer based in Costa Rica, working remotely. I started in native Android with Java, moved through Swift and Objective-C, and for the last several years have focused on Flutter and React Native — which is where I have delivered most of the products now live on the stores.

What I care about is the part of the job that shows up after launch: crash rates, cold start times, whether the analytics actually answer the product question, and whether the next developer can find their way around the codebase. Reducing crashes by 50% on one product was not one fix — it was testing discipline, instrumentation, and refactoring the parts everyone had been avoiding.

I like owning a product end to end. On Oeskn that means the camera and analysis flow, the subscription layer, the Firebase backend, the localization for two markets, and the release process — and being the person accountable when any of it breaks. I work in health and fintech contexts, so I treat sensitive user data as sensitive by default.

I also enjoy the team side: mentoring junior developers, keeping code review useful rather than performative, and building the shared components that stop everyone from solving the same problem five times.

Get in touch

Let's build something
worth shipping

I am open to senior mobile roles and interesting product work. If you have a Flutter or React Native app that needs to ship — or needs rescuing — I would like to hear about it.