Photo of José Hernández
Full-Stack Product Engineer

José Hernández

I build software that solves real problems, from architecture down to the last pixel.

I'm a self-taught developer with a rigorous approach to software architecture and clean code. I work with the modern web development stack to deliver functional products with agility, from the first commit to production deployment.

Tech Stack

Tools and technologies I use daily to build products from start to finish.

Frontend

  • Next.js
  • React
  • TypeScript
  • Tailwind CSS

Backend & Database

  • Node.js
  • PostgreSQL
  • Supabase

Tools & Cloud

  • Git
  • Docker
  • Vercel
  • Vitest

Featured Projects

Projects built end to end, from design to database.

PagoMovilOCR

Open Source / npm Package

npm library that extracts, normalizes and validates Venezuelan Pago Móvil receipts via OCR.

Problem

In Venezuela, confirming a Pago Móvil payment usually means asking the customer for a screenshot and reading it by hand (amount, reference, date, bank), which is slow, error-prone, and doesn't scale for a business processing many payments a day.

Solution

PagoMovilOCR automates that reading: it takes an image of the receipt and returns structured data along with a set of consistency validations, with no backend of its own and without ever sending the image to a server.

Engineering

  • Designed a 4-stage pipeline, each independently testable: OCR → normalization → parsing → validation.
  • Implemented a swappable OCR engine (Tesseract.js by default, running 100% client-side/locally via WebAssembly).
  • Built a registrable bank-profile system (`registerBankProfile`) to detect, and when it's safe, parse each bank's format.
  • Developed a USD/VES conversion module using the official BCV rate (via pydolarve.org), with a configurable in-memory cache and explicit `stale` handling.
  • Covered all the logic with unit and integration tests in Vitest: normalization, parsers, individual validators, the currency module with mocked providers, and end-to-end `verifyPayment` with a mocked OCR engine.

Tech Stack

Node.jsTypeScriptVitestTesseract.jsOCR

Site Auditor

SEO & Performance Tooling

Analyzes the SEO health and performance of any URL in seconds.

Problem

Spotting technical SEO issues and broken metadata usually means manually checking several scattered tools, which slows down quick audits.

Solution

Site Auditor centralizes the analysis: it takes a URL, evaluates its OpenGraph tags and HTTP response times, and generates a visual executive report on a single screen.

Engineering

  • Implemented Next.js Server Actions to orchestrate the scraping and analysis without exposing a public API endpoint.
  • Designed the OpenGraph tag and HTML metadata parser, handling incomplete or malformed cases.
  • Built the results visualization with Recharts, mapping each check to a status (pass / warning / error).
  • Validated and sanitized input URLs to prevent requests to unsafe domains.

Tech Stack

Next.jsServer ActionsTypeScriptTailwind CSSRecharts

DocuExtract

OCR & Document Automation

Automatically extracts key tax data from invoices and receipts.

Problem

Manually capturing invoice data for accounting is slow and error-prone, and businesses need a reliable flow even when OCR isn't confident about the result.

Solution

DocuExtract lets you upload an invoice or receipt and uses OCR to extract the key tax data, ready for accounting. When recognition confidence is low, the document is routed to a human review flow instead of saving unreliable data.

Engineering

  • Designed the processing pipeline (upload → OCR/extraction → parsing → persistence), separating server-side processing from the UI.
  • Integrated Tesseract.js (Spanish + English) for OCR on images, plus native text-layer extraction from PDFs with pdf-parse.
  • Built a confidence system combining OCR reliability and detected tax fields, which automatically routes to human review below a configurable threshold.
  • Implemented specialized regex to identify tax IDs (NIT/RIF/CUIT/RFC/RUC), dates (numeric and written), and amounts based on accounting keywords.
  • Isolated data per company with Supabase Row Level Security, and served original documents via short-lived signed URLs from a private Storage bucket.
  • Kept the Supabase `service_role key` exclusively in server Route Handlers, never exposed to the browser.

Tech Stack

Next.jsTypeScriptNode.jsTesseract.jsTailwind CSSSupabase

TrimLink

URL Shortener & Analytics

Shortens links and tracks click, country, and device metrics.

Problem

Long links are hard to share and give no visibility into who's interacting with them.

Solution

TrimLink turns long URLs into unique short links and anonymously logs clicks, country (by IP), and device type.

Engineering

  • Implemented short-link redirection using Next.js Middleware at the edge.
  • Designed the analytics schema in Supabase to log clicks without storing personally identifiable data.
  • Built country resolution by IP and device-type detection from the user agent.
  • Generated unique short IDs with collision checking.

Tech Stack

Next.jsMiddlewareTypeScriptTailwind CSSSupabase

LexChain

LegalTech & Blockchain

Generates dynamic legal contracts and verifies their integrity with a blockchain fingerprint.

Problem

Freelancers working with clients in different countries need contracts tailored to each jurisdiction without relying on a lawyer for every simple case, and they need to be able to prove the signed document wasn't altered afterward.

Solution

LexChain generates dynamic contracts based on the selected jurisdiction and computes a digital fingerprint of the document, recorded on an Ethereum testnet, so anyone can verify at any time that the contract hasn't been modified.

Engineering

  • Implemented dynamic PDF generation with pdf-lib from jurisdiction-specific templates.
  • Integrated ethers.js to compute the contract's hash and record it on an Ethereum testnet.
  • Designed a contract template system parameterized by country and agreement type.
  • Validated the form's input data to ensure the generated contract is consistent.

Tech Stack

Next.jsTypeScriptTailwind CSSpdf-libethers.jsEthereum Testnet

Results

  • 2 jurisdictions supported (Spain, Venezuela)

Professional Experience

This is work I've actually done for a real company, not a personal project.

Full-Stack Developer / Product Engineer

RE/MAX Arena

2025 — 2026

I developed and maintained digital solutions for a real estate company, covering both the customer-facing product and the team's internal tools.

Responsibilities

  • Developed and maintained the corporate website, later leading a full rebrand and rebuild.
  • Built internal dashboards and custom CRUD tools to digitize the team's workflows.
  • Implemented PDF generation and export flows for internal reports.
  • Integrated AI and geolocation APIs into the internal tools.
  • Deployed and maintained the applications in production, including server administration.
  • Contributed to local SEO strategy and online reputation, helping build up a base of 100+ positive Google reviews.
  • Migrated and administered the office LAN; team tech support was a complementary responsibility within infrastructure.

Stack

PHPJavaScriptSQLREST APIsLinux / ServersNetworkingTechnical SEO

Shall we build something together?

Available to join a team. If you're looking for a full-stack profile that can take a product from architecture to deployment, let's talk.