About me

My name is Matteo Morena, I’m a 23-year-old guy from northern Italy. I’m half German and half Italian and can speak both languages fluently. I like skiing, music, nature, hiking, and programming. This website is dedicated to share my interest in this last subject.

Since I was a kid, I’ve always been passionate about computers, how they work, and how to program them. I still remember how I thought that using the terminal or the registry editor was like black magic. Of course, time has passed, and I learned a lot of things. The first thing I learned was to create batch scripts, then HTML and CSS, then Java, and so on.

I enjoy programming both on the high and the low level. I started with Java, now I’m learning C and assembly programming, specifically on the IA32 and ARM architectures. I’m also starting to get my feet wet with bare metal programming.

I know how to develop GUIs using languages like C# and Java (with Swing or JavaFX), but also how to write the back-end of websites making use of languages such as Python and C#. As a matter of fact, learning Django and Flask’s web frameworks was what made me try out Python in the first place!

For the future, I’m planning to learn how to build progressive web apps and mobile applications for Android and iOS. Currently, I’m taking a look at the Flutter application framework, and so far it is looking quite promising.

I know how to use and interact with relational databases. In particular, I know both relational algebra and SQL and how to formulate non-trivial queries. I learned how to design the structure of a database using the entity-relationship model and how to apply such structure for the development of a relational database schema.

When I’m programming, I’m usually concerned with what happens “behind the curtains”. I have some intuition on how UI elements should be laid out in order to improve usability, however design isn’t really my strength: my website does look quite spartan, doesn’t it?

Even though I’m still studying and I couldn’t apply these skills yet, I learned the basics on the software development process of software engineering. I know how to analyze the requirements of a software system, organize them into a more formal specification and design an architecture capable of solving the user’s needs while minimizing the trade-offs. I am aware of the importance of the concept of maintainability and know how to apply the processes to maximize it.

My journey in the software development world has been — and still is — quite interesting, and there’s so much to learn!