Open to freelance and full-time work

One developer.Whole product.

I'm Gio Majadas. I design, build, and deploy full-stack web, mobile, and AI products on my own, from database to interface.

What I ship with

TypeScript
React
Next.js
NestJS
C#
ASP.NET Core
Python
FastAPI
SQLite
ESP32
Arduino
What I Do

Building Digital Excellence

From concept to deployment, I bring technical expertise and creative problem-solving to every project.

Full-Stack Web Development

Dedicated to build modern, responsive, and production-ready web applications using the latest technologies and best practices.

Back-End Engineering

Dedicated to build robust and scalable backend systems and APIs.

AI Integration

Dedicated to implement AI features that enhance user experience and add value to applications.

Tech Stack

Technologies I Work With

A curated set of languages, frameworks, and tools I use to build modern, performant applications.

Select a skill with a project count to see where I used it.

Programming Languages

Python
C
C++
C#
Java
Go

Frontend

Sass
Motion
GSAP
Three.js

Backend

NestJS
ASP.NET Core
FastAPI

Database

MongoDB

Tools

Arduino IDE
Git
Docker
Jest
OpenCV
Prisma
Postman
Supabase
VS Code
Flagship Projects

Proof of Work

Real projects with real challenges, engineered solutions, and measurable outcomes.

Azurea Hotel Management System

Azurea Hotel Management System

ReactDjangoMySQLTypeScriptTailwind CSS

Problem

Hotels that track bookings by hand lose time on verification and risk selling the same room twice. Cancellations, payments, and guest feedback end up scattered across chats, notebooks, and spreadsheets.

Solution

Azurea puts the whole booking lifecycle in one system: reserve, verify, confirm, cancel, review. Availability is checked server-side so a conflicting booking is rejected before it is saved, and admins manage every room, area, amenity, and report from a single role-gated dashboard.

Server-side availability check on every reservation | Zero double-bookings in test runs | Local API responses under 150ms

View on GitHub
Chatify

Chatify

ReactFirebaseJavaScriptCSSHTML

Problem

Building real-time features usually means standing up and maintaining your own socket server, which is heavy for a small app. Many simple chat clones also lose messages on refresh and give no sense of who is actually available.

Solution

Chatify uses Firebase real-time listeners instead of a custom backend, so messages sync to every connected client as they are written. Auth, presence, and message storage all come from one managed service, which keeps the codebase small and the experience instant.

Live message sync with no page refresh | Full history restored on every login | Zero custom servers to maintain

View on GitHub
WiseWaste

WiseWaste

Next.jsPostgreSQLTypeScriptTailwind CSSReact

Problem

Illegal dumping and missed collections often go unreported because residents do not know who to tell, and local offices have no structured way to see where problems cluster. Reports that do get made vanish with no feedback.

Solution

WiseWaste turns a complaint into a trackable record: a photo-ready, location-tagged report with a visible status. Admins get one queue to triage, and residents can see that their report was received and acted on.

Report in a few taps from any phone | Every report carries coordinates and a visible status | PostgreSQL-backed issue queue

View on GitHub
Printify

Printify

Next.jsPostgreSQLTypeScriptReactTailwind CSS

Problem

Walk-in print shops rely on USB drives, messaged files, and verbal instructions. Orders get mixed up, customers wait without knowing their status, and operators repeat the same clarifying questions all day.

Solution

Printify moves the whole order online. Customers upload a file, set their exact print options, and pay in one flow, while the shop receives a clean, structured order with nothing left to clarify.

Upload to paid order in a single flow | Print options captured up front, no back-and-forth | Live order status for every job

View on GitHub
Savoury

Savoury

Next.jsTypeScriptReactTailwind CSSPostgreSQL

Problem

Good home recipes are buried in social media posts and screenshots that are impossible to search or save. Home cooks have no single place to publish their own dishes and build a following around them.

Solution

Savoury gives recipes a proper home: structured posts that are searchable, savable, and attached to a cook's profile. Server-rendered pages with the App Router keep browsing fast, and indexed PostgreSQL queries keep search responsive as the catalog grows.

Search over 10,000 seeded recipes | Indexed PostgreSQL queries averaging 42ms locally | Server-rendered pages

View on GitHub
Commitly

Commitly

React NativeFirebaseZustandGitHub API

Problem

GitHub's contribution graph only counts pushes, so a day of debugging, studying, or reviewing code looks like a day off. Developers lose streaks and motivation even when they worked, and nothing nudges them back.

Solution

Commitly merges two sources of truth: automatic GitHub commit data and manual entries for everything else. One calendar, one streak, and coaching prompts that keep the habit going on days the graph would stay empty.

Streaks combine GitHub and manual activity | Instant local state with Zustand | Firebase sync across sessions

View on GitHub
PrintBit

PrintBit

HTMLCSSTypeScriptNode.jsExpress.jsSQLiteC# Worker ServicePowerShell

Problem

Campus print shops mean long queues, staff-dependent hours, and students passing documents around on shared USB drives. Cash-only service and manual handling slow everyone down and leave private files exposed.

Solution

PrintBit is an unattended kiosk that handles the whole transaction: upload, configure, pay in coins, and collect, with change returned automatically. A Node.js service coordinates coin hardware and printing, and files are deleted after the job so nothing private is left behind.

Coin verification under 1 second | Hardware, payment, and print pipeline working end to end | Files deleted after every job

View on GitHub
SariSari

SariSari

React NativeExpoSQLite

Problem

Most sari-sari stores run on memory and a notebook. Owners cannot tell which items actually earn money, and utang entries get forgotten or disputed. Existing POS apps assume stable internet and a laptop, which most stores do not have.

Solution

SariSari runs entirely on the owner's phone with local SQLite storage, so it works with no signal and no subscription. Inventory, sales, and utang are tracked in one place, with export and backup as a safety net.

Fully functional with zero connectivity | Local SQLite queries under 100ms | Built for low-end Android phones

View on GitHub
My Journey

Experience Timeline

A timeline of key milestones in my development career — from academics to real-world projects.

2024 - Present

Full-Stack Developer

Building web and mobile products on my own, from database schema to deployed interface, with React, Next.js, React Native, and NestJS.

2024

Started Freelancing

Took on my first freelance projects, building real applications for real clients.

2023

Information Technology Student

Enrolled in Laguna University for a Bachelor of Science in Information Technology, specializing in System Development.

Open Source

GitHub Activity

A snapshot of my open-source contributions and the languages I work with most.

GioMjds's GitHub Stats
GioMjds's Top Languages
Open to Collaborate

Let's Build Something Amazing Together

Whether you have a project in mind or just want to chat about technology, I'd love to hear from you.