Portrait of Juan Martín

Juan Martín

Computer Science graduate — Missouri Valley College

I build practical mobile, web and AI products, turning complex problems into simple experiences.

About me

I am a Computer Science graduate from Missouri Valley College with a product-focused approach to software development. I build complete applications across mobile, web, backend and deployment, with a special interest in computer vision and generative imaging. As a former college basketball player, I bring discipline, competitiveness and teamwork to every project.

Technologies

Languages

  • TypeScript
  • JavaScript
  • Python
  • Swift

AI / Generative Imaging

  • Gemini / Imagen
  • DALL·E
  • FLUX.1
  • Stable Diffusion
  • LoRA
  • ControlNet
  • Real-ESRGAN
  • PyTorch
  • OpenCV

Mobile

  • React Native
  • Expo
  • iOS
  • EAS
  • Live Activities
  • WidgetKit

Frontend

  • React
  • Astro
  • Vite
  • Tailwind CSS
  • Redux Toolkit
  • Three.js

Backend / Data

  • FastAPI
  • Supabase
  • MySQL
  • PostgreSQL
  • SQLAlchemy
  • AsyncStorage

Cloud / DevOps

  • AWS EC2
  • Amazon S3
  • CloudFront
  • Amazon SES
  • Docker
  • CI/CD
  • Vercel

AI Platforms / APIs

  • Replicate
  • fal.ai
  • Google GenAI
  • OpenAI API
  • Resend
  • Stripe
  • Twilio

Testing / Quality

  • Playwright
  • Pytest
  • React Testing Library
  • ESLint

Tools

  • Git
  • Xcode
  • VS Code
  • Linux
  • Docker Compose
  • systemd

Professional work

Systems built at Rollup

Full-stack products, applied AI and deployment systems, with a focus on turning generative images into production-ready assets.

Project case study

Measurely AI · High-Resolution Slab Generation

PythonFastAPIGenerative AILoRAControlNetReal-ESRGANReactAWS

Problem

Generic AI images lack the consistency, detail and resolution required for industrial slab printing.

Solution

A catalog-aware generation and enhancement pipeline that produces realistic, print-ready stone designs at 4K and 8K.

Structure & architecture

  • React and FastAPI manage projects, generation jobs, assets and orders.
  • Prompt orchestration grounds Imagen, DALL·E and FLUX results in the company's stone catalogue.
  • A custom LoRA and ControlNet masks specialize textures and guide vein composition.
  • NVIDIA L4 jobs combine Real-ESRGAN and tiled diffusion for detailed 8K output.
  • Post-processing creates print-ready files; tested releases deploy through CI/CD.

Libraries & purpose

  • FastAPI, Uvicorn and Pydantic — typed asynchronous backend.
  • PyTorch, Diffusers and Safetensors — custom LoRA inference.
  • Imagen, DALL·E, FLUX and ControlNet — generation and composition control.
  • Real-ESRGAN, Pillow and OpenCV — restoration and print preparation.
  • React, TypeScript and Three.js — dashboard and material previews.
  • SQLAlchemy and MySQL — operational persistence.
  • Playwright — end-to-end testing.

Backend & services

  • AWS EC2 and NVIDIA L4 — application and GPU processing.
  • S3 and CloudFront — durable asset storage and delivery.
  • Gemini, OpenAI, Replicate and fal.ai — interchangeable AI providers.
  • MySQL, Stripe and SES — data, payments and email.
  • Automated CI/CD — quality gates and repeatable deployment.

Project case study

Slabware · Rollup Delivery Portal

ReactReduxFastAPIPythonMySQLAWSOffline-first

Problem

Fragmented delivery information makes orders difficult to track, especially with unreliable field connectivity.

Solution

A role-based portal that centralizes scheduling, driver workflows, documentation and proof of delivery, including offline use.

Structure & architecture

  • React and Redux provide role-specific workflows and persistent sessions.
  • IndexedDB queues field submissions offline and synchronizes them later.
  • FastAPI and asynchronous MySQL power delivery, document and authentication APIs.
  • PDF, signature and image tools capture proof of delivery.
  • Automated builds deploy tested front-end and backend revisions.

Libraries & purpose

  • React, Redux Toolkit and Router — portal UI and persistent state.
  • IndexedDB — offline delivery queue and synchronization.
  • FastAPI, Pydantic and SQLAlchemy — validated backend and data layer.
  • Google Maps and scheduling tools — delivery context and planning.
  • jsPDF, ReportLab and Signature Canvas — documents and proof of delivery.
  • Pandas and OpenPyXL — operational reporting.
  • Pytest and React Testing Library — automated testing.

Backend & services

  • Slabware and MySQL — order and fulfillment data.
  • AWS S3 — delivery documents and evidence.
  • Twilio, email and Web Push — operational notifications.
  • Automated CI/CD — repeatable production updates.

Project case study

Newsletter Infrastructure · Listmonk

ListmonkAWS EC2DockerPostgreSQLResendAmazon SESCI/CD

Problem

The business needed reliable email delivery without losing control of subscriber data.

Solution

I designed and implemented the entire newsletter platform: deploying Listmonk in the cloud, creating the company's marketing email templates and organizing subscribers into a clear, maintainable structure.

Structure & architecture

  • The complete platform runs in the cloud on an AWS EC2 instance.
  • Listmonk and PostgreSQL run as isolated Docker containers with persistent storage.
  • Marketing templates provide reusable, consistent layouts for the company's newsletter campaigns.
  • Subscribers are organized into structured lists and segments for accurate targeting and maintainable campaign management.
  • Environment-based configuration keeps secrets outside the image.
  • Resend and Amazon SES provide outbound delivery.
  • AWS hosting, persistent storage, health checks and backups keep the service recoverable.
  • CI/CD validates and deploys repeatable container updates.

Libraries & purpose

  • Listmonk — subscriber management, segmentation, campaigns, templates and delivery analytics.
  • Docker and Docker Compose — reproducible application/database environments and upgrades.
  • PostgreSQL — persistent subscribers, lists, templates, campaigns and event data.
  • SMTP integration — provider-neutral connection between Listmonk and the delivery service.

Backend & services

  • Resend — managed email sending and domain-level deliverability.
  • Amazon SES — AWS email delivery and sending infrastructure.
  • AWS EC2 — cloud compute, networking and the production host for the containerized stack.
  • Automated CI/CD — controlled configuration checks and repeatable container releases.

Independent work

Selected Projects

Project case study

Microlearn

React NativeExpoTypeScriptSupabasePython

Problem

Traditional learning often requires more time than people have available.

Solution

A mobile app that turns spare moments into short, source-backed lessons with saved cards, history and learning streaks.

Structure & architecture

  • Cross-platform React Native client with native iOS and Android builds managed through Expo.
  • Personalized card feed with saved content, progress, streaks and reminders.
  • Supabase authentication and synchronized progress protected by row-level security.
  • A separate Python content pipeline extracts, deduplicates and publishes lessons from open, verifiable sources.

Libraries & purpose

  • React Native and Expo — cross-platform mobile application.
  • Supabase SDK — authentication, data and synchronized progress.
  • Expo media and notification modules — lesson playback and reminders.
  • AsyncStorage — local preferences and caching.
  • Python, httpx and Pydantic — validated content ingestion pipeline.

Backend & services

  • Supabase — authentication, Postgres data and per-user access controls.
  • Expo Application Services — iOS and Android builds.
  • Python pipeline — structured lesson generation from verifiable sources.

Project case study

Websites for Local Businesses

AstroTypeScriptTailwind CSSSEOi18n

Problem

Local businesses need fast websites that make their services and contact options easy to find.

Solution

High-performance Astro websites tailored to each brand, with clear services, bilingual content and direct enquiry actions.

Structure & architecture

  • Static, component-based Astro architecture optimized for speed, SEO and low-maintenance hosting.
  • Reusable responsive components prioritize services, trust and contact actions.
  • Diamond includes English/Spanish routes and localized SEO metadata.

Libraries & purpose

  • Astro 7 — static site generation and reusable page components.
  • Tailwind CSS 4 — responsive layout and the Farmaferraz53 visual system.
  • TypeScript — typed component properties and maintainable front-end code.
  • Astro View Transitions — smoother navigation across Diamond's localized pages.

Backend & services

  • Static deployment — fast, inexpensive hosting without a backend.
  • SEO and localized routes — discovery in each target market.
  • Maps, WhatsApp and social links — direct customer enquiries.
View Diamond Countertops

Project case study

Mesurely · E-Business Card Web

ReactTypeScriptViteTailwind CSSSupabaseStripePlaywright

Problem

Paper business cards are easy to lose and provide no measurable follow-up.

Solution

A digital identity platform for creating profiles, sharing through QR/NFC, collecting leads and managing subscriptions.

Structure & architecture

  • React single-page application split into a public marketing surface, authenticated dashboard and shareable public profiles.
  • Feature modules cover card design, QR/NFC sharing, leads, events and subscriptions.
  • Typed API modules separate domain operations from the interface.
  • Playwright verifies onboarding, card creation, lead capture and checkout.

Libraries & purpose

  • React, TypeScript and Vite — application and profile editor.
  • Tailwind CSS — responsive visual system.
  • Supabase SDK — authentication, data, storage and server functions.
  • qrcode.react and html-to-image — QR and card exports.
  • SheetJS — spreadsheet workflows.
  • Playwright — end-to-end testing.

Backend & services

  • Supabase — authentication, Postgres, storage and backend functions.
  • Stripe — checkout and subscriptions.
  • Vercel — deployment and analytics.
  • Apple/Google Wallet, QR and NFC — profile sharing.
View live project

Learning by building

Mobile Apps

Two apps I designed and developed to learn React Native through real, native mobile experiences.

Project case study

CustosNotes

React NativeExpoTypeScriptSwift

Problem

Important notes disappear in lists, while capturing them can require too many steps.

Solution

A private, voice-first app that keeps notes visible through reminders, widgets, Live Activities and Dynamic Island.

Structure & architecture

  • Single-screen React Native flow: hold, speak and release.
  • Local storage keeps notes private and available offline.
  • Swift targets provide Control Center controls, widgets and Live Activities.
  • Calendar, voice and notification modules handle scheduling and capture.

Libraries & purpose

  • React Native and Expo — mobile application.
  • React Native Voice — speech-to-text capture.
  • Expo Calendar and Notifications — scheduling and reminders.
  • Expo Widgets and Apple Targets — native iOS surfaces.
  • AsyncStorage — local notes and settings.

Backend & services

  • No backend or account — notes remain on the device.
  • Apple Speech and Calendar — dictation and optional scheduling.
  • iOS Live Activities, Dynamic Island and Control Center — persistent access.
  • Expo Application Services — App Store builds.
View on the App Store

Project case study

keepbin

React NativeExpoTypeScriptiOS Media Library

Problem

Cleaning a large photo library can feel overwhelming and risky.

Solution

A private swipe-based cleaner: keep right, bin left, undo when needed and confirm before deletion.

Structure & architecture

  • React Native cards present one photo or video at a time.
  • Swipe decisions enter an undoable queue before iOS confirms deletion.
  • A media layer handles previews, metadata and safe batch deletion.
  • Local storage remembers progress, pending items and recovered space.

Libraries & purpose

  • React Native and Expo — mobile interface and runtime.
  • Expo Media Library, Image and Video — private asset access and previews.
  • Gesture Handler and Reanimated — swipe interactions.
  • AsyncStorage — review history and bin state.
  • Expo File System — storage calculations.

Backend & services

  • No backend, account or upload — decisions remain on-device.
  • iOS Photo Library — permissioned access and confirmed deletion.
  • Expo Application Services — App Store builds.
View on the App Store

Field-related hobbies

Building and learning in my homelab

A practical environment where I explore networking, privacy, media infrastructure and machine learning through self-hosted services.

Project case study

Pi-hole · Network-wide DNS filtering

Pi-holeDNSLinuxNetworkingPrivacy

Problem

Many home devices cannot use browser extensions to block ads and tracking.

Solution

Pi-hole filters DNS requests centrally and provides visibility into network-wide activity.

Structure & architecture

  • Home devices send DNS queries to a single local Pi-hole endpoint instead of contacting public resolvers directly.
  • Pi-hole FTL checks each domain against local and subscribed filtering rules.
  • Blocked requests stop locally; allowed queries are cached and forwarded upstream.
  • The dashboard shows client activity and helps tune filtering rules.

Libraries & purpose

  • Pi-hole FTL — high-performance DNS resolution, caching, filtering and query statistics.
  • Gravity database — combines subscribed blocklists with local allow/deny rules.
  • Web interface — monitoring, client inspection and day-to-day rule management.

Backend & services

  • Local DNS — one filtering policy protects the whole LAN without client-side extensions.
  • Upstream DNS — resolves allowed requests after Pi-hole applies local policy.
  • DHCP/router DNS configuration — directs home devices through the filtering service.

Project case study

Jellyfin · Personal media server

JellyfinFFmpegLinuxMedia ServerSelf-hosting

Problem

Personal media spread across files and drives is difficult to organize and play consistently.

Solution

Jellyfin organizes my film library and streams it privately to web, mobile and TV clients.

Structure & architecture

  • Media storage is mounted into the Jellyfin server and organized into a dedicated movie library.
  • Library scans add artwork, descriptions, codec and subtitle metadata.
  • Local users access one shared catalogue from different clients.
  • Files use Direct Play when possible and FFmpeg transcoding when required.

Libraries & purpose

  • Jellyfin Server — library indexing, users, metadata, playback decisions and streaming APIs.
  • jellyfin-ffmpeg — remuxing, audio conversion and video transcoding when a client cannot play the original file.
  • Jellyfin clients — a consistent viewing experience across browsers, phones, computers and televisions.

Backend & services

  • Local media storage — retains the original movie files and directory structure.
  • Metadata providers — add searchable artwork and title information to the private catalogue.
  • Local user management — controls library and playback access without requiring a third-party streaming account.

Project case study

Trading Signals · Crypto quant system

PythonPandasscikit-learnCoinbase APITelegramDockerGitHub Actions

Problem

Monitoring multiple crypto assets manually makes consistent analysis and risk control difficult.

Solution

A homelab system that combines market indicators, anomaly detection and risk rules, then sends human-approved BUY/SELL signals through Telegram without executing trades.

Structure & architecture

  • Coinbase supplies ten configurable markets analyzed on 1h and 4h timeframes every 15 minutes.
  • Bollinger Bands, RSI, MACD, ATR and EMA trends feed a configurable confluence engine.
  • Per-asset Isolation Forest models detect anomalies and retrain weekly or after drift.
  • News sentiment can pause entries; risk rules limit position size, open trades and total exposure.
  • Telegram delivers charts and approval buttons; outcomes update a Health Score that can bench weak strategies.
  • Docker runs the service on my NAS; GitHub Actions deploys privately through Tailscale with backup and rollback.

Libraries & purpose

  • Pandas, NumPy and ta — market data and technical indicators.
  • scikit-learn — normalized Isolation Forest anomaly models.
  • Plotly, Kaleido and Matplotlib — Telegram-ready charts.
  • schedule and PyYAML — recurring jobs and configuration.
  • Pytest — data, signal, risk and backtest coverage.

Backend & services

  • Coinbase and CryptoCompare — market data and news sentiment.
  • Telegram Bot API — signals, reports and manual approval.
  • Docker Compose — health-checked NAS runtime with persistent state.
  • GitHub Actions, Tailscale and SSH — private deployment and rollback.
  • Joblib, JSON and Backtest CLI — models, performance history and validation.
View source on GitHub

Contact

Feel free to call, email or connect with me on LinkedIn.