Learning Scala and Competitive Programming
For a couple of months now, I've been wanting to learn
Scala. I wanted to pick up something in the functional programming spectrum, and Scala seemed like a very good choice (lots of support and documentation, cute syntax, ...). I was quickly amazed at how clean and tidy scala code looks. Moreover, I was pretty happy with the fact I could start by coding more OOP-java-like code (which is what I'm used to) and slowly pivot towards the functional side.
Right at the same time, I found out about Code Wars (which is way too addictive incidentally) and start spitting out some cool one-liner solutions to the easier exercises while I got acquainted with the language. I also re-started Advent of Code 2019, which has a few nice problems that were cool to learn some new Scala concepts.
On another note, I decided to drop LeetCode's daily challenges, since most of them are repeated and/or a bit too easy. I guess I might come back to them during the next month's challenges if I start to miss them 😛
All in all, Scala seems to be pretty powerful and has a lot of ways of getting the same task done. As time goes by, I want to pivot towards the functional side of the scala spectrum as much as possible, since it was what got me into it in the first place.
This year was my second time participating in Hacktoberfest, an open to everyone month-long celebration of open source software that takes place every year during the month of October.
Last year I decided to contribute to tldr and joined two local Porto hubs to hack alongside other people, which was pretty cool (I also won a pair of Sammy the Shark plush slippers that I am actually wearing right now).
However, in 2020's edition my participation was fully remote (due to the current pandemic situation) and was more focused in contributing to some projects from FEUP's Computer Engineering Student Branch (in which I've been a member of the board for 2 years and member for almost 5 years now). Earlier in October, I was aiming to contribute to Lichess, a free and open-source internet chess server. However, since most of their services run in Scala, I didn't feel quite ready to dive into their codebase (which was another motivation for wanting to learn Scala!).
MSc Thesis: Automated API Refactoring for Edge Computing
As part of my last year in the Computer Engineering MSc, I am now working on my MSc thesis and dissertation, under the mentorship and guidance of Professor Tiago Boldt Sousa. I will be working towards implementing a web framework capable of self-inspection and self-organization, with the capacity of moving parts of its own API from cloud to edge computing, and vice-versa.
I am quite happy with this topic, as it is a great opportunity to learn more about serverless computing models, as well as cloud and edge computing paradigms. Looking forward to investigating more about these subjects!
The SINF 2020 Programming Contest (the first programming contest I've developed by myself) is starting tomorrow and will be up and running for 3 days, with new originals challenges every day! I'm planning to write a bit about it (and maybe discuss some of the problems) in the near future.