Available for work

John Salas

Full Stack Developer

I build web and mobile applications end to end, focused on fast, accessible and well-crafted experiences.

developer.ts
const dev = {
  role: "Full Stack",
  stack: ["React", "Next.js", "FastAPI"],
  location: "Bogotá, CO",
  available: true,
};

About

A bit about who I am

I'm a full-stack developer based in Bogotá. I build complete projects end to end: a restaurant management system with a backend, database and mobile app, a web game built with React, and a party-game app in Flutter.

I'm comfortable on both sides of the stack. On the frontend I work with React, Next.js and Tailwind; on the backend with Python, FastAPI and SQL, including real-time features with WebSockets and database migrations.

I've worked as a freelancer on several projects, building APIs, admin dashboards and tailored solutions for clients across different industries. I enjoy solving real problems, learning constantly and shipping clean, quality code.

Currently learning

  • Advanced TypeScript
  • Testing (Vitest / Playwright)
  • Architecture & patterns
  • Docker in production
John Salas

Tech stack

My working stack

The tools I build with, grouped by where I use them in an app.

Frontend

  • HTML
  • CSS
  • JavaScript
  • TypeScript
  • React
  • Next.js
  • Tailwind CSS

Backend

  • Python
  • FastAPI
  • REST APIs
  • WebSockets
  • Alembic

Databases

  • PostgreSQL
  • SQL
  • SQLite

Mobile

  • Flutter
  • Dart

Tools

  • Git
  • GitHub
  • Docker
  • VS Code
  • Figma
  • Vercel

Projects

Things I built end to end

Three complete projects: one full-stack, one web frontend and a mobile app. Each solves a real problem.

Featured
Full-stack

Restaurant Management System

A complete platform to run a restaurant's operation: tables, orders, kitchen dispatch, menu, sales, cash, inventory and staff, with role-based authentication and real-time notifications.

It unifies the register, the kitchen and the waiters —usually spread across separate tools or paper— and syncs them live with WebSockets: an order taken at the table shows up instantly in the kitchen and is recorded without double entry.

Try it yourself

user:
demo
password:
demo

Everything you create with the demo account is automatically deleted at 00:00 the next day.

  • Python
  • FastAPI
  • PostgreSQL
  • WebSockets
  • Alembic
  • Flutter
Frontend web

Rock, Paper, Scissors, Lizard, Spock

Interactive web game with an 8-bit retro look: single-player and real-time multiplayer modes. A multi-screen flow (start, game room and game over), the full logic of the five moves and a match scoreboard. You can play it right here.

A fully playable product that showcases state management, screen routing and real-time multiplayer with Firebase. It's embedded in this portfolio, so you can try it without leaving the site.

  • Next.js
  • React
  • Firebase
  • NES.css
Play now
Mobile

Spicy Card

A cross-platform mobile party-game app of dares, with difficulty levels (easy, medium, hard and extreme) and region-localized content: Colombia, Chile, Brazil and Spain.

It organizes the dare game that's usually improvised: filter by difficulty and country. Built with a layered architecture (models, services, data and screens), easy to extend with new dares or regions.

  • Flutter
  • Dart
  • Android
  • iOS

Journey

Experience & projects

My experience comes from freelance work and personal projects, built end to end.

  1. Restaurant Management System

    2026

    Personal project · Full-stack

    • Designed the FastAPI API with role-based authentication and a PostgreSQL data model.
    • Implemented real-time sync with WebSockets across tables, kitchen and register.
    • Built the Flutter mobile app consuming the API, with a layered architecture.
  2. Web game — Rock, Paper, Scissors, Lizard, Spock

    2025

    Personal project · Frontend

    • Developed the full game in Next.js and React: state, screen routing and scoreboard.
    • Polished the experience with a consistent retro look and reusable components.
  3. Mobile app — Spicy Card

    2025

    Personal project · Mobile

    • Created a cross-platform Flutter app with content filterable by difficulty and country.
    • Split the logic into layers (models, services, data, screens) to make it extensible.

Skills

My skill level

Frontend (React / Next.js)Solid
Backend (Python / FastAPI)Solid
UI / Responsive designSolid
APIs & real-timeSolid
Mobile (Flutter)Solid
Databases (PostgreSQL / SQL / SQLite)Solid
Git / GitHubSolid

Contact

Let's talk

I'm open to freelance projects and new opportunities. If you want to work with me or see more of my code, drop me a line.

Your email client will open with the message pre-filled.

You can also find me at:

Bogotá, Colombia · Available for work