Skip to content
View ivfrost's full-sized avatar

Block or report ivfrost

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
ivfrost/README.md

Hi, I'm Pablo

Full Stack Developer  ·  Málaga, Spain  ·  Open to new opportunities

About

Self-taught Full Stack developer, backend-leaning. I care about understanding how things work, not just making them run, and shipping quality code that's easier to maintain and debug.

I run Linux daily, self-host services on Proxmox, and use Coolify for deployment testing. Currently preparing for the AWS Certified Developer – Associate (DVA-C02) to strengthen my cloud and scalability skills.

Java TypeScript Spring Boot React Expo TailwindCSS PostgreSQL Redis AWS Docker Coolify

Let's Connect

LinkedIn Email Website

Featured Work

Hydrolink: Full-stack IoT irrigation platform, built solo from ESP32 firmware to React Native app

Born from a real need: managing irrigation systems in the countryside without physically checking on them.

Tech: Java/Spring Boot · React Native (Expo) · TanStack Query · PostgreSQL · Redis · AWS IoT Core · AWS Cognito · MinIO · Docker · Coolify · ESP32/PlatformIO

Architecture:

  • Device status flows from the ESP32 to AWS IoT Core over MQTT, is routed by an IoT rule into SQS, and is consumed by the Spring backend
  • Commands go the other way: the API publishes to the IoT Data Plane with IAM; the device subscribes to its own command topic
  • The app reads live device state directly from IoT Core using temporary Cognito Identity Pool credentials, scoped per device by an IoT policy attached on link

Features:

  • Device provisioning and linking: an application record created on boot and linked by an ownership secret, separate from the AWS Thing the device provisions itself via fleet provisioning (X.509)
  • Authentication fully migrated to AWS Cognito via Amplify; the API verifies tokens as an OAuth2 resource server and derives the user identity server-side, never from the client
  • Two-phase secret rotation, gated on a device acknowledgement, so a failed rotation leaves the old secret valid
  • Device secrets stored AES-GCM encrypted with a deterministic HMAC-SHA256 fingerprint for lookups
  • User profiles with image upload; device images and OTA firmware stored in MinIO
  • Area details: image, name, location, description, display ordering
  • Stations: configurable, renamable, assignable roles (solenoid, sensor, etc.), manual control with countdown feedback
  • Full per-day scheduling system: fixed-time or relative time windows, linked to another station, with conflict detection for overlaps and cycles
  • Over-the-air firmware updates: versioned uploads with checksums, announced to matching devices, with a last-dispatched sweep that avoids re-announcing the same update
  • Dockerized backend with separate dev/prod builds, Compose orchestration for Postgres, Redis, and MinIO, each with health checks
  • Deployed on Coolify with secure environment variable injection

API Repo · App Repo (firmware closed source)

Featured Certifications

Pinned Loading

  1. hydrolink-api hydrolink-api Public

    Java Spring Boot REST API for the Hydrolink smart irrigation system

    Java

  2. hydrolink-app hydrolink-app Public

    React Native (Expo) app for managing and monitoring Hydrolink smart irrigation devices

    TypeScript

  3. ivfrost-portfolio ivfrost-portfolio Public

    My developer portfolio built with Next.js

    TypeScript

  4. ai-agent-py ai-agent-py Public

    AI agent built from scratch in Python using the Gemini API. Implements the ReAct loop with file system tools for reading, writing, and executing code.

    Python