This post will have a slightly different structure than usual since I want to share a bunch of things (without going into much detail into either of them). I can only start by saying this past month was a lot of fun, because I had a large amount of free time to work on a bunch of things that were on my backlog.
Organizing a Programming Competition
A few weeks ago I was asked by the SINF (a tech-related event for students) organization team to develop a set of programming challenges and host a competition for the event.
I was very happy to accept the challenge and I've come up with some pretty cool ideas that will, hopefully, make the competition challenging and fun, while at the same time being "friendly" for people who are just starting.
The competition will last for 3 days and problems will be handed as daily challenges, so there's a lot of room for imagination!
Ethical Hacking is pretty cool
Being a nerdy nerd as I am, I've always wanted to learn a bit about Ethical Hacking. Although I already had some concepts in mind that I have learned at college, I was mostly motivated to start it due to a friend's blog articles, in which he details his thought process when... "hacking stuff".
I decided to start an online course (so that I could learn about it in an "organized" way) and decided to pick The Cyber Mentor's course, since it had pretty good reviews. I'm now about 35% through the course and I feel like I have learned a bunch.
As suggested in the course's lectures, I'm trying to take notes regarding methodologies and tools in an organized way. For that, I've been using Zim Wiki. It is pretty user friendly and has a small learning curve (in terms of syntax). Although the wiki has no backup mechanisms, I've implemented a small workaround using a Git repository and
anacron to periodically "save" changes.
I'm planning to dedicate some time to this and I'm aiming to finish the course within the next couple of months. Then it's time to test what I've learned in some CTFs! 😄
Improving my Chess Games app
As I've mentioned in a previous blog post, I've created and am currently maintaining a Chess Games app where I share all my past chess games, so that I can analyze them at any time, to better understand my mistakes and help me improve my game.
I had the idea of adding a chess engine live analysis to my board component to get an understanding of the computer's evaluation of given positions, while at the same time allowing the user to try on different possible moves on a given position. I'm currently working on this and I'm expecting to finish it within the next month!
Last but not least, I've been devoting most of my time in the past weeks into preparing for an important interview I'm having in the near future.
I'm taking it quite seriously, and the preparation has consisted mostly in:
- Solving Programming Challenges, to brush up my problem-solving skills (I've completed about > 100 LeetCode problems in this process);
- Going through the Cracking the Coding Interview book, to make sure I'm ready to answer possible System Design questions as well as possible;
- Analyzing my notes of Past Interviews, to get a grasp of what I did well and what I need to work on;
- Taking some Interview Simulations, which have been of great help by training me on how to answer "unexpected questions" (a special thanks to my friend Miguel for taking the time and patience to sit with me for a few hours).
I hope everything goes well and that I have a good "Return on Investment" regarding my preparation! 😄
On a last note, I'm starting my last year of my MSc in a couple of days. I'm working on defining my Thesis theme, which will hopefully be very exciting to work on!