Portfolio
Highlight Projects
Airplane Delay Time Predictor
BigData
Predicting the arrival delay of commercial flights, given a set of parameters known at time of take-off. To do that, publicly available data from commercial USA domestic flights is used. The proposed approach consists of using BigData and Machine Learning techniques to solve the problem.
Technologies: Spark, Scala, Hadoop
Object Identification
Deep learning
Indentifying satellite images by discerning between a set of different detected objects (Helicopter, truck, house...). To perform this task, several deep learning techniques have been tested (Multilayer perceptron, Convolutional Neural Networks, Transfer Learning).
Technologies: Python, Keras, Tensorflow, Scikit-Learn, SSH.
Optimization of Investment Strategies
Degree Thesis
Generation of a support system for traders. This system generates flexible investment strategies that adapts to the market context by means of using genetic algorithms. The system ensures benefits over the tested benchmark and generates understandable rules for experts. The system is based on long-mid-short term indicators and works on most of the assets. An asset automatic data extractor was developed to obtain the necessary data for the system.
Technologies: Python, Time Series, Genetic Algorithms, Pandas, Numpy, Matplotlib, API.
PacMan AI Automatization
Machine Learning
Use of several machine learning techniques (Classification, Regression, Reinforcement Learning) to solve different problems in Pac-Man videogame (Select next move, predict score...). To solve this tasks, the pacman game was modelled accordingly to the proposed approach, in such a way that the state modelling enhances the solution.
Technologies: Python, Machine Learning, Weka, pandas, matplotlib
Path Search for the PAC-MAN Game
Artificial Intelligence
Implement and analyze performance of BFS, DFS and A* algorithms for pathfinding in the Pac-Man videogame. The game consists on a set (1 or more) of fruits that we must eat minimizing the steps/time. Finally, design mazes to show the capabilities and weak points of each algorithm.
Technologies: Python
Racing starship
Genetic Algorithms
Racing starship creation. This spacecraft is capable of running on different circuits thanks to the modelling of the problem. The specified approach tries to minimizes the time taken to finish the circuit considering its characteristics. To adapt to the different circuits and to find the necessary parameters, genetic algorithms were used.
Technologies: Java, Genetic Algorithms
University Projects
First Course
Galaga VideoGame
Programming
This was my first major programming assignment. Design of classical Arcade videogame using Object Oriented Programming. It is a clone of the famous Galaga game developed by Namco in 1981, it includes the first 3 levels of the original game. Developed inside UC3M videogame framework, and using concepts such as: Polymorphism or Inheritance among others.
Technologies: Java
Campus Social Network
Data Strucures & Algorithms
Designing the structure of a social network and the methods needed to connect people on the uc3m campus. Making use of well known programming data structures: Stack, Queues, LinkedLists, BinaryTrees... Implementing the corresponding search, sort, insert methods needed for creating a real application. Making use of previous POO knowledge and performing complexity analysis over algorithms used.
Technologies: Java
Other projects
Physics I // Physics II // Computer Technology
Analysis of mangetic fields and electric circuits in LAB (Use of oscilloscope, magnets, solenoids...) // Analysis and design of parallel and sequential electronic circuits and signals from an electronic musical instrument // Development of rock paper scissors game using logic gates.
Technologies: QuartusII, PSPICE
Second Course
Path Search for the PAC-MAN Game
Artificial Intelligence
Implement and analyze performance of BFS, DFS and A* algorithms for pathfinding in the Pac-Man videogame. The game consists on a set (1 or more) of fruits that we must eat minimizing the steps/time. Finally, design mazes to show the capabilities and weak points of each algorithm.
Technologies: Python
Safe Communication Protocol
Cryptography and computer security
Design of a communication schema based on Sign-then-Encrypt variant, using ElGamal for secret key exchanging, Cipher Block Chaining as the operation mode for symmetric encryption, and again ElGamal with a Hash function for Message Signature and Authentication and for Public Key Certificate Signature as well. All the procedure has been tested with an example input, showing step by step the results for each operation.
Technologies: Certificate Authority, Encryption - Decryption algorithms.
DataBase Management
File Structures and Data Bases
Design and implementation of a relational shema for a broadcast app. This application consists on a social network where you can watch and share movies with other users. Once the schema was designed, it was created with SQL and tested among several useful queries and automatic triggers. The implementation was made considering efficiency for physical design.
Technologies: PL/SQL
MiniShell
File Structures and Data Bases
Creation of a shell with customed commands (cat, ls, size, accAdd, cp...), using unit tests for each command. Implementing the use of pipelines and multithreading for runtime optimization
Technologies: C
Assembly: Instruction set implementation
Computer Structure
Introduction practice: Translation of Java functions to Assembly code, performing unit testin to check the results. Final Practice: Design and use a 32-bit instruction set for a computer (adapted from the Z80 processor) optimizing the clock cycles.
Technologies: Using microprogramming, assembly programming (MIPS32) and information representation.
Automata implementation
Automata Theory & Formal Languages
Translation from pseudocode natural language to CNF grammar. Development of Finite Automata, Push-Down Machine, Turing Machine for the implementation of algrithms (Binary adder, String copy, palindrome detector...) and their respective complexity analysis
Technologies: JFLAP
Other projects
Software development principles // Business and Management
Software project development: Consideration of Ethical Dilemas, Requirements, Test Driven Development, clean code and format guidelines documentation. // Creation of Fashion-World App Business Plan (Sector and cost analysis, Strategic Marketing plan, Financing & Investing, Organizational strucure...)
Technologies: Java
Third Course
PacMan AI Automatization
Machine Learning
Use of several machine learning techniques (Classification, Regression, Reinforcement Learning) to solve different problems in Pac-Man videogame (Select next move, predict score...). To solve this tasks, the pacman game was modelled accordingly to the proposed approach, in such a way that the state modelling enhances the solution.
Technologies: Python, Machine Learning, Weka, pandas, matplotlib
Weather Station
Operative Systems Design
Built an environmental temperature and humidity meter using Raspberry Pi and environmental sensors. This IOT meter was programmed in Python and depended on a specific geolocation that was communicated through REST API calls. The collected data was processed in GCP (Google Cloud Platform) and deployed with Docker containers, displayed through an interactive web interface.
Technologies: Python, RaspberryPi, Docker, SSH, Google Cloud Platform (GCP), SQL, HMTL, JS, CSS
Airplane Operations Optimization
Heuristics & Optimization
Optimizing the airplane tickets fair following the airline minimum constraints. Considering also the allowed baggage and price for each fair, in view of the capacity of the different airplanes. Finally, an optimization for the runway time-slot allocation has been performed to reduce costs and coordinate the different airplanes.
Technologies: MathProg, Spreasheets (Linear Programming (LP) & Mixed Integer Linear Programming tasks)
Satellite Operations Optimization
Heuristics & Optimization
Coordinating the assignment of transmission antennaes to a set of satellites during all of their visible time slots, while considering certain constraints. Once the assignment was performed, the allocation in visibility bands and the execution plan of the satellites was computed to retrieve observation data in an efficient way.
Technologies: Constraint Satisfaction Processing tasks, Python, A-Star Search (Heuristic modelling)
Image Filter
Computer Architecture
Utilized the OpenMP library to create an image processing tool that applies various filters, such as the Gaussian Blur or Gaussian kernel Operator, to different images by operating on the pixel matrix.
Technologies: C++
Moodle Web-Interface
User Interfaces
Creation of a clone of the interface of the university course access portals (AulaGlobal, Moodle...) adding some functionalities (Considering Design patterns & heuristics) to create a functional prototype.
Technologies: HTML, CSS, JS/JQuery
Subway App
Interactive Systems
Creation of an application about subway information: Routes, lines, user-card credit, transfer options.
Technologies: Angular, TypeScript, HTML, CSS, JS/JQuery
Network Creation
Computer Networks
Development of a company network (Linux PC and Linksys WRT54GS routers), allocation optimization and following the ip-address policy. Configuration of dynamic routing protocol, testing failure cases and setting up each router configuration manually.
Technologies: TCP/IP, RIP, IP prefixes
C to LISP Transpiler
Comppilers
Expression Translator to Prefix Notation, translating c code to lisp. Designed using compilers theory (Grammars, Recursive Descending Parser...) and testing it on a set of functional programms
Technologies: C, GNU BISON
Other projects
Computer Architecture // Software Engineering // Software Projects Management
Evaluation of instruction level parallelism programs and performing loop unrolling for speedup. Analysis of the usage of cache memory in programs and the different optimizations that can be done in order to better exploit this memory. Concurrent programming and memory consistency evaluation. // Development of a specific business case considering the use cases, requirements, stakeholders, developing the corresponding conceptual and architectural model and the component specification. Use of weka and weka workflow to solve different machine learning problems (Classification, clustering, regression..) for designing machine learning pipelines to process and solve them automatically. // Management of a software project: Planning & requirements, costs estimation, CI/CD strategy, agile methodolgy application.
Technologies: MIPS32, C++, Weka
Fourth Course
Optimization of Investment Strategies
Degree Thesis
Generation of a support system for traders. This system generates flexible investment strategies that adapts to the market context by means of using genetic algorithms. The system ensures benefits over the tested benchmark and generates understandable rules for experts. The system is based on long-mid-short term indicators and works on most of the assets. An asset automatic data extractor was developed to obtain the necessary data for the system.
Technologies: Python, Time Series, Genetic Algorithms, Pandas, Numpy, Matplotlib, API.
Racing starship
Genetic Algorithms
Racing starship creation. This spacecraft is capable of running on different circuits thanks to the modelling of the problem. The specified approach tries to minimizes the time taken to finish the circuit considering its characteristics. To adapt to the different circuits and to find the necessary parameters, genetic algorithms were used.
Technologies: Java, Genetic Algorithms
Crypto Predictor
Artificial Intelligence in Business
Design of a price predictor system of crypto: DogeCoin. This predictor is based on sentiment analysis performed over a bunch of automatically extracted tweets. Making use of several APIs and reverse engineering to extract the asset value and the desired tweets.
Technologies: Python, DataMining, API
Robtic Arm Configuration
Genetic Algorithms
Use of genetic programming to configure the servomotors of a robotic arm. This robotic arm is in charge of managing a laser whcih must be as preceise as possible to attain the desired result, the task is to find the best configuration to fit the standard.
Technologies: Python, Genetic Algorithms, Pandas, Numpy, Matplotlib
Monitoring Stations Optimization
Genetic Algorithms
Use of genetic algorithms for optimization problem for the Madrid City Council. Which consists of renewing its network of air quality monitoring stations while minimizing the total cost of the stations. Considering maintenance and per sensor cost, while maintaining the accuracy of the measurements, the optimal combination of sensors to update was found.
Technologies: Python, Genetic Algorithms, Pandas, Numpy, Matplotlib
Auxiliar Medic Robot
Knwoledge Engineering
Design and build an auxiliary robot to help child patients with ASD. Designing the corresponding ontology and domain to encode different games with similar coding. This is achieved by abstracting common knowledge from the games. Implementation of the Domain and execution plan generation of auxilary medical robot. Robot designed to deal with covid patients and their needs, allowing them to communicate with their relatives.
Technologies: CLIPS, Protege, PDDL
Vehicle Recognizer
Neural Networks
Recognizing diffent kind of vehicles (truck, van, saab, bus..) by means of using their images with differenet deep learning models. Each model was tested and analyzed as to select the best solution.
Technologies: Python, DeepLearning, CNN, tensorflow, keras
Concrete Strenght Predictor
Neural Networks
Manually implementation of AdaLine and Multilayer perceptron to solve and analyze the given problem.
Technologies: Python, pandas, matplotlib
Car Recommendation
Artificial Intelligence in Business
Design of a recommendation system based on expert knowledge. This system was built using fuzzy logic and recommend the user the most likely car to fit its profile.
Technologies: Python, FuzzyLogic, MatLab
CoVid Predictor
Artificial Intelligence in Business
Deep Learning predictor for the number of CoVid-19 cases in each country.
Technologies: Python, Weka, Time Series
Other projects
Computer Graphics // Advanced theory of computation
Modelling of different 3D scenes: Desktop recreation, fractal design, Environment Panoramic view and Racing trophey Hall. // Complexity analysis of code: AKS, Loops, etc..
Technologies: PovRay, Terragen, Blender, Java, C, JFLAP
Master
Airplane Delay Time Predictor
BigData
Predicting the arrival delay of commercial flights, given a set of parameters known at time of take-off. To do that, publicly available data from commercial USA domestic flights is used. The proposed approach consists of using BigData and Machine Learning techniques to solve the problem.
Technologies: Spark, Scala, Hadoop
Object Identification
Deep learning
Indentifying satellite images by discerning between a set of different detected objects (Helicopter, truck, house...). To perform this task, several deep learning techniques have been tested (Multilayer perceptron, Convolutional Neural Networks, Transfer Learning).
Technologies: Python, Keras, Tensorflow, Scikit-Learn, SSH.
Profile Based Retrieval
Information Retrieval, Extraction and Integration
Information Retrieval system development that provides to researchers the scientific papers that they are most likely to read. The profile based system provides the users the documents that better fits them. The system uses BERT pre-trained model, making use of the transformers library by Hugging Face.
Technologies: Python, Numpy, NLP, DeepLearning, Transformers, Pandas
Shirt Comparator
Information Retrieval, Extraction and Integration
Non Textual Data Extraction: Image retrieval based on fuzzy color histogram processing. The system compares images of shirts to find similar designs on the catalog. The system makes use of fuzzy logic over the image color histogram, and combines it with Histogram of Oriented Gradients descriptor to get a similarity ratio.
Technologies: Python, Numpy, Seaborn, Pandas
Healthcare Document Ranking
Information Retrieval, Extraction and Integration
Creation of a pointwise ranking system based on logistic regression. This system preprocess a set of text data (tokenization, stop words, steeming and lemmatization...) to extract the necessary features. The model is based on Cosine similarity, TF-IDF and Jaccard Similarity. The system provides an ordered list of relevant LOINC documents when a topic is provided as input query.
Technologies: Python, Numpy, Pandas, Scikilearn, NLP.
Football Stats Visualization
BigData
Creation of a visualization app that help teams to analyze stats and compare squads (team and players) dynamically. It incorporates a tool, based on machine learning techniques, to retrieve similar players (Useful tool to find substitutes for future transfer markets).
Technologies: R, Machine Learning, Visualization
SmartHome Energy Balance Predictor
Time Series
Statistical analysis over consume-produce time series and generation of statistical models to predict the balance of energy. The data is based on measurements from the samrt sensors installed in the home, and different models were tested to choose the most accurate option.
Technologies: R, Time Series (ARIMA, VARIMA...), NeuralNetworks (LSTM)
Portfolio Allocation
Programming for Data Science.
Development of a project that attempts to find the best portfolio allocation for a set of different assets. Performs web scrapping for extracting assets data from investing.com, performing backtesting over the set of possible allocations to find the best option.
Technologies: Python, Selenium, NumPy, Pandas
Accesible School Finder
Open Data & Knowledge Graphs
Interactive application that shows accesibility information of Madrid Public schools. The school search could be guided by using filters and save the results for future access. All the information was obtained from public sources, developing an ontology and the corresponding knowledge graph linked with existing graphs.
Technologies: SPARQL, RDF, LD+JSON, Turtle, Wikidata, OpenRefine, RML, YML, Helio, HTML, CSS, JS
Bank Marketing Campaigns
Machine Learning
Creation of several machine learning models to solve Classification, Clustering and Regression tasks, analyzing the models behaviour and the result obtained. The objective was to optimize bank marketing campaigns, improving the number of succesfull phone calls.
Technologies: Python, Weka, Scikit-Learn
Other projects
Cloud Computing - Big Data Ecosystems // Data Processes // Statistics // Ethical, legal & social aspects // Information Retrieval, Extraction & Integration
Development of a generic HBase schema with the necessary queries. Development of a processing system capable of consume streaming data. // Creation of a Data Science business project plan, Breast cancer data preprocessing and automatic heart attacks detection for prevention with its corresponding cost analysis. // Development of several statistical model to solve healthcare industry issues. // Describing the different ethical, legal & social aspects of an specific data science project (Finding the corresponding patents and GDPR regulations). // Analysis of bias & fairness at the time of integrating various datasets.
Technologies: HBase, Flink, Docker, Python, Pandas, Scikit-Learn
Company Projects
Bisiona
Route Scheduler
AI Department
Artificial Intelligence Application to assign efficient routes for pharma companies. This application not only considers the route but also takes into account the types of trips and the stop duration.
Technologies: .Net, SQL, C#, HTML, CSS, JS, JQuery, Python
Management App
Developers Department
Internal interactive tool for managing the company tasks and resources. Coordinating and tutorizing team of new interns to develop some of the app sections: Task management, Projects, Team meambers, Departments, Task assignments, Stats, QA, etc. This tool allows Bisiona to track and measure their performance and to have a coordinated system for solutions delivery.
Technologies: .Net, SQL, C#, HTML, CSS, JS, JQuery
MVC Migration
Developers Department
Webforms to MVC migration for Tender & Accounts tool. A toll used for following the whole tender process, collecting the necessary insights and showing them in dynamic dashboards.
Technologies: .Net, SQL, C#, HTML, CSS, JS, JQuery
Survey/Courses App
Developers Department
Application to deliver surveys and courses (with different type of question types, information shown) to Bisiona stakeholders.
Technologies: .Net, SQL, C#, HTML, CSS, JS, JQuery
Products Report App
Developers Department
BI Application for extracting pharma products insights, creating interactive dashboards following the clients requirements.
Technologies: .Net, SQL, C#, HTML, CSS, JS, JQuery
Nommon
Mobility Open Data
Mobility Analytics Department
Creation of mobility dataproducts for public sharing project with spanish ministry of transport [MITMA].
Technologies: Python, QGIS, AWS, Docker, Linux, Bash
Mobility Projects
Mobility Analytics Department
Acting as project leader in several ad-hoc mobility projects for different clients [Norconsult, Telia, IDOM, Diadro, Entel, University of Castilla-La Mancha, Sener...]. Creation of origin-destination matrices and other data products based on mobile BigData using AI.
Technologies: Python, QGIS, AWS, Docker, Linux, Bash
API management
Mobility Analytics Department
In charge of processing all the requests, manteinance and automatization of the Nommon Mobility form to create a real API.
Technologies: Python, HTTP, JSON, AWS, Docker, Linux, Bash
Mobility Analytics Product
Mobility Analytics Department
In charge of manteinance, support and develop of features that enhace compnay main dataproducts and services.
Technologies: Python, QGIS, AWS, Docker, Parallelization, Bash
Personal Projects
Automatization
Paddle Tennis Booking
Scripting & Automatization
Python bot to automatically book paddle tennis courts in the Getafe public sports center. Bot that outperforms any human being and ensures the use of the best courts which are always booked.
Technologies: Python, Selenium, Web Scrapping
Class Recorder
Scripting & Automatization
Windows app that allows the user to schedule any webpage recording. The bot keeps the user active to avoid any kind of ban. The recording could be scheduled in advance via interface, so the user can record it while staying away from keyboard.
Technologies: Python, Selenium, Tkinter