Tiago Magalhães

Systems Programmer in Efacec's R&D Division

Masters Degree in Software Engineering

Interested in Systems Programming and 3D Computer Graphics
Resume




About Myself


Hello there, my name is Tiago Magalhães and I am a software engineer interested in complex problems. I am particularly interested in the areas of systems programming, and real-time computer graphics. So why am I interested in these areas in particular? Well besides the fact that they all contain interesting problems to solve of course.


I mainly got into systems programming because of my severe discontentment with the generally low performance of modern software, it probably all started with Google Drive driving me nuts with how slow it was in my old laptop (and any laptop without a discrete GPU). I started to wonder if there was a good reason for software being so slow, which lead me to start learning the basics of performance optimization and what modern hardware is capable of, then, I got a school project where I had enough time to do some performance optimization, which just solidified my passion for the topic further. One thing led to another, and before long I was studying topics related to systems programming as a whole, additionally, as I learned more about the hardware/software interaction and how the hardware components in our systems work, I fell deeper into this hole. It's an area that I find myself continuously researching more about, be it through books, papers, blog posts, or, talks.

But that is just systems programming, what about computer graphics? Well, the answer is complicated, as I honestly can't pinpoint when I fell in love with this field. If I had to point at an initial thing that drove me to the field, it has to be video games and generally liking to look at pretty/shiny things. But that was just the initial spark of interest. As I started learning more about the field on my own, I realize how many interesting problems the field has and how fulfilling it is to get almost immediate results on whether you improved your solution or not. On top of all this, real-time computer graphics goes hand-in-hand with systems programming, in a sense, it's a perfect marriage given my interests. And, while I find offline computer graphics interesting as well, real-time computer graphics is significantly more interesting to me. This is because you simply don't have the option to throw more hardware or time at the problem, which means the only option is to get creating and ingenious. As Bear Grills would say (at least according to the meme), "Improvise, Adapt, Overcome", to a degree that is a perfect one-liner description of real-time computer graphics.


But these are just my professional interests, what about hobbies and personal interests? Well as you might have surmised by now, I am a big fan of Video Games. I will spare you the details of my various adventures into the world of video games, my favorite genres are RPGs, MMOs, and, action-adventure games. I am also a big fan of anime and manga, so much so that some of my friends call me a bit of a ... weeb. While I also enjoy traditional TV shows, there are significantly fewer of those that catch my interest, in fact, I'm more likely to watch a documentary than a traditional TV show.

Outside of entertainment, I have spent too much money and time on mechanical keyboards, but hey I didn't choose the clack, it chose me. That being said I probably swap keyboard and switches way too often. I also enjoy political and philosophical debates, despite it being very hard to have healthy productive debates in these areas. I have been thinking of getting into photography, but right now I know next to 0 about it. I have never been much of a fan of traveling but there are some places I would like to visit, I'll let you guess what those places are though.


At this point I think that you know enough about me, I am a pretty chill person so if you want to contact me, feel free to do so over email, Twitter, LinkedIn, etc.. While I am always open to new business ventures and opportunities, I beg that you truly think if your proposal fits my interests, otherwise you might not get a response. (web dev opportunities can go away cough... cough...).







Experience


Software Systems Engineer at BOLD
November 2020 - Current
Employed by BOLD and subcontracted to Efacecs platforms team in the R&D Division as a software systems engineer. As a part of this team, my various functions include:
  • Development, feature backporting, and, Maintenance of the operating system kernel using in Efacec's products. This includes the base Linux kernel and any required hardware drivers.
  • Development, porting, and, Maintenance of software packages to be used in the operating system distribution used in Efacec's products.
  • Research and development of optimized software solutions for the needs of Efacec's products and clients' needs.
  • Supporting other product development teams with developing solutions specialized for the various types of hardware used in Efacec's products.







Education


Master’s Degree in Informatics and Computing Engineering
Graduated July 2020
School: University of Porto's Faculty of Engineering
Dissertation: Real-Time Ray Traced Voxel Global Illumination