Skip to content

Nicaragua · Remote

I own the boundary between the frontend and everything behind it.

Full stack developer, four years in. I design and maintain the REST APIs, integrations, and server-side logic that React apps depend on — currently architecting backend systems at Top Floor Marketing.

POST /engineers/martin-tercero
200 OK 142ms application/json
{
"role": "Full Stack Developer",
"focus": "backend architecture",
"owns": ["REST APIs", "system design", "CI/CD"],
"stack": ["NestJS", "React", "Supabase"],
"based": "San Marcos, NI",
"languages": ["es", "en"]
}

Currently

Feb 2025 — present

Backend Developer — Top Floor Marketing

MVP 2025 Awarded most valuable player of the software team.

I architect and optimize the server-side logic behind React and Vite client apps, designing the NestJS REST APIs that carry frontend features and third-party integrations. Alongside the feature work I refactor legacy modules, review code, and maintain the CI/CD pipeline — the unglamorous work that keeps response times and availability where they should be.

~20%
faster integration turnaround at Top Floor
4+
years shipping production software
3+
client sites delivered for US & LATAM businesses

Selected work

4 endpoints
WS /serviya/chat 200 OK

ServiYA

No Country · services marketplace MVP · 2024

Full stack — real-time chat module

A marketplace connecting people to home repair professionals. I owned the real-time chat module end to end, frontend and backend, on a two-month sprint cycle.

  • Node.js
  • Express
  • MongoDB
  • WebSockets
  • React
The problem
A marketplace is only useful if both sides can talk. Clients needed to reach professionals about a job without leaving the platform, and the MVP had a two-month window to prove that loop worked.
What I built
The chat module on both sides of the wire: the message gateway and MongoDB persistence in the Node and Express backend, and the React client that consumes it. Conversations are scoped to a service request, so a thread carries the job it belongs to instead of floating free.
What was hard
Keeping message state honest across reconnects. A dropped connection cannot silently lose a message or replay one twice, so ordering and delivery had to hold when the network did not — the part of the feature nobody notices unless it breaks.

Archive

8 earlier builds

Earlier client sites, personal projects, and coursework — kept for range, not weight.

  • 2022 Grupo SEEG

    Corporate site for a Guatemalan company — responsive build that gave them a modern online presence.

  • 2023 Shoppi

    E-commerce front end on the FakeStore API — client-side routing, category filtering, and cart state.

  • 2023 Travel Now

    Responsive travel landing page with a dark mode toggle.

  • 2022 To-Do App

    React to-do app built while learning render patterns and state management.

  • 2022 Movie DB

    Vanilla JavaScript client fetching genres, titles, and descriptions from the MovieDB API.

  • 2021 Music Grid

    CSS Grid layout exercise — a restaurant menu page.

  • 2021 Blog Layout

    Early static layout built with HTML and CSS only.

  • 2021 Batata Bit

    First mobile-first responsive build, done as a clone exercise.

Stack

ES native · EN C1

Backend

  • NestJS
  • Express.js
  • Node.js
  • PostgreSQL
  • Supabase
  • REST API design
  • Auth & authorization

Frontend

  • React
  • Next.js
  • TypeScript
  • JavaScript
  • Tailwind CSS
  • HTML5 / CSS3
  • WordPress (Elementor)

DevOps & tools

  • Git
  • GitHub
  • Docker
  • Vercel
  • Figma
  • ClickUp
  • Trello

AI and Data Analysis

  • Claude Code
  • v0
  • Tableau
  • SQL
  • Google Sheets API

Education & certifications

  • M.S. Information Systems — Data Analytics

    Harding University · GPA 3.4

  • B.A. Computer Science

    Harding University · GPA 3.6 · Walton Scholar

  • Tableau Desktop Specialist

    Verify on Credly ↗
  • TypeScript · Full Stack JavaScript · Supabase

    Platzi certifications ↗