Here's where I've gathered everything to show how I have evolved as a programmer. A lot of this stuff is no longer relevant, but if it's in here I thought it was so at some point.
I try to keep this post updated with new developments and the last update was on April 2024.
Building an engine and a game from scratch avoiding the use of libraries. I'm still working on this project in the background and I expect it to take a pretty long time to finish.
A 3D action-adventure game with stealth elements. We built this as a team and I was mostly in charge of the enemies (Artificial Intelligence, animations and detection UI widgets).
We took our time to find an interesting mechanic and as a result we couldn't polish the game as much as we wanted, but overall we were pretty happy with what we accomplished in a year.
A game randomizer is a type of mod which shuffles or modifies the data in a game to make it random each time. The Pokémon Warp Randomizer takes all loading zones (i.e. doors, stairs, cave entrances, etc.) and shuffles them. This tool helps the player track where each loading zone leads to in an intuitive way.
I learned a lot about HTML canvas and how to handle feedback from this project. It's exciting to see streamers play using this tracker and I've implemented lots of features I wouldn't have thought of if it weren't for these communities (i.e. coop play wouldn't be a thing if I was building this tool for myself).
The Advent of Code puzzles are a good way to get comfortable in a toolset. For this year, I decided to solve it using C and avoiding the use of libraries as much as possible to get comfortable with the language at a low level.
I've programmed with C in the past but they were always class assignments and small scripts. I've learned a lot watching the Handmade Hero series, but I've had trouble putting what I learned to practice , so I wanted to get a lower level view of the whole language.
A game randomizer is a type of mod which shuffles or modifies the data in a game to make it random each time. The Sekiro Key Item Randomizer takes all items that affect the player's progress and shuffles them. This tool not only helps the player which events have been checked, but also shows which events are available based on key items obtained so far.
I had to fight with CSS to build this one, but overall it was pretty straightforward. There really isn't a Sekiro Randomizer community, so I did this tool mostly for myself.
Windows sometimes opens programs out of view, which occurs often to me if my second monitor is in vertical mode or turned off. I attached this script to a key in my mouse so I can attach the opened window to my mouse and place it where I want.
Really quick script which makes my life a bit easier. I know there are alternatives like Autohotkey, but I like to take opportunities like this to learn a bit more about what can be done with the Windows' API.
Simple game for the STOP WAITING FOR GODOT Game Jam, organized as a means to get people started on learning Godot once and for all.
I had been curious for a while so it was a nice excuse to get started and ended up as a positive experience overall.
Simple script to represent weight tracking data as a chart. Before this, I used a Google Sheets document which was too slow to get open. Now I just track the data in a .txt file and run this script whenever I want to look at the progress.
After trying my luck with Javascript, Python speed to set up and get something working surprised me. After this, Python replaced Windows' batch files as a script language.
This website! I wanted to have a place with all my projects and ideas so I could link them to people. I also wanted to have full control over it, so decided to go with raw HTML + CSS and build from there.
Before this one, I had used other's templates and static creation tools, but I always found them hard to use and gave me more options than I was looking for. I've been updating it since and still plan to keep improving this corner of the internet in the future.
The Advent of Code puzzles are a good way to get comfortable in a toolset. For this year, I decided to learn Rust to check what it has to offer.
I never finished the challenge but I did solve enough of these puzzles to get a feeling for the language and learn the basics.
I worked for a year with Salesforce (CRM) to give support to a call center. I was mostly in charge of extending a web extension used to handle calls inside the CRM and recollecting data for reviews.
Took my first steps in web development in this company, but what I truly appreciate is being able to see how big companies work internally.
When learning a new writing system, you have to create your own mnemotechnic rules to be able to connect the new letters to your own knowledge. I made this Windows application to store these as I learn them.
I didn't end up using this. Once I finished programming it, I was already at the stage of language learning where you learn the most by reading and listening to native oriented speech.
3D version of Minesweeper to refresh my Unity skills, since I was orienting my job search towards using the engine and hadn't used it in almost a year.
I self-imposed a 3 day limit to see how far I could go, so even though it's a bit rough I'm happy with the results. I also had to make some design decisions to be able to cut some corners and make the game work in 3D.
MyAnimeList.net is a database with information on Japanese animation shows and their artists. I have a personal list with shows I've seen and when I check an artist's entry, I want to check if they have worked on another show I had already watched. So this web extension takes the information from my list and highlights the relevant shows.
First tool I made I found truly useful, so I kept updating regularly until the website itself implemented this functionality by itself. This was also my first experience with web scraping.
A friend gave me the idea to build something to control Windows' audio and it was a good opportunity to see if I could figure it out by checking the official documentation.
First project where I fight my way through the Windows API. I learned some things, but the project ended up not being useful at all.
I learned about how Tetris decides which pieces to serve you next and wondered how it could be implemented.
It turns out it's pretty simple, but this was my first tool and my first experience with web development so I'm fond of it.
Started as an internship and got hired after. The company specializes in making historical 360º videos and distributing them through VR applications. I worked there for a year making modifications to the UI and adding in-app purchases to their main application, Imageen. I also ported this application to different platforms and created simple versions of it which were used on-site at different Spanish museums.
It was my first experience working, earning a salary and all while working with a technology I was excited about and was forced to learn more about. Needless to say it made me expect a lot from my career as a software developer.
For my degree project I made a game inspired by Clash Royale and made tools to design the behaviour trees of the artificial intelligence of the units. To be able to create both the game and the tools before the deadline, I cut corners and it's all very simple but usable.
At this point, I had some experience with C++ but I still didn't know what the language was truly about. So, in retrospect, I made lots of mistakes and I wished I had more time to fix them once I learned more about the language. But even then, I'm fond of what I managed to create.
I spent the summer of 2012 programming in Pascal (I didn't know better) to see if I'd enjoy a career in programming. I decided to go for it and after one more year of high-school and 5 years of university I graduated as a Computer Engineer at Universitat Rovira i Virgili.
Class assignment where we had to increase performance of the code by parallelizing it. We were made to hit a minimum time to pass the assignment and we would compete with classmates to improve our score.
One of the most fun class assignments I remember from university, so I decided to tidy it up and put it into my CV back then.
First contact with C++ to make a Space Invaders clone called "Drone Hunt". We barely knew C and wrote code as if it was Java, so we used lots of allocations and assumed they were all being garbage collected. If I recall correctly, we realized what we were doing by the end of the project and fixed (most) of it.
First game jam I participated in. Some friends took the effort to organize the event and find people to promote it. There were four teams and we took second place with a simple infinite runner which fit really well the theme of that year's game jam.
A simple game called "Tap Tap Football" where you had to avoid a football falling into the floor by tapping on it. It was a very simple game but there are a lot of firsts in this project: first game I ever made, first experience working with other programmers and first project where I learned Unity. If I recall correctly we sent this to some kind of contest and we never published it. I still have access to the code, so maybe I'll add some footage.
The objective was to design (no prototype needed) a project which mixed technology and education. Our team won with the design of a VR app which lets the users take real life complex systems (i.e. engines, nuclear plants, etc) and learn about them by taking them apart in a virtual space.
Obviously, this title no longer represents my current ability in English, it probably stopped being relevant a couple of years after I started consuming most media in English. I think this website and my presence online is a better indicator of how I express myself in English, but some companies still value the title over it so I still mention it here and there.