Welcome to the third episode of our series “News from abroad”!
Today we are going to read about the epic journey of our Team lead and senior developer Luciano Rossi.
Hello luciano, we are very happy to have you here today!
Please, tell us a bit about yourself:
Hello everyone!
My name is Luciano Rossi and, despite the Italian name, I`m Brazilian. I was born in Curitiba and lived most of my life there. Curitiba has eccentric weather, but it is a nice city with incredibly good breweries around. I have been living in Amsterdam for a bit more than 2 years now, with my daughter and partner.
I started programming in Basic when I was 11 years old. At that time, I didn’t have a computer, so I wrote my code on a pile of paper to later transfer it to the school computer during programming classes. My career started as an intern for a company where I became a partner a couple of years later. During that journey, I worked with Java and .NET (which I have been working with since C# version 1). During my career, I had the chance to travel to several countries to follow different projects: this gave me a great international experience. I was working as a software architect in Brazil when an opportunity to relocate and be tech lead in Amsterdam came up. I moved to The Netherlands in 2019 and I am now part of MM Guide as team lead senior software developer.
Interesting what a journey, you could write a book about your adventures!
you mentioned you are now team lead at mm guide, what are your tasks in this role?
At the moment I’m working on designing, architecting, and developing a reaction documents management system. That is a web application built in Angular with a web API in .NET. I am also responsible for leading other developers when they join the project. Most recently, I was also involved in the proposal phase for a project to build a training management system, which hopefully will start next year.
Interesting!
how do you normally approach a new project?
I normally use a 4 steps framework:
- First, I try to understand the functional requirements and the major business ideas behind the project. It’s important to look from the user’s standpoint. This will make planning and development easier in later stages.
- Second, I think about the architecture/design that is more appropriate to cover the requirements and support the business. I try to understand if it should be a web or mobile application (or both). If the app should provide a simple web API or a microservices structure. I also consider several technical aspects like: Is CQRS required? Does a simple 3-tier architecture cover the requirements? Do we need heavy-load tests?
- Third, I define which technology is most adequate to support the architecture, based on two conditions: productivity and quality. At this stage, I define the language, frameworks, additional packages, and tools to better serve the project.
- Fourth, I create a plan and organize the development based on the requirements and the technical components. This step helps with both, tracking the project and identifying the dependencies while providing a better view of the development activities.
After that, it is just “start coding”.
This approach seems very clear!
Do you use a specific methodology?
I have been working with agile methodologies for quite a long time now. However, I mostly follow good practices and even combine different techniques, depending on the project. Most recently I have been using Kanban, which works well for small projects with a well-defined scope. I also apply some of the Scrum principles during the sprints to make sure planning works properly.
How do you understand if your ideas align with your clients?
Communication is key. It’s very important to have all the requirements clear and formalized. Also, regular reviews of the development are important to understand if the functionalities developed are covering the needs and expectations. This will reduce the chance of surprises in a more advanced stage.
It is also true that unexpected issues happen more than we would like, and having a good plan helps to minimize the impacts. We cannot plan for everything, of course, so having some contingency is important to make sure we have some room to adjust/change something when it is required.
Luciano, it’s clear that you have been in this business for a long time now: what are the biggest changes you have witnessed? Furthermore, what do you think will be the future of this industry?
I have indeed seen a lot of changes during all these years: more focus on parallel tasking due to the increase of multi (logical) core processors. Increasing use of functional languages – from a person who has seen object-oriented programming almost forever. How powerful web development has become by using the same concepts and languages that were available since the early days of web browsers. However, in my opinion, the biggest game-changer was the cloud; developing for the cloud environment and all the power and productivity behind it, allowed the software development industry to reach a whole new level.
For what concerns the future, I see more and more how AI is aiding the coding world. I think we will see more assisted development in the future. Projects like GitHub Copilot will play an interesting role in the industry in the mid/long term, and I am curious to see where that will lead us.
what do you like the most about your job?
I love what I do. I have been working with software development for a long time for different markets with different people. I think the challenges of making something valuable with technology are the main driving force. It is nice to wake up and think about which problem I must solve today to make the world a bit better or live a bit easier. That is what we do.
For sure there are pitfalls too. When something does not follow the plans it can bring up some serious headaches. In all honesty, what bothers me the most is when there is a problem which takes me a few hours to tackle only to find out that the solution was extremely simple. It is like “how did not I think about that before?”
thank you very much luciano!
Before we say goodbye if you could give advice to someone in your role, what would it be?
Dedicate time to check what is next in the industry. Try a new language, experience a new framework, follow the trends and what the big players are using in the market. Our industry evolves rapidly and we must follow accordingly!