Projects

Case studies of the systems I have built and run, the other projects, and an archive of public repositories

Products

5

Products built in a team or on my own, with their code and, when there is one, their demo.

  • SmartPot overview with average crop health, crops online, alerts and the assistant's suggested actions for all crops

    SmartPotTech · university team project

    SmartPot

    Sep 2024 – Present

    IoT platform that monitors and automates hydroponic crops, split into 11 repositories and built by a team of five in which I'm the lead developer.

    • MicroPython firmware for the ESP32 that publishes sensor readings over MQTT with TLS, plus a simulator that feeds the demo with real weather and no hardware.
    • Spring Boot 4 API on Java 21 with MongoDB, Redis, JWT and OpenAPI, 130+ JUnit tests, which checks who owns each crop and each device.
    • FastAPI and scikit-learn assistant that diagnoses each crop with an expert system, fuzzy logic and models that forecast when a reading will leave its range.
    • React 19 and TypeScript PWA, built with Vite 8 and Tailwind 4, that shows each reading against its ideal range and lets the assistant act.
    • React 19
    • TypeScript
    • Vite
    • Tailwind CSS
    • Spring Boot 4
    • Java 21
    • MongoDB
    • Redis
    • JWT
    • JUnit
  • GoPoli in the browser during a trip, with the route drawn over the map of Medellín and the trip in progress panel beside the side menu

    GoPoli · university team project

    GoPoli

    Mar 2026 – Present

    Ride-sharing platform for students at Politécnico Colombiano Jaime Isaza Cadavid, where I'm the main contributor.

    • Next.js 16 PWA with Leaflet maps, OSRM routes that fall back to a straight line when the router fails, and a chat for every trip.
    • Spring Boot 4 REST API with JWT and BCrypt, with business rules in small, tested policy classes.
    • A PostgreSQL 16 image that owns the schema, which the API validates against and refuses to start on a mismatch.
    • I split the original repository into one per component, keeping each one's history, and scanned the whole history for leaked secrets.
    • Next.js 16
    • React 19
    • TypeScript
    • Tailwind CSS
    • Leaflet
    • OSRM
    • Spring Boot 4
    • Java 17
    • PostgreSQL 16
    • JWT
  • PepperCRM's real frontend with its repository's sample data, showing the task board with To Do, In Progress and Done columns, and the menu of leads, contacts, deals, products, vendors and quotes.

    PepperTechDev · team product

    PepperCRM

    Feb 2025 – Nov 2025

    A CRM built by a team of four to manage leads, tasks and communications, where I wrote almost all of the backend.

    • Spring Boot API on Java 17 organized by business modules such as users, leads, tasks, tags, comments, files, messages and email.
    • Security with Spring Security and JWT, a rate-limiting filter and CORS configured per environment.
    • MongoDB Atlas as the database, Redis as the cache and an asynchronous mail service for notifications.
    • React and Vite frontend with a kanban board to move leads between stages, plus task management.
    • Java 17
    • Spring Boot
    • Spring Security
    • JWT
    • MongoDB Atlas
    • Redis
    • Swagger
    • React
    • Vite
    • Tailwind CSS
  • This portfolio's real home page in the full-stack view, with availability, name, role, summary and the profile switcher.

    Personal project

    MyPortfolio

    Jan 2026 – Present

    This site is a bilingual React and TypeScript portfolio with prerendered pages, a view per role, a page for every project and an assistant that answers in the browser.

    • Static prerendering of every view and every project, with per-route SEO, structured data, a sitemap and Open Graph images.
    • Each section loads its code and its copy separately, under budgets that CI checks for the startup JavaScript, the weight of each chunk and what the first paint needs.
    • Six role views that rewrite the copy, reorder the sections and bring forward what each profile looks for.
    • The GitHub figures come, on every CI build, from the stats my profile repository generates every day.
    • React 19
    • TypeScript
    • Vite 8
    • Tailwind CSS 4
    • SSG
    • Vitest
    • Playwright
    • Lighthouse CI
    • Docker
    • Nginx
    View the projectPrivate code
  • Taurus's real frontend with sample data, showing the AG Grid aggregate tables of quotes, new business, conversion and premiums by tenant and by agent.

    TaurusSebastian-s · technical test

    Taurus Technical Test

    Nov 2024 – Dec 2024

    A data technical test I took from raw CSV files to a metrics API and an interactive dashboard.

    • Loading the CSV files into MySQL and MariaDB, with exploratory analysis in Pandas inside a notebook.
    • FastAPI metrics API with async SQLAlchemy that groups the data by tenant, agent and state.
    • React and TypeScript dashboard with an AG Grid table to explore the records.
    • Plotly.js charts to compare the metrics of each group.
    • Python
    • FastAPI
    • SQLAlchemy
    • Pandas
    • Jupyter
    • MySQL
    • MariaDB
    • React
    • TypeScript
    • Vite

Work

12

What I built at the companies where I work and have worked. The code is private and clients stay anonymous; each page explains the architecture.

  • Recreation of an integration service's OpenAPI documentation, with the form and CRM routes, the academic offer, the catalogs and the background jobs, and an example 202 response with its idempotency key.Recreated with fictional data

    TIVENOS · education technology

    Integration Platform

    Jun 2025 – Present

    20+ FastAPI services that keep Zoho CRM in sync with the academic systems of 15+ institutions in Latin America and Spain.

    • One service per institution on a shared standard, with logic-free routers, controllers that normalize the data and a single access layer for each external system.
    • Connects PeopleSoft Campus Solutions over SOAP with WS-Security, SQL Server databases behind a VPN, CSV files over FTP, REST APIs and webhooks.
    • Long syncs answer 202 Accepted, run in the background and leave a record of every run in the CRM with its outcome and duration.
    • The newest services use idempotency keys, staggered retries when Zoho answers 429, jobs persisted in PostgreSQL and secrets encrypted with AES-256-GCM.
    • Python
    • FastAPI
    • Pydantic
    • uv
    • PostgreSQL
    • SQL Server
    • SOAP
    • Zeep
    • Zoho CRM
    • Deluge
    Case studyPrivate code
  • Recreation of the Grafana dashboard of the integration services, with 26 Prometheus jobs, 18 uptime probes, 12 alert rules, requests and latency per service, the state of each probe and recent Loki logs.Recreated with fictional data

    TIVENOS · infrastructure

    Observability Platform

    Jun 2026 – Present

    The stack that watches the integration services and the servers they run on, with metrics, logs, traces, probes and alerts in one place.

    • Prometheus scrapes 26 jobs across the instrumented FastAPI services, the containers through cAdvisor, the machines through Node Exporter and Nginx through its exporter.
    • 18 Blackbox Exporter probes check from outside that every service and every domain answers, and that their TLS certificates are not about to expire.
    • Promtail ships the container logs to Loki through a read-only proxy of the Docker socket, and Tempo receives the services' OpenTelemetry traces.
    • Grafana holds 4 dashboards (Docker, FastAPI, machine and Nginx) and 12 alert rules, among them 500 errors in the integrations, containers restarting in a loop, disk and CPU, which reach Telegram.
    • Prometheus
    • Grafana
    • Loki
    • Promtail
    • Tempo
    • OpenTelemetry
    • Blackbox Exporter
    • cAdvisor
    • Node Exporter
    • Docker Compose
    View the projectPrivate code
  • Recreation of the price quoter inside a CRM deal, with payment plan, scholarship, partner discount and a promotion cut by the 80% cap, the breakdown of each payment and the buttons for the PDF and for applying the quote.Recreated with fictional data

    TIVENOS · tools for sales teams

    Zoho CRM Widgets

    Oct 2026 – Present

    Five widgets that live inside Zoho CRM to build quotes, enroll, capture leads, book appointments and change programs without leaving the record.

    • A quote builder that simulates the payment plan in the browser, applies discounts within their cap, generates the investment plan PDF and only writes to the CRM on confirmation.
    • A React enrollment assistant that runs, in order, the five Deluge functions that talk to PeopleSoft Campus Solutions, validates the data before each step and translates the academic system's errors.
    • Lead capture from a campaign, one by one or as a bulk import with a template, column mapping and a review before importing.
    • Appointment management on the CRM's events to create, reschedule, cancel and record the outcome, with business permissions that block the action when they cannot confirm a role.
    • JavaScript
    • React
    • Vite
    • Zoho CRM Widget SDK
    • Zoho Extension Toolkit
    • Deluge
    • jsPDF
    • Node.js
    • jsdom
    • PeopleSoft Campus Solutions
    View the projectPrivate code
  • Recreation of the Program step of an admission form, with six cascading lists (unit, level, mode, schedule, term and program) and the summary of the application with the verified phone number.Recreated with fictional data

    TIVENOS · forms for institutional websites

    Admissions and Scholarship Web Forms

    Jun 2025 – Present

    Forms that institutions publish on their websites so an applicant can register, complete the application and upload documents, connected to the CRM through the integration services.

    • A multi-page flow that goes from lead registration to the full application that updates the opportunity, document upload and a thank-you page.
    • Cascading selects that load each institution's offering (unit, level, modality, schedule, term and program) from the academic hierarchy API.
    • A shared script for the CRM's web forms that keeps the UTM parameters in hidden fields and preselects the program from the URL.
    • Versions for undergraduate, graduate and continuing education, plus scholarship and family-relationship forms for the processes that need them.
    • JavaScript
    • HTML
    • CSS
    • jQuery
    • Select2
    • SweetAlert2
    • WordPress
    • FastAPI
    • Zoho CRM
    • Zoho Forms
    View the projectPrivate code
  • Recreation of a SQL client on the snapshot database, with one table per CRM module, a query on the run log and another of deals by stage, with the latest snapshot of each module completed.Recreated with fictional data

    TIVENOS · data

    CRM Snapshots

    Jun 2025 – Present

    A service that bulk-copies Zoho CRM modules into PostgreSQL so they can be analyzed with SQL outside the CRM, and logs every run.

    • Uses Zoho's Bulk Read API to request each module's export, wait for the ZIP file, unpack it and load the CSV into PostgreSQL.
    • Covers the modules an institution's analysis needs, among them leads, deals, contacts, campaigns, notes and users.
    • Every run lands in a log table with the module, the date, the client and its status.
    • The current version is a FastAPI API with key authentication and Prometheus metrics, deployed in Docker.
    • Python
    • FastAPI
    • Pydantic
    • SQLAlchemy
    • Zoho CRM Bulk API
    • PostgreSQL
    • Azure
    • Docker
    • Prometheus
    • Bash
    View the projectPrivate code
  • Recreation of the signature generator with a fictional brand and person, with the form on the left and the signature inside an email, the text logo, the contact details and the badge.Recreated with fictional data

    TIVENOS · internal tool

    Email Signatures

    Aug 2026 – Present

    A signature generator for the group's five brands that looks the same in Outlook, Gmail and Apple Mail.

    • A FastAPI and Jinja2 service with a form, a catalog per brand and theme, an .htm download for Outlook and a batch mode that turns a CSV into a ZIP with one signature per person.
    • Every logo ships twice, as a hosted image for modern clients and as the brand name in text for desktop Outlook, which renders with Word.
    • The fallback name is measured with an Arial Bold width table and shrinks one pixel at a time until it fits its column.
    • An audit renders every combination of brand, theme and badge and fails on anything an email client would break.
    • Python
    • FastAPI
    • Jinja2
    • HTML email
    • Docker
    • Prometheus
    Case studyPrivate code
  • Recreation of an admissions landing page for a fictional university with its form, next to the UTM fields that travel with the lead, the Zoho Forms post, the conversion event and the redirect to the thank-you page.Recreated with fictional data

    ADCOM · marketing agency

    University Admissions Funnel

    Feb 2025 – Present

    More than 90 admissions landing pages for five higher-education institutions that send every lead to Zoho CRM with the campaign that brought it.

    • React, TypeScript and Vite landing pages that capture UTM parameters, block double submissions, post to Zoho Forms and send the conversion event to Google Tag Manager.
    • WhatsApp, Meta Ads and Google Ads connected to the CRM through webhooks and REST, with Deluge functions and Zoho Creator apps for the sales teams.
    • Lead contact with AI agents in Dapta.
    • On postgraduate pages, the form asks for the applicant's level of studies and the answer reaches the CRM with the lead.
    • React
    • TypeScript
    • Vite
    • Zoho CRM
    • Zoho Forms
    • Zoho Creator
    • Deluge
    • Google Tag Manager
    • Docker
    • Nginx
    Case studyPrivate code
  • Recreation of a run of a landing page's deploy workflow, with install, build, check, compression, SSH with a pinned host key, two-phase rsync and the check that the public site serves the commit.Recreated with fictional data

    ADCOM · infrastructure

    Landing Page Deployment Platform

    Oct 2025 – Present

    The infrastructure that publishes, watches and maintains 100+ landing pages for several clients on one VPS, without restarting anything on each deployment.

    • Each landing page calls a reusable GitHub Actions workflow that installs, builds, checks the base path, gzips the files, generates WebP images and uploads the result with rsync in two phases.
    • The deployment logs in as a user without a shell, confined with rrsync and with a pinned host key, and each client's Nginx mounts its landing pages read-only.
    • A single Nginx block serves any registered landing page, with assets immutable for a year, uncached HTML, WebP by negotiation and the Google Tag Manager tags injected on the server.
    • Scripts that apply one change to all 106 repositories (deploy workflow, Dependabot policy, environment files) and generate each client's Nginx configuration.
    • GitHub Actions
    • Node.js 22
    • React
    • TypeScript
    • Vite
    • Nginx
    • Docker Compose
    • rsync
    • Bash
    • Python
    View the projectPrivate code
  • Recreation of a fictional lottery's daily results email in an inbox, with one email per day, the date in the subject and the results of eight draws.Recreated with fictional data

    ADCOM · lottery brands

    Hyper-Personalized Email at Scale

    Aug 2025 – Present

    Nightly results for two lottery brands plus welcome and birthday emails, each one carrying the name and segment of the person who receives it.

    • A Python script queries the results API, fills a Jinja2 template that holds only variables and writes the HTML ready for the Amazon SES template.
    • Emails that a subscriber event triggers, such as the welcome and the birthday greeting.
    • Recipients come from a Zoho Analytics view through its bulk export API; each email carries the person's name and segment, and a column of the file can assign another template.
    • When a draw is not published yet, the script exits with its own code and the pipeline retries every 10 minutes, up to 9 times, before sending what was published.
    • Python
    • Jinja2
    • Requests
    • asyncio
    • aioboto3
    • Bash
    • cron
    • Amazon SES
    • Amazon SNS
    • Zoho Analytics API
    View the projectPrivate code
  • Recreation of a Jupyter notebook that bulk-loads leads. It cleans a CSV, creates the Bulk Write API job, waits with a resume point, sums up created, updated and failed records, and links and tags them.Recreated with fictional data

    ADCOM · CRM automation

    Zoho Bulk Operations Toolkit

    Jul 2025 – Present

    Python scripts and notebooks that move large volumes of records in each client's Zoho CRM, across loads, links, tags, deletions and syncs.

    • Splits the CSV files, uploads them as ZIP to the Bulk Write API, creates the jobs, checks their status and resumes them if something breaks.
    • Links, tags and deletes records in bulk from a CSV, and prepares imports in Jupyter notebooks.
    • Syncs the customers of one client's Oracle database with its CRM.
    • Assigns codes and prepares a campaign's SMS sends, and analyzes the segments before each send.
    • Python
    • Jupyter
    • Pandas
    • Zoho CRM API
    • Zoho Bulk Write API
    • Flask
    • Oracle
    • CSV
    • Docker
    View the projectPrivate code
  • Recreation of a fictional agency's listing, with filters by operation, type, city and price, cards with badges and the summary of the last sync with Wasi.Recreated with fictional data

    ADCOM · real estate agency

    Real Estate Landing with a Synced Inventory

    Jul 2026 – Present

    A real estate agency's lead capture site, which shows the properties the company already keeps in Wasi, synced every day before dawn, and takes requests for advice, contact and visits.

    • Every day before dawn, a GitHub Actions workflow downloads the inventory from the Wasi API, publishes only the available properties and, when something changed, commits and starts the deployment.
    • The listing and its filters read a columnar index of 25 fields per property; each property's full record lives in its own file, fetched when its page opens.
    • When a property leaves Wasi, the next sync deletes its detail file.
    • Requests for advice, contact and visits reach a Supabase Edge Function that validates them and stores them in PostgreSQL.
    • React 19
    • TypeScript
    • Vite
    • TanStack Router
    • TanStack Query
    • Tailwind CSS 4
    • Lovable
    • Supabase
    • Supabase Edge Functions
    • PostgreSQL
    View the projectPrivate code
  • Recreation of a notebook that tracks collection campaigns by matching a purchased database against the email and SMS exclusion lists, counting who can be contacted and summing up, per campaign, how many paid.Recreated with fictional data

    Quipux · data internship

    Collection Campaign Automation

    Dec 2022 – Apr 2023

    The scripts and notebooks I wrote during the internship to track the campaigns of the revenue-collection area and clean up its databases.

    • Pandas notebooks for the daily tracking of the campaigns in several cities.
    • Cleaning and joining purchased databases before using them in a campaign.
    • Email and SMS exclusion lists updated with every send.
    • Automatic downloads, filters and file splitters with Python and batch scripts, and generating and fixing the files of each campaign.
    • Python
    • Pandas
    • NumPy
    • Jupyter
    • Excel
    • CSV
    • Batch scripting
    View the projectPrivate code

Education

15

The degree, the diploma, the technical program and high school, one repository at a time.

  • The real confusion matrix of the lettuce disease detector, from the computer vision course, next to its per-class metrics.

    Politécnico Colombiano Jaime Isaza Cadavid · 2022 – 2027

    Computer Engineering

    Feb 2022 – Present

    The whole degree in one GitHub organization, with a repository per course, from the first pseudocode to distributed systems, networks on Cisco hardware, artificial intelligence and computer vision.

    • In distributed and parallel programming, a multiplayer bingo over TCP sockets with threads, a school system in Spring Boot with a GraphQL layer in FastAPI and React, and a Sudoku solved over RMI.
    • In artificial intelligence and data, a CLIPS expert system, fuzzy logic, genetic algorithms, music, wine and image classifiers, and lettuce disease detection with computer vision.
    • In networks and systems, real Cisco routers with OSPF, EIGRP and IPv6, SNMP monitoring, memory and scheduling algorithms on Linux, and ARM assembly.
    • In software engineering, test-driven development in six languages (111 tests), design patterns, SQL and NoSQL databases, and a full-stack store with Spring Boot, React and MongoDB in Docker Compose.
    • Java
    • Python
    • JavaScript
    • TypeScript
    • C++
    • Kotlin
    • C#
    • Spring Boot
    • FastAPI
    • React
  • The first lab's real terminal, with the Nmap scan of all 65,535 ports that finds port 21 open with vsftpd 2.3.4.

    Cybersecurity Diploma · Politécnico JIC · 2026

    Cybersecurity Labs

    Sep 2026 – Present

    Three lab reports from the diploma, from reconnaissance with Nmap to privilege escalation, and the analysis of a cyberattack with its response plan.

    • Lab 1: reconnaissance of a vulnerable machine on an isolated Docker network, with Nmap scans from less to more detail until vsftpd 2.3.4 shows up, and research into its backdoor.
    • Lab 2: the analysis of a phishing attack that ends in double-extortion ransomware, its threats and vulnerabilities, the confidentiality, integrity and availability principles, a role-based access control matrix and a secure cloud architecture.
    • Lab 3: a complete CTF, from reconnaissance and an information leak to authorized brute force with Hydra and privilege escalation, plus a controlled availability test on WordPress with ApacheBench and wrk.
    • Controls aligned with ISO/IEC 27001, the NIST CSF and the SP 800-61 and SP 800-34 guides, and with Colombia's data protection law.
    • Kali Linux
    • Nmap
    • Hydra
    • Gobuster
    • Nikto
    • WhatWeb
    • SearchSploit
    • Exiftool
    • ApacheBench
    • wrk
  • SitePersist's real home page served locally with PHP, with the buttons to sign in as a user or an administrator.

    SENA – IUSH · 2022 – 2023

    Software Programming Technician

    Jan 2022 – Jun 2023

    The technical program's projects, built in a team of two, from a web system to book university spaces to tools in C#.

    • SitePersist, a PHP and MySQL web system to book IUSH spaces and equipment from any device, with a gallery and an inventory.
    • Its admin site, where requests and the inventory are managed, published on Heroku.
    • The documentation of the problem, the goals, the state of the art and the proposal behind the system.
    • VideoToAscii, which turns a video into an ASCII character animation, and a console calculator in C# on .NET 6.
    • PHP
    • MySQL
    • HTML
    • CSS
    • JavaScript
    • Composer
    • Apache
    • Heroku
    • C#
    • .NET
  • The Company Dream's real home page served locally with PHP, showing the menu and the promise of a free digital payroll to start a business.

    Pascual Bravo and INEM · 2019 – 2021

    Technical High School

    Feb 2019 – Nov 2021

    The first projects, built in teams during technical high school, with PHP websites, Excel macros and small programs in Java and Python.

    • PHP, HTML and CSS websites, among them one for a fictional company built as a team and one with a login and a panel to manage prices.
    • A bingo game and a bitmap color converter built in Excel with Visual Basic macros.
    • An Android calculator in Java and a Python program that computes the moves of a chess knight.
    • A Python guide in a Jupyter notebook.
    • HTML
    • CSS
    • JavaScript
    • PHP
    • Visual Basic .NET
    • Excel VBA
    • Java
    • Android
    • Python
    • Jupyter
  • The model's real confusion matrix next to its metrics, with 97.9% accuracy, 65.7% average recall per class and the recall of each of the eight classes.

    Computer Engineering · Computer vision · 2026

    Lettuce Disease Detector

    Jun 2026 – Jul 2026

    An image classifier built on MobileNetV2 that tells healthy lettuce, weeds and six diseases apart, meant for SmartPot, with an evaluation that shows where it fails.

    • MobileNetV2 with transfer learning on Kaggle's Lettuce Diseases dataset, with eight classes.
    • 97.9% accuracy on 2,337 test images, with the confusion matrix and the per-class report kept in the repository.
    • Average recall per class is 65.7%, because the six diseases have between 6 and 30 test images each and the model gets between a third and two thirds of them right.
    • A Python package with training, evaluation and prediction scripts, set up with uv and tested on its configuration and dataset.
    • Python
    • TensorFlow
    • Keras
    • MobileNetV2
    • scikit-learn
    • NumPy
    • pandas
    • Matplotlib
    • Pillow
    • uv
  • Three real outputs of the guide, which are the rescaled radar image, the same image with the Lee filter and the three-class K-Means clustering that separates water, vegetation and buildings.

    Computer Engineering · Computer vision · 2026

    Sentinel-1 Radar Imaging

    Apr 2026 – May 2026

    Ten radar images of a coastal area, filtered, clustered with K-Means and turned into a dataset, plus two restoration models that could not improve on the input.

    • Ten monthly Sentinel-1 images in VV polarization, from May 2025 to February 2026, rescaled and filtered with a 7 × 7 Lee filter.
    • K-Means with k = 3 and k = 4 on the filtered and unfiltered images, and a water versus land mask built from the clusters.
    • The ten dates, aligned and averaged, make a noise-free reference; 512 × 512 patches are cut from each pair for training.
    • In scene classification, ResNet50 with transfer learning reached 99.58% accuracy, while a sequential CNN trained from scratch overfit and collapsed to a single class.
    • Python
    • Jupyter
    • NumPy
    • OpenCV
    • scikit-image
    • scikit-learn
    • TensorFlow
    • PyTorch
    • timm
    • SwinIR
  • The project's real frontend with sample data, showing the school's staff list with each person's document, area, office, employee type and teacher type.

    Computer Engineering · Distributed programming · 2025

    Cambridge School: REST, GraphQL and React

    Sep 2025 – Dec 2025

    A school's areas, offices, classrooms and staff in a Spring Boot API, with a GraphQL layer in FastAPI on top and a React frontend.

    • A REST API in Spring Boot 3 with Java 21, JPA and H2: CRUD for areas, offices, classrooms and staff, and a report of staff per area.
    • Each employee belongs to an area and has an office; they can be administrative staff or teachers, and teachers are either permanent or contractors.
    • A GraphQL layer with FastAPI and Strawberry that calls the REST API with httpx and exposes queries and mutations over the same data.
    • A React 19 and Vite frontend with lists, forms and the report, connected to the API with Axios.
    • Java 21
    • Spring Boot 3
    • Spring Data JPA
    • H2
    • Lombok
    • Python
    • FastAPI
    • Strawberry GraphQL
    • httpx
    • React 19
  • FashionLine's real frontend with sample data, with the product table showing price, category, size, stock and the edit and delete buttons.

    Computer Engineering · NoSQL databases · 2024

    FashionLine: Inventory on MongoDB

    Dec 2024 – Dec 2024

    A fashion store's inventory, with a Spring Boot API with JWT on MongoDB, a React frontend and all three parts packaged as Docker images.

    • A Spring Boot REST API with Spring Data MongoDB, documented with Swagger, with products searchable by name, size and category.
    • Sign-in with Spring Security and JWT; the frontend stores the token, verifies it on load and sends it with every request.
    • A React, TypeScript and Vite frontend with the product table and its create, edit and delete actions.
    • Three Docker images published on Docker Hub, for the API, the MongoDB database with a script that loads initial data, and the frontend.
    • Java
    • Spring Boot
    • Spring Security
    • JWT
    • Spring Data MongoDB
    • MongoDB Atlas
    • Swagger
    • React
    • TypeScript
    • Vite
  • The assignment's real page, with the table of test cases per project, from the JUnit 5 calculators to the CRUDs in C#, Python, React, PHP, Rust and Go.

    Computer Engineering · Testing and configuration management · 2026

    TDD in Six Languages

    Sep 2026 – Sep 2026

    The same CRUD written test by test in C#, Python, React, PHP, Rust and Go, plus the JUnit 5 exercises, in eight suites and 137 test cases that run in Docker.

    • A playlist CRUD built with TDD in six languages, which are C# with xUnit, Python with pytest, React with Vitest, PHP with PHPUnit, and Rust and Go with their own test tools.
    • All six share the model, with a validated entity, an in-memory repository, ids assigned by the repository and two kinds of error, and tests named the same way everywhere.
    • The JUnit 5 guide exercises in Java and Kotlin, and unit versus integration tests with Mockito.
    • A docker-compose file with one service per language that runs the eight suites without installing any SDK.
    • Java
    • Kotlin
    • JUnit 5
    • Mockito
    • C#
    • xUnit
    • Python
    • pytest
    • TypeScript
    • React
  • The agent's real Streamlit dashboard with lettuce selected, showing three anomalies detected and the actions it fires, such as turning on the fans and the water cooler and diluting the solution.

    Computer Engineering · Artificial intelligence · 2025 – 2026

    Artificial Intelligence: From Rules to an Agent

    Sep 2025 – Apr 2026

    The course's four modules, with an expert system and a fuzzy one for candlestick charts, genetic algorithms, models for SmartPot and a reactive agent with its dashboard.

    • An expert system in CLIPS, called from Python with clipspy and with a Tkinter interface, that recognizes bullish and bearish engulfing patterns in two candlesticks.
    • A fuzzy logic system with scikit-fuzzy that uses the candle sizes and the engulfing difference to recommend investing a little, a normal amount or a lot.
    • Genetic algorithms that rebuild an image's color from its grayscale version, and that optimize a skydiver's jump to land on a given point.
    • For SmartPot, a logistic regression that controls the fans and a neural network that doses pH, with desktop and Streamlit versions.
    • Python
    • CLIPS
    • clipspy
    • scikit-fuzzy
    • NumPy
    • scikit-learn
    • Tkinter
    • Streamlit
    • pandas
  • The real Huffman tree the program drew with Graphviz, next to the sizes of the same text original, compressed with Huffman, with RAR and with 7-Zip, and decompressed.

    Computer Engineering · Hardware architecture · 2024

    Huffman Compressor

    May 2024 – Jun 2024

    A desktop app that compresses text with Huffman coding, draws the tree with Graphviz and gives back the identical file on decompression.

    • A PyQt5 window where a .txt file is dropped to compress it, or a .slo file to decompress it.
    • It counts each character's frequency, builds the Huffman tree, generates the codes and writes the result in binary with the tree inside the file.
    • It draws each file's tree with Graphviz, and an installer ships the Graphviz binaries and adds them to the PATH.
    • With a 3,215,616-byte text, the .slo weighs 1,712,850 bytes (53.3%) and decompresses identical to the original.
    • Python
    • PyQt5
    • Graphviz
    • Huffman coding
    • Batch
  • CarSpace's real home page, served locally, showing the menu, the sign-in button and the aerial photo of a parking lot by the sea.

    Computer Engineering · Early semesters · 2022

    CarSpace: Parking Reservations

    Dec 2022 – Dec 2022

    The web prototype of a parking app, with a home page, sign-in, a map of 32 spots to book and statistics for each area.

    • A site in HTML, CSS and JavaScript with Bootstrap 5 and jQuery, with shared headers and footers loaded into each page.
    • A reservations screen with 32 spots, from A-1 to D-8, plus location, date and estimated time.
    • Statistics per area on how busy it is, traffic congestion, its rating and the users' comments.
    • Features, settings, user and team pages, on top of the home page and sign-in.
    • HTML
    • CSS
    • JavaScript
    • jQuery
    • Bootstrap 5
  • SitePersist's real home page served locally with PHP, explaining what the system is, with the buttons to sign in as a user or an administrator and a photo of the university campus.

    Software Programming Technician · SENA – IUSH · 2022

    SitePersist: Space Reservations

    Mar 2022 – Nov 2022

    A PHP and MySQL web system to book the spaces and equipment of Institución Universitaria Salazar y Herrera, with a separate admin site.

    • A site for the community with sign-up, sign-in, spaces by building, equipment, and requests for bookings and loans.
    • A separate admin site, AdminSitePersist, with its CRUD and history pages.
    • PHP with Composer and MySQL; locally with XAMPP and in the cloud with Heroku and a MySQL database on Azure.
    • A README that documents the problem, goals, scope, state of the art and proposal, and a diagram of the Git workflow and the deployment.
    • PHP
    • MySQL
    • Composer
    • JavaScript
    • Bootstrap
    • Apache
    • XAMPP
    • Heroku
    • Azure Database for MySQL
  • Two real frames of the repository's animations, Saturn with ascii_wizard and the running figure with ascii_magic, next to the three steps from the video to the console.

    Software Programming Technician · SENA – IUSH · 2022

    VideoToAscii

    Nov 2022 – Dec 2022

    It turns a video into a character animation. Python splits the frames and converts them to ASCII, and a C# console plays them back.

    • An OpenCV script that opens the video and saves each frame as an image.
    • Two converters, with ascii_wizard and with ascii_magic, that turn each frame into 150-column text and separate frames with a break line.
    • A C# console on .NET 6 that asks for the file and the milliseconds per frame, and plays it in a loop, clearing the screen.
    • Seventeen converted animations in the repository, from 4 to 211 frames, among them Saturn, a donut and a rocket.
    • Python
    • OpenCV
    • ascii_magic
    • ascii_wizard
    • C#
    • .NET 6
  • The Company Dream's real home page served locally with PHP, showing the menu and the promise of a free digital payroll to start a business.

    Technical high school · Pascual Bravo · 2021

    The Company Dream: Digital Payroll

    Sep 2021 – Nov 2021

    The site of a fictional company that offers entrepreneurs a free digital payroll, in Spanish and English, with sign-up and a payroll form in PHP and MySQL.

    • A site in PHP, HTML, CSS and JavaScript with Spanish and English versions.
    • User sign-up and sign-in on MySQL with PDO.
    • A payroll form with base salary, days worked, health, pension, and overtime, night and holiday shifts, saved in the payroll table.
    • Published on Heroku with Composer and Apache.
    • PHP
    • MySQL
    • PDO
    • HTML
    • CSS
    • JavaScript
    • Composer
    • Heroku

Repository archive

71

Public repositories from coursework and earlier projects, newest first

  • 2026

    CybersecurityEngineeringSebastian-s

    Lab reports of the cybersecurity diploma, with the vulnerability analysis of an FTP service, a CTF up to privilege escalation and the response to a cyberattack case.

    Kali Linux, Nmap, Hydra, Docker
  • 2026

    PGCEngineeringSebastian-s

    Testing and configuration management, with CRUDs written test first in six languages, 111 tests on top of the JUnit exercises and a script that runs all eight suites in Docker.

    Java, Kotlin, C#, Python, PHP, Rust, Go, React
  • 2026

    EvolutionaryComputationEngineeringSebastian-s

    Machine learning with music genre, wine and iris classifiers, housing price regression, traffic accidents, fine-tuning and a custom image detector.

    Python, Jupyter, scikit-learn
  • 2026

    ModelsAndSimulationsEngineeringSebastian-s

    Discrete-event simulation in Simul8 and random variates generated by inverse transform.

    Simul8, Python, Jupyter
  • 2026

    ComputerVisionIAEngineeringSebastian-s

    Computer vision in five guides, on convolutions and color, a vision model behind an API, Sentinel-1 radar clustering, deep learning and lettuce disease detection.

    Python, Jupyter
  • 2026

    SmartPot-BrokerSmartPotTech

    SmartPot's MQTT broker, a Mosquitto with TLS and one account per crop.

    Mosquitto, Docker
  • 2026

    GoPoli-WebGoPoli

    GoPoli's PWA in Next.js 16: ride sharing between Politécnico students.

    Next.js, TypeScript, Leaflet
  • 2026

    GoPoli-APIGoPoli

    GoPoli's REST API in Spring Boot 4: accounts, shared rides, chat and schedule.

    Java, Spring Boot, JWT
  • 2026

    GoPoli-DBGoPoli

    GoPoli's PostgreSQL 16: schema, catalogs and optional demo data.

    PostgreSQL
  • 2026

    GoPoli-MobileGoPoli

    GoPoli's original Flutter app, archived when the PWA replaced it.

    Flutter, Dart
  • 2025

    PDYPEngineeringSebastian-s

    In distributed and parallel programming, a multiplayer bingo over TCP sockets with threads, a school system in Spring Boot with a GraphQL layer in FastAPI and React, and a Sudoku solved over RMI.

    Java, Spring Boot, Python, FastAPI, GraphQL, React
  • 2025

    IAEngineeringSebastian-s

    Artificial intelligence in four modules, with a CLIPS expert system, fuzzy logic, genetic algorithms that colorize images and classification models for SmartPot.

    Python, CLIPS, scikit-fuzzy, scikit-learn
  • 2025

    Redes2EngineeringSebastian-s

    Network management on real Cisco routers, with RIPv2, OSPF and EIGRP, IPv6 with DHCPv6 and EIGRPv6, SNMP monitoring and Wireshark traffic captures.

    Cisco IOS, Wireshark, SNMP
  • 2025

    Redes1EngineeringSebastian-s

    Communication networks, with Packet Tracer topologies and the IP addressing plan of a network.

    Cisco Packet Tracer
  • 2025

    SudokuEngineeringSebastian-s

    A web Sudoku in Spring Boot and Thymeleaf with a backtracking solver exposed over RMI.

    Java, Spring Boot, Thymeleaf, RMI
  • 2025

    ProgrammingMarathon2025EngineeringSebastian-s

    Challenges of the 2025 programming marathon, solved in Python.

    Python
  • 2025

    AutomatasEngineeringSebastian-s

    Deterministic finite automata simulator that evaluates strings and draws the automaton with Graphviz.

    Java, Graphviz
  • 2025

    SmartPot-MailSmartPotTech

    SmartPot's Mailpit with authenticated SMTP and a protected inbox.

    Mailpit, Docker
  • 2025

    SmartPot-CacheSmartPotTech

    SmartPot's hardened Redis.

    Redis, Docker
  • 2025

    PepperCRM-APIPepperTechDev

    PepperCRM's API with authentication, leads, tasks, tags, files and email, documented with Swagger.

    Java, Spring Boot, MongoDB, JWT
  • 2025

    PepperCRM-WebPepperTechDev

    PepperCRM's web app with a kanban board, leads and tasks.

    React, Vite, Tailwind CSS
  • 2025

    PepperCRM-DBPepperTechDev

    PepperCRM's MongoDB image.

    MongoDB, Docker
  • 2025

    PepperCRM-CachePepperTechDev

    PepperCRM's Redis image.

    Redis, Docker
  • 2025

    PepperCRM-MailPepperTechDev

    PepperCRM's mail service for local environments.

    Docker
  • 2024

    DB2EngineeringSebastian-s

    NoSQL databases, with MongoDB aggregations and a full-stack store with a Spring Boot API and JWT, a React frontend and all three services in Docker Compose.

    MongoDB, Spring Boot, React, Docker
  • 2024

    TLP2EngineeringSebastian-s

    Programming languages 2: Spring Boot backends with security, JPA on MySQL, H2 and Supabase, Thymeleaf views and a React frontend.

    Java, Spring Boot, Thymeleaf, Supabase, React
  • 2024

    DesignPatternsEngineeringSebastian-s

    Design patterns implemented in JavaScript, with their quiz.

    JavaScript
  • 2024

    SistemasOperativosEngineeringSebastian-s

    Operating systems on Kali Linux and Ubuntu, with memory and virtual memory algorithms, round-robin scheduling and Bash scripts.

    Python, Bash, Java, Linux
  • 2024

    ARQHEngineeringSebastian-s

    Hardware architecture, with a Huffman compressor, ARM assembly in QtARMSim and an ESP32 in Wokwi with MicroPython and a Telegram bot.

    Python, MicroPython, ARM Assembly, ESP32
  • 2024

    ElectronicaDigitalEngineeringSebastian-s

    Digital electronics circuits simulated in CircuitMaker.

    CircuitMaker
  • 2024

    AP4EngineeringSebastian-s

    Algorithms and programming 4: sets, sorting algorithms and regular expressions.

    Java
  • 2024

    SmartPot-DBSmartPotTech

    SmartPot's hardened MongoDB, with validators and demo data.

    MongoDB, Docker
  • 2024

    SmartPot-AISmartPotTech

    SmartPot's AI assistant, with an expert system, fuzzy logic, machine learning and a reactive agent.

    Python, FastAPI, scikit-learn
  • 2024

    SmartPot-DataGeneratorSmartPotTech

    A simulator of virtual crops over MQTT with real weather, day and night, or manual gauges.

    Python, MQTT
  • 2024

    SmartPot-ProxySmartPotTech

    The devices' original HTTPS proxy, archived when the MQTT broker replaced it.

    Python, FastAPI
  • 2024

    SmartPot-APISmartPotTech

    SmartPot's REST API and MQTT bridge in Spring Boot 4 and Java 21.

    Java, Spring Boot, MongoDB
  • 2024

    SmartPot-WebSmartPotTech

    SmartPot's PWA to monitor and control hydroponic crops.

    React, TypeScript, Vite, Tailwind CSS
  • 2024

    SmartPot-IoTSmartPotTech

    MicroPython firmware for a real crop's device (ESP32 or Wokwi) with MQTT over TLS.

    MicroPython, ESP32, MQTT
  • 2024

    Taurus-FastAPITaurusSebastian-s

    The technical test's metrics API, grouped by tenant, agent and state.

    Python, FastAPI, SQLAlchemy
  • 2024

    Taurus-FrontendTaurusSebastian-s

    A React dashboard with an AG Grid table and Plotly charts.

    React, TypeScript, AG Grid, Plotly.js
  • 2024

    Taurus-DataAnalysisTaurusSebastian-s

    Loading the CSV files into MySQL and exploratory analysis in a notebook.

    Python, Pandas, MySQL
  • 2024

    FCC-data-analysis-with-pythonSebastianLopezO

    Projects of freeCodeCamp's data analysis with Python certification.

    Python, Pandas, NumPy, Matplotlib
  • 2023

    GrafosEngineeringSebastian-s

    Graphs, from the data structures course.

    Java
  • 2023

    ArbolesEngineeringSebastian-s

    Trees, from the data structures course.

    Java
  • 2023

    MatricesDispersasEngineeringSebastian-s

    Sparse matrices, from the data structures course.

    Java
  • 2023

    AP3EngineeringSebastian-s

    Algorithms and programming 3.

    Java
  • 2023

    TLP1EngineeringSebastian-s

    Programming languages 1: object-oriented programming, Swing interfaces, serialization and EJB.

    Java, Swing, EJB
  • 2023

    PolinomiosEngineeringSebastian-s

    Polynomials, from the data structures course.

    Java
  • 2023

    MaratonesEngineeringSebastian-s

    Solutions from the 2022 Politécnico and EAFIT programming marathons.

    Java
  • 2023

    SistemaDeNotasEngineeringSebastian-s

    A grading system in Java.

    Java
  • 2023

    TorresDeHanoiEngineeringSebastian-s

    The towers of Hanoi solved by recursion.

    Java, HTML, CSS
  • 2023

    ProyectoListasEngineeringSebastian-s

    Linked lists in Python, with HTML output.

    Python
  • 2023

    ProyectoDeListasEngineeringSebastian-s

    A circular doubly linked list with sorted insertion, search, replacement and deletion.

    Java
  • 2023

    AP2EngineeringSebastian-s

    Algorithms and programming 2: singly, doubly and circular linked lists, stacks, matrices and polynomials.

    Java
  • 2023

    AP1EngineeringSebastian-s

    Algorithms and programming 1: PSeInt pseudocode, diagrams and exercises.

    PSeInt, C++
  • 2022

    SemioticaInformaticaEngineeringSebastian-s

    Computer semiotics, with interface practices in Bootstrap and jQuery.

    HTML, Bootstrap, jQuery
  • 2022

    CarSpaceEngineeringSebastian-s

    Web prototype of a parking service, with bookings, statistics, settings and user profile.

    HTML, CSS, JavaScript
  • 2022

    Car-SpaceEngineeringSebastian-s

    First version of the CarSpace site, with benefits, features, plans and team.

    HTML, JavaScript
  • 2022

    AdminSitePersistTechnicalSebastians

    SitePersist's admin site, where requests and the inventory are managed.

    PHP, MySQL
  • 2022

    CalculadoraNasaTechnicalSebastians

    A console calculator in C# on .NET 6.

    C#, .NET
  • 2022

    VideoToAsciiTechnicalSebastians

    Turns a video into an ASCII character animation.

    C#, Python
  • 2022

    SitePersistTechnicalSebastians

    A web system to book IUSH spaces and equipment from any device, with a gallery and an inventory.

    PHP, MySQL, JavaScript
  • 2022

    BitMapConvertColorVocationalSebastian-s

    Excel macros in Visual Basic that convert the colors of a bitmap.

    Visual Basic .NET, Excel
  • 2022

    BingoExcelVocationalSebastian-s

    A bingo game built in Excel with VBA macros.

    Visual Basic .NET, Excel
  • 2022

    CalculadoraJavaVocationalSebastian-s

    An Android calculator in Java.

    Java, Android
  • 2022

    GuiaPythonVocationalSebastian-s

    A Python guide in a Jupyter notebook.

    Python, Jupyter
  • 2022

    PositionHorseVocationalSebastian-s

    Computes the moves of a chess knight.

    Python
  • 2022

    DimensionCubeVocationalSebastian-s

    A PHP website with music, images and error pages.

    PHP, HTML, CSS
  • 2022

    SebastianLopezOSebastianLopezO

    My GitHub profile, with the README, the resumes in Markdown and the workflows that regenerate the metrics this site uses every day.

    Markdown, GitHub Actions
  • 2022

    PythonDjangoSebastianLopezO

    Projects of the Python and Django course.

    Python, Django
  • 2021

    TheCompanyDreamVocationalSebastian-s

    A PHP website for a fictional company, built as a team in technical high school.

    PHP, HTML, CSS, JavaScript