Héctor Moreira

Full Stack Developer · React / Node.js

I build web apps end to end: React and TypeScript on the frontend, Node.js and PostgreSQL on the backend. I sweat the details, write tests and document my decisions. Looking for remote work where I can contribute from day one.

Availability
Immediately
Timezone
Chile · UTC-3 / UTC-4Comfortable working with teams in the US and Europe
English
Technical · fluent writtenDocumentation and fluent written communication
Mode
Remote · Full-time

Projects

Four main projects with real technical context. The rest, further down.

Screenshot of Pizzeriapp

Pizzeriapp

Online ordering system for a local pizzeria. Configurable catalog with option groups, prices always quoted on the backend, anonymous checkout with price snapshots and an admin panel.

  • Price is never computed on the client. POST /api/orders/quote validates product, options and ownership on the backend and recalculates everything before creating the order.
  • Each order line stores a snapshot of product_name, unit_price and options as JSONB: if the price changes tomorrow, past orders do not. The insert of orders + order_items runs inside a transaction.
  • 8 test suites with Vitest + Supertest. app.ts is split from index.ts so the API can be tested without binding a port. Raw SQL with node-pg-migrate and a repositories/ layer instead of an ORM.
TypeScriptReact 19Express 5PostgreSQLZodVitestSupertestDocker

After inactivity, the first load may take ~20–30s (Render Free).

Screenshot of Job Pulse

Job Pulse

Deployed job-market intelligence: collects technical listings with Playwright, normalizes them in PostgreSQL and surfaces them in a dashboard with stats by source, seniority, contract type and salary.

  • FastAPI with a repository pattern: SQL is encapsulated outside the routes, so the API can be tested end to end without touching the real database.
  • Backend covered by 6 test files and frontend by 10 suites over stats, filters, detail and pagination. The scraper runs in loop mode and filters by country; FastAPI serves the SPA itself.
  • Alembic migrations and GitHub Actions CI with separate workflows for backend, frontend, scraper, scheduled scrape, backup and health check.
PythonFastAPIPostgreSQLPlaywrightReactTypeScriptDockerGitHub Actions

After inactivity, the first load may take ~40s (Render Free).

Screenshot of Nicommerce

Nicommerce

Full e-commerce platform built around a clear buying experience: manageable catalog, persistent cart and multi-step checkout with confirmation.

  • Transactional checkout in PostgreSQL: the order and the inventory update are written in the same transaction, so stock never desyncs if something fails.
  • Public catalog without login, with search, categories, tags and price range. Sign-in is only required to buy, view history and administer.
  • Backend hardening: Helmet, rate limiting, input validation and JWT with bcrypt. Admin panel for products, users and orders.
React 19TypeScriptNode.jsExpress 5PostgreSQLJWTDocker

The page opens quickly; the catalog may take ~20–30s if the API was idle (Render Free).

Screenshot of Climate Dashboard

Climate Dashboard

Real-time environmental monitoring with ESP32 sensors. From sensor to dashboard: API-key ingestion, cloud Postgres and historical charts.

  • The full data path: the ESP32 + SHT3X firmware does POST /api/ingest with an API key into Neon, and Next.js reads it to render the dashboard. Firmware lives in firmware/esp32-sht3x, inside the same repo.
  • The device samples every 5 min but uploads in batches every 30: Neon suspends compute after ~5 min idle, so writing every 5 min burned the 100 free CU-hours in ~16 days. Batching brings it down to ~33 CU-h/month.
  • Raw data kept for 30 days with older history served from hourly aggregates. Charts with threshold lines, today-vs-yesterday comparison and weather / air-quality widgets via Open-Meteo.
Next.jsTypeScriptPostgreSQLTailwind CSSRechartsFramer Motion

More projects

Screenshot of Reservas SaaS

Reservas SaaS

Calendly-style booking platform. Providers manage services and schedules from a dashboard; clients book through a public link without signing up.

React 19TypeScriptExpress 5PostgreSQLJWTTailwind CSS

After inactivity, the first load may take ~20–30s (Render Free).

Job Tracker

Job application tracker designed to organise a remote job hunt: authentication, full CRUD and a dashboard showing progress.

Next.jsTypeScriptSupabaseTailwind CSS
Screenshot of Solar System 3D

Solar System 3D

Interactive solar system built with Three.js: custom GLSL shaders, particle system, bloom post-processing and real-time planet selection.

Three.jsGLSLJavaScriptVite
Screenshot of Astroblog

Astroblog

Static digital zine about art, poetry, technology and hacktivism. Dark aesthetic, monospace typography, deployed on GitHub Pages.

AstroTypeScriptMarkdownGitHub Pages

Climate Monitor (Firmware)

C++ firmware for ESP32 with an SHT3X sensor. Samples every 5 minutes, syncs over NTP and uploads readings in batches every 30 minutes so the database can idle. OTA is disabled because the ingest key is compiled into the binary.

C++PlatformIOESP32HTTPNTP

About

I work across the stack and I care most about the part nobody sees: backend validation, the transactions that prevent half-written records, the tests that let you sleep at night.

I come from the hardware side — I write firmware for ESP32 and ESP8266 with environmental sensors — and that taught me how to debug when there is no console to save you. On the web I focus on building simple, useful tools that load fast.

I am looking for a remote team where I can grow as a developer and ship careful code from day one.

Technologies I work with

Frontend

  • React
  • Next.js
  • TypeScript
  • Astro
  • Tailwind CSS
  • Three.js

Backend

  • Node.js
  • Express
  • PostgreSQL
  • Supabase
  • Python
  • FastAPI

Tooling

  • Docker
  • Git
  • Linux
  • Vitest
  • Playwright
  • GitHub Actions

Hardware

  • C++
  • ESP32
  • ESP8266
  • PlatformIO
  • I2C
  • IoT

Contact

I am open to job opportunities and collaborations. If you have a project in mind, write to me and I will reply the same day.

contacto@hmoreira.dev