How I became a Software Engineer and how it’s going.
Tags: webdev, softwareengineering, learning
Published: 2024-06-13 17:00:00

Hello Devs! Today I’d like to share with you my story of how I became a software engineer, how it’s going, and why I love this profession so much.

## The beginning
First, I’ll give you a little context. I’m from a small town in the north of Italy, in the middle of the Dolomites, and I come from a family where, for generations, everyone worked in the family shop.
So just thinking about university was something very new at home. Anyway, I always liked computer science and technicalities, so I decided to enroll in a new university course called “**Information Engineering and Business Organization**.”. I was never a genius in school, and so every exam was very stressful and hard. I liked the course, but I didn’t have the slightest idea of what I was going to do once I finished until the second year started.

“**Software Engineering**” was the name of the class I had to attend, and this class put me on the *right path*, but definitely with the *wrong approach*.
The theory was extremely boring, and the practical part was almost nonsense for me, and I had **zero** knowledge of programming. I say this because the practical part was to create, from zero, a web application that managed clients and orders (classic school projects) with Ruby on Rails.
Now, when I say zero knowledge, I really mean zero. I didn’t even know that websites were made with code, and I definitely didn’t know what coding was.
So anyway, I started this project, and after a couple of days of setup, I started understanding how it worked. There were text elements and buttons, and you could change color and stuff. Only after some days I understood that I wasn’t doing a single thing in Ruby, nor was I using the Rails framework (which, by the way, I didn’t know what that was), I discovered HTML!! And it was FUN! Especially when I found out about CSS. After learning some basic uses of JavaScript, the course ended and the exam didn’t go very well, as you may imagine, but I really had some fun.

## My first side project
As I said earlier, my family runs a shop from generation to generation, and since I had acquired this new super knowledge of HTML, CSS and JS, I wanted to create a new simple website for the shop, which didn’t exist at the time. After some time, I did create a sort of website that was very ugly in that 2000s style, with bright flashing colors and low-quality images. I was so proud of my job. But then the first big problem came along. I wanted to add a “Contact Us” section to the website. Reading online how to do such a thing, I started to read a very obscure and terrifying word: “**Back End**”. *What the heck is a beck-end?* - I thought. That answer came with another university course I had to attend, “Web Programming.”.

## The turning point
In this course, we had to create an entire web application to manage a shopping list with geolocation, internationalization and other stuff I had no clue how to do. All the application had to be done in Java, with the user interface in JSP.
Fortunately, with this course, we received some training, and I learned so many things in such a short time that I felt invincible. I and another couple of friends managed to complete the application, which ended up being very well-designed and well-implemented.
Ok, so now, not only did I know what a back-end was, but I also knew what design patterns were, how to use a database, and so many other things that I decided to re-create the shop website but with an E-Commerce in it.

If I remember correctly, it was 2016, and I knew there were platforms like WordPress or Shopify to build ecommerce, but I just learned so many things I wanted to practice as much as possible, so I decided to build it in Java with JSP pages and with handmade listeners and filters and servlets, and so on and so forth. So no, I didn’t know anything about Spring. This took a LOT of time. But in the end, not only did I practice a lot, but the final result was very, very good. I created the whole e-commerce site with a blog section and also a dashboard to create products, manage clients, write articles and collect statistics. Talking with the bank of the shop, I discovered they had a custom integration for online payments, so I also had to implement a secure integration with their systems. And once I completed this, the website was finally complete. Or at least, this is what I thought. Something that was way harder than I thought was the hosting of the website. I had a working web application that I didn’t know how to host. After a while, I found a platform that let me connect a domain and upload a .war file, so I used that solution for some time.
Of course, this was fun from an academic point of view, but it wasn’t really manageable. Every change required a lot of time to develop. So once I made peace with myself, I decided to archive this project and replicate it on WordPress with WooCommerce. It definitely took a lot less time, and the UI was a lot better. I also used some plugins to improve the performance of the website, the SEO and the UX.
Once the WordPress website was ready, I immediately realized something. The Java e-commerce I made was FAST. And I really mean fast. There was almost no loading time in any case. 

## How is it going
Since then, I have worked on many different side projects, learning spring and spring boot and many other different technologies in both the back end and front end, and learning a lot about DevOps and databases.

In September 2020, I finally graduated and after 3 months, I started looking for a job.
I immediately got hired by a big corporate in the healthcare field, where I learned a lot of new things, especially how to work with a team of professionals, which I didn’t know anything about it.
After two years, I decided to move on, and I switched to a small startup in the finance and web3 market, where I currently work.

My current side project is a microservice / microfrontend project with Java and React deployed on Docker containers orchestrated by Kubernetes. So I think that for someone who started this journey thinking that HTML was actually Ruby on Rails and didn’t know what “beck end” meant, I made quite a lot of progress.
This project is a platform for professionals and students to create their own portfolio with a story-telling approach. I never liked portfolios that showcased a list of project names with complex words without explaining anything. I wanted to narrate my projects, explaining every choice I made and every success and problem I had during their development.
An MVP is on its way, so if you are curious to see it, stay tuned 😉

---

If you got here, you understand why I love this profession so much. Every single time you think you finally figured it out, and you finally know how things work, something completely new runs over you, resetting all the confidence you acquired. It's almost like a video game. Every time you complete a level, a new one appears, and it's bigger and harder than the previous one, but you are more prepared and more wise.