Javier Delgado

Information
Computer scientist and mathematician eager to contribute to team success through hard work, attention to detail and excellent organizational skills. Really good at logical thinking and problem-solving. Born in 1998, I've been working with computer-related stuff since I was 13, and I have just finished a joint BSc degree in Computer Science and Mathematics at the Autonomous univeristy of Madrid.

I'm currently focused in Full Stack development with Flask/Django/FastAPI and Flutter/Bootstrap with pure HTML and CSS, although I love to learn new skills. React, machine learning and AI are some topics I find really interesting.

I have more than seven years of C and Python experience, three years of Java and Flutter experience, and I have also worked with SQL, C++ and with the .NET Framework.
In case it's needed, I have some basic knowledges of Lisp, Prolog and Photoshop.
Projects
Here you can find the most interesting projects I've worked on since my parents gave me my first laptop at 14 years old.




PS: You can also take a look at some of my college notes here, and every code-related assignment I've done on my degree is available here.
Final degree project in mathematics
Traditional and Long Short-Term Memory Recurrent Neural Networks: A theoretical and applied comparison.

Artificial Intelligence and specifically Artificial Neural Networks, are a technology niche that has expanded tremendously in recent years, reaching all our lives through weather forecasts, online advertising or multiple applications on our smartphones.
Within this work we are going to analyze a specific type of neural network known as Recurrent Neural Networks, usually used on tasks related to time series, such as speech recognition. We will show their development from dynamical systems, the equations that characterize them, and we will analyze the main problem that prevents their practical application. Once this problem has been shown, we will explain a possible solution, which involves the development of Long Short-Term Memory Recurrent Neural Networks, and we will analyze why this new type of network does not suffer the problems of the traditional ones. Throughout the paper we will also point out some of the most frequent errors in the scientific literature when dealing with this type of networks. Finally, we will make an applied comparison between traditional RNN and LSTMs using the Tensorflow framework, demonstrating how theoretical problems are transferred to practice, in a task such as text generation.

The full paper is available here.
Tracky

The World's Most Complete Journal and Symptom Tracker.

You can check the information about the app itself and download it at tracky.app.
How the idea came up
During 2020 COVID-19 quarantine I worked out every day at home, and I suffered from elbow pain. I came out with the idea of this app by trying to determine which exercises aggravated the pain and which ones releived it. Once I had the idea, I generalized it so that you can log lots of different types of data, find correlations between those items, track your progress and much more.
I spent the entire summer designing and coding it, and released the first version on september first.
Problems I had to solve
  • Build a backend server an implement synchronization between multiple devices. The users' data is stores locally on each device, and every device the user has logged in in synced through our server.
  • Deploy the production backend on a DigitalOcean server from scratch.
  • Use RevenueCat to accept users' payments on both Android and iOS (and there are future plans for Web/Desktop).
Scipy Dart port
Simple (and partial) port of scipy to Dart programming language.

While developing a Flutter project, I need some maths functions as the Student's t-distribution CDF. As there was no library implementing this for Dart, I decided to port the utilities I needed from scipy. Of course, all the credits go to them, which developed the original source code.
It's completly open source, so you can check it out here and on pub.dev.
1RM Calculator

Simple and stylish 1RM calculator developed in Flutter, so that is cross-platform.

Nothing much to say here. Developed during COVID-19 Quaratine to try Flutter as an alternative to native Android development. It's completly open source, so you can check it out here and on Google Play.
NightLive
Python server and Android app with real time location to help people find trendy places to party according to different parameters, and help places' owners to understand their clients' tastes and improve their business. You can check the server source code and the android app source code.
How the idea came up
I'm sure everyone has been somewhen on the situation when you want to party with your friends but every pub/disco you visit is empty or doesn't fit your musical taste. NightLive app pretended to solve that problem by registering your real-time location and showing nearby places with an indicator of how full it is. Once you clicked on a place, you could see some information about it, some flyers the place owner could create, etc.

The place's owner could use a web service to register it and, using a monthly suscription, get anonymous information about its clients (age, sex, favorite music genres) and about others places' clients. That way, the owner could make his local more atractive to his target public, and pay for adversiment inside the application.
Problems I had to solve
I had never worked with web servers before, and I needed one to store the users, places and business data so that they where accesible worldwide, so I finally went with Flask. Once the project was pretty much working, I used PythonAnywhere to deploy it (I also tried Heroku, but it gave me less computation power for free, and an ugliest URL).

As the application needed a database of places, and a map to be showed, I used Google Maps API, along with Clustering algorithms to group people near the party places.
Why the project ended
At mid 2018 the app and the server were working pretty good and with some minor UI improvements I would say I had a MVP, but there were some problems that made me throw away the idea of putting it on the market:

  • An iOS app would have been necessary too, and at that moment I didn't knew amything about Flutter or React.
  • If I wanted the app to be successfull, I would have to convince some places' owners to add flyers on the app (in exchange for some free month of use) so that people would download and use it.
  • I would have to enter in legal territory by creating a company etc, and as a 19 years old student, I didn't have any knowledge or time to research about it not to mention I couldn't afford any kind of gestor.
  • The Android 8.0 update put some restrictions on real time location access, so once that version was distributed, the app may become unusable depending on the user configuration.
  • Finally, as I mentioned before, the app used Google Maps API to display a map with nearby places, and somewhen in 2018 Google put some cuota limits on that API, so I needed money to release the app.
IIFYM

IIFYM is an Android app that allows you to track all your eaten foods and your weight in order to achieve faster a fittest and healthier body.

Every food is composed of three major macronutrients, carbohydrates, proteins and fats, which are essential for our body. This application will calculate the necessary amount of each macronutrient depending on your gender, age, height, weight and level of physical activity, and you'll be able to record all of your meals (by looking them up on the internet or creating them), in order to achieve your fitness goals, and significantly improve your health.

It will also allow you to keep a record of your weight and body fat percentage, attaching photos of your physical state, visible only from the app, to easily observe and share your progress.

And finally, it also has a social component, allowing you to share animations of your progress and the goals you achieve thanks to this app.

You can download the app here
How the idea came up
I have always loved well-designed user interfaces. In 2015 I started going to the gym, and after some months of solid training, I was thinking about improving my diet. There are lots of android applications that lets you track everything you eat, the most important ones being MyFitnessPal and FatSecret. Both of them have a really unintuitive user interface so I decided to make my on application and upload it to Google Play.
Problems I had to solve
This was my first serious android app. I had done some really simple applications previously, but I had never learned any programming language (just a bit of Arguino on my High School), not to mention anything related with databases or object oriented languages.

There was a bigger problem anyway: in order to have a successfull food app, you need a huge database, and that is really hard to get. Although I tried webscrapping and some others morally dubious methods, I finally had to use a third-part database, and I ended up using FatSecret's one. They let me use the PREMIER Free version, which had only english food, so I had to use Yandex Translation API in order to have a worldwide usefull aplication. That decision made the app slower, and created a ceil on the number of users, as the free Yandex API key has daily and monthly limits.
Why the project ended
On the second course of my degree, I learned a lot about databases and object oriented languaged, and I discovered that the entire model my app was working arround was a complete mess. I didn't have much time and the project wasn't of my interest anymore, so I decided to keep it like that and try to fix the common problems, so that people could still use it.

At the start of 2019, I though it would be cool to update the app interface to the new material design guidelines and implement some features people have asked me, for example, a calendar. I worked on it and there are some changes update to the repository, but as I had the idea of ScreenWeb, I couldn't finish it.
VAOS
VAOS is an Open Source Virtual Assistant based in python that I developed back in 2015, with just 17 years.

It made use of a hacky Google stt API, with multiple options for the tts, so it may not work nowadays. It also implement pushbullet notifications to get the information directly on your phone.