José Mario Hernández

Fullstack developer

Tenerife, Canary Islands · 8 languages: Portuguese, Spanish and Italian natively, English, Catalan, French, American Sign Language and Norwegian

Skills and selected projects

Tech Skills

Técnico Superior en Desarrollo de Aplicaciones Web (DAW), 2026

Programming Languages

  • / JavaScript
  • / TypeScript
  • / Java
  • / C#
  • / SQL
  • / HTML5 & CSS3

Web & Interfaces

  • / React
  • / Next.js
  • / Tailwind CSS
  • / Responsive Design & Accessibility
  • / Web Performance & SEO

Backend & Systems

  • / Spring Boot
  • / .NET
  • / Node.js
  • / REST APIs & JWT Auth
  • / LLM APIs & Prompt Design
  • / MySQL & PostgreSQL
  • / Linux
  • / Docker
  • / Git & CI/CD

Creative & Motion

  • / Three.js & WebGL
  • / GSAP
  • / Figma

Scroll to explore projects

Languages

Happy to interview in any of them

  • ESSpanishNative
  • PTPortugueseNative
  • ITItalianC2
  • ENEnglishC2
  • CACatalanC1
  • FRFrenchB2
  • ASLAmerican Sign LanguageB2
  • NONorwegianA2
01

MICULTURA

Cultural events platform for Tenerife, built in a pair for our DAW final project. I owned the Spring Boot API: JWT auth with refresh-token rotation, filtering and pagination over PostgreSQL, and a natural-language event search that uses Gemini to pick from the real catalogue rather than generate answers. On the Next.js App Router frontend I built the event catalogue, the Leaflet map and the FullCalendar view. The catalogue falls back to a cached snapshot when the free backend is asleep, so the demo still works.

  • Next.js
  • TypeScript
  • Spring Boot
  • PostgreSQL
  • JWT Auth
  • Gemini API
  • Leaflet
  • Tailwind CSS
02

MOSIR

A globe you can turn to see the world the way I read it: the nine languages I speak or am learning, marked on the cities they actually come from. Natural Earth GeoJSON rasterised into textures as the page loads, country hover through a hidden colour map, and lighting that follows the real position of the sun.

  • Three.js
  • JavaScript
  • WebGL
  • HTML
03

SKYABOVE

Flight dashboard with a Next.js API route proxying AviationStack so the API key never reaches the browser. Adds a 30-minute in-memory cache, per-IP rate limiting with 429 responses, and a stale-cache fallback that keeps serving data when the upstream API fails. Fully typed response contracts, GSAP stat transitions.

  • Next.js
  • TypeScript
  • REST API
  • Caching
  • Rate Limiting
  • GSAP

See more on GitHub

github.com/mariomhz
“To create is to bring something into existence that wasn’t there before.”Rick Rubin, The Creative Act

I believe technology is the tool I was given to create and I use it to shape digital experiences.

I want to create work that is accessible, unique. I want to make websites more useful, more beautiful, more fun. I want to work with people, not for people, because I believe when humans think and work together we can achieve some pretty incredible stuff.

I speak Portuguese, Spanish, English, Italian, Catalan, French, Norwegian, and American Sign Language, which shapes how I think about breaking communication barriers, human and digital.

I trained in web application development, I run Linux on my daily machines, and I work out of the terminal, Git and Docker.