MoraXH logoJorge Mora
Available for roles & freelance

Jorge Mora

I build software end to end — from the data model to the deployed thing.

Mostly self-taught. Spent the last few years shipping AI pipelines, web platforms, and internal tools for teams that actually use them.

Download CV

Mostly self-taught — I learned by building things and breaking them. Started with small automations, ended up designing the architecture for production systems.

Over the last few years I've led the implementation of a talent-management SaaS, an on-device computer-vision pipeline that runs without internet, and internal platforms that replaced years of spreadsheet chaos at a radio news outlet.

I use ML when it's the right tool, and plain code when it isn't. The question I ask before either is: what does this actually need to do?

4+
years building software
12+
projects shipped
4
production systems led
3
domains: AI · web · ops
2025 - Present
Lead Software Engineer
al1A
  • Designed the data model and architecture for a talent-management SaaS from scratch — candidate pipelines, role tracking, RBAC.
  • Set up cloud infrastructure, CI/CD, and microservices. The system was in production before the team grew.
  • Integrated ML and LLM features into the core product, including a resume screening module.
MicroservicesReactNode.jsPythonDockerCloudCI/CD
2022 - 2025
Software Developer
El Salmantino
  • Built the internal platform for a radio news outlet — journalist scheduling, payroll, commissions, expense tracking, all in one system.
  • Replaced a decade of manual spreadsheets. Editorial and business teams stopped using Excel for operations.
  • Automated Facebook publishing through the WordPress and Facebook APIs, reducing the daily publishing workflow from manual to one click.
PHPLaravelMySQLAPIsWeb ArchitectureNode.js
01

Frontend

From component systems to pixel-level details. React is home, but I've shipped in Astro, Next.js, and Electron too.

ReactTypeScriptNext.jsTailwindAstroElectron
02

Backend

REST APIs, data models, auth flows. I care about what happens when the happy path breaks.

Node.jsPythonPHPFastAPILaravelRESTGraphQL
03

AI / Computer Vision

Trained models, ported them to ONNX, ran them on-device in the browser. I know the whole pipeline.

PyTorchTensorFlowOpenCVONNXWebAssemblyNLPOCR
04

Infrastructure

Docker, cloud, CI/CD. I set up the pipelines so the rest of the team doesn't have to think about them.

DockerKubernetesAWSCI/CDNginxLinuxVercel
05

Databases

Schema design matters more than query tuning, until it doesn't. I've worked with both problems.

PostgreSQLMongoDBMySQLRedisSQLiteVector DBs
06

Tools

Nothing exotic. The tools that stay out of the way.

GitFigmaPostmanBashNotionFirebase
Problem

HR teams were tracking candidates, roles, and pipelines in disconnected spreadsheets — no audit trail, no shared state, frequent mistakes.

Solution

Designed the data model and built the platform from scratch: candidate pipelines, role tracking, role-based access. One system that replaced the spreadsheet sprawl.

Result

Hiring operations centralized before the team grew. The data model handled every edge case that came up in production without structural changes.

al1A
RoleLead architect & full-stack engineer
TypeSaaS product
StatusIn production
ReactNode.jsPostgreSQLTypeScriptMicroservicesDocker
Problem

An optical retailer needed glasses detection from a live camera feed — with no cloud dependency and no latency from a server round-trip.

Solution

On-device CV pipeline: MediaPipe for face landmarks, a custom ONNX model at ~6.2 MB, WASM + WebGPU acceleration. Runs entirely in the browser.

Result

Real-time inference in the browser. No video leaves the device. Works on a phone without an internet connection.

FrameFind
RoleComputer-vision / ML engineer
TypeCV pipeline
StatusPrototype → pilot
PythonOpenCVONNXPyTorchWebAssemblyWebGPUReactTypeScript
Problem

In Mexico, anyone can register a phone line under your CURP without your knowledge. There was no tool to check which lines were registered to you.

Solution

A web app that queries all major carriers and MVNOs in México with a single CURP lookup. Results in real time, no account needed.

Result

A tool people actually share when they're worried about identity misuse. Still getting traffic.

Mis Líneas
RoleFull-stack engineer & designer
TypeWeb app
StatusLive
Next.jsReactTypeScriptTailwind CSS
Problem

NASA's public image archive is massive and the official search tool is too literal — it surfaces what you typed, not what you meant.

Solution

A cleaner interface over NASA's public API. Fast, filterable, designed to let you actually explore the archive.

Result

Something worth bookmarking. The kind of project people share because they want others to find it.

Aether Archive
RoleFull-stack engineer
TypeWeb app
StatusActive
Next.jsReactTailwind CSSNASA APIMotion
Problem

A radio newsroom ran its entire operation across separate spreadsheets — shifts, payroll, commissions, expense tracking, loans. No shared state, constant sync errors.

Solution

One internal platform covering the full ops surface: journalist scheduling, payroll calculations, commissions, expenses, employee loans. Built for real workflows, not demos.

Result

Spreadsheets gone. Three years in production without a major incident. Management got an audit trail for the first time.

El Salmantino Hub
RoleFull-stack engineer
TypeInternal tooling
StatusIn production
PHPLaravelMySQLNode.jsDockerAPIs
Problem

A radio news station managed employee activities and social publishing manually — no unified view of what was happening, no automation.

Solution

A web app integrating WordPress and Facebook APIs: employee activity tracking, newsroom oversight, and one-click social publishing.

Result

Daily Facebook publishing went from a manual multi-step process to a single click. Coordination overhead dropped noticeably in the first week.

Guion App
RoleFull-stack engineer
TypeInternal tooling
StatusDelivered
LaravelPHPjQueryMySQLFirebaseWordPress APIFacebook API
Problem

Building something like Shazam from scratch to understand how audio fingerprinting actually works — CNNs, spectrogram matching, live mic input.

Solution

A real-time music detection system using convolutional neural networks trained on audio fingerprints, with a web frontend for live mic input.

Result

It works. Not production-grade, but the core fingerprinting pipeline identifies songs from a live mic feed with reasonable accuracy.

NeuraZam
RoleML engineer & full-stack developer
TypeAI app
StatusOpen source
AstroDockerPythonTypeScriptPyTorch
Problem

Wanted to build something that runs ML inference in the browser from a live camera feed — ASL recognition was the right scope to make it non-trivial.

Solution

A real-time ASL alphabet classifier using a trained model served through the browser, no backend, just camera input and immediate output.

Result

Runs entirely in the browser. Good enough to demonstrate real-time classification; good enough to build on.

SignSense
RoleML engineer & full-stack developer
TypeAI app
StatusOpen source
AstroDockerPythonTypeScript
Problem

Finding a free classroom or a professor at DICIS meant checking a printed schedule or asking around. Nobody had time for that.

Solution

Scraped the university's scheduling system and built a lightweight tool that shows available classrooms and professors in real time.

Result

Students use it. Apparently it spreads by word of mouth — I find out it's still running when someone DMs me about it.

DICIS Tracker
RoleFull-stack engineer
TypeWeb app
StatusLive
PythonNext.jsWeb ScrapingMotion
Problem

The thermodynamics lab at DICIS had no web presence — students couldn't find schedules, resources, or contact information online.

Solution

A clean web app for the lab: schedules, resources, staff info. Built with the engineering students as the actual users in mind.

Result

The lab has a working web presence. Faculty and students use it regularly.

Thermodynamics Lab
RoleFull-stack engineer
TypeWeb app
StatusLive
AstroTailwind CSSPostgreSQL
Problem

Producing daily weather forecast videos required manual editing — assembling assets, writing scripts, matching narration. Same work, every day.

Solution

A desktop app that takes weather data and automates the full video production pipeline: FFmpeg for rendering, Whisper for speech-to-text, NLP to structure the script.

Result

Daily video production time dropped significantly. The output is consistent in a way that manual editing wasn't.

Weather Video Parser
RoleEngineer & automation architect
TypeDesktop app
StatusDelivered
ElectronPythonFFmpegWhisperNLP
Problem

A small grocery store needed to weigh products and print barcode labels. Every solution on the market was either overkill or tied to a specific POS system.

Solution

A desktop app that connects to the store's scale, reads the weight, and prints formatted labels with barcodes. Nothing more, nothing less.

Result

The store uses it every day. Replaced a manual process that was causing checkout errors.

Weighing System
RoleEngineer
TypeDesktop app
StatusDelivered
ElectronTailwind CSS

Got something to build?
Let's talk.

Open to engineering roles and freelance projects. Email is fastest — I usually reply the same day.