About me
My name is Matteo Morena, I’m a 27-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, later I learned 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!
Currenlty, I’m learning to write mobile applications for Android and iOS. I took a look at the Flutter framework by Google, but now I’m focusing on raw Android development.
I know how to use and interact with relational databases. I understand SQL and relational algebra. 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.
Last year I started a deep learning dive in the world of functional programming: Scheme, Haskell, and now Scala. While I must admit that it was initially very frustrating to fight my OOP-mindset, I am now very glad I took this journey. I know how to use and design higher order functions, and I understand Functors, Applicatives, Monads and related mumbo-jumbo.
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.
The challanges of the software development world are quite interesting, and there’s much to learn!