Ramsés Fernández
CV
§2 Personal project

Solo project · Deep Water, surfaced

RadarFish

A fishing-forecast app I built and shipped by myself.

  • 7,000+ downloads
  • 5,000+ active users in Spain
  • 4.9★ average across 100+ reviews
01

The problem

Fishing conditions depend on a handful of variables that don't live in one place: tides, swell, wind, barometric pressure, moon phase, time of day. Most weather apps just show the raw numbers. RadarFish combines those variables into a single score, per zone, per hour.

02

What I did

I designed the product, the scoring model, the data pipeline and both client apps, then built and shipped all of it myself.

03

How it's built

Client
React Native app built with Expo (SDK 54, Expo Router), shipped to both stores through EAS Build. State is handled with Zustand and TanStack Query. The interface is localised in Spanish and English.
Backend
Node.js / Express service on top of PostgreSQL, running the scoring engine that combines marine, weather, tide and solunar data into a per-zone, per-hour score. Deployed on Railway.
Distribution
Freemium, monetised through Apple and Google Play in-app billing. I handle versioning, store submission and staged rollouts myself on both platforms.
Marketing site & API
There's also a companion marketing site (Next.js, ES/EN) and an early B2B API that exposes the same scoring data to outside consumers. Both share the same backend instead of running their own copy of it.
04

Decisions

  • The scoring model runs server-side and is versioned separately from the client. Calibration changes ship without an app store release.
  • I used Expo instead of a bare React Native setup — maintaining two native build pipelines by hand wasn't realistic for one person.
  • The marketing site is its own deployable, separate from the app backend: Next.js on one side, Node.js on the other.
05

In the app

← Back to the surface