“Automation must become an obsession”. This is the motto of Giovanni Toraldo, senior developer, expert in Cloud platforms.
“A developer should have this indispensable predisposition to automate as much as possible, not just to speed up some repetitive operations, but above all to prevent a person from making mistakes while performing them”.
Giovanni Toraldo, who joined Engineering a few months ago, is one of the founders of the startup which created the Cloudesire platform, through which it is possible to use “as a service” services, managing the entire invoicing, payment and collection flow, and connecting companies and large Service Providers who can offer Cloud services.
What does the work you do every day consist of?
“I’m a Linux software developer and system integrator and, in addition to developing the platform, I also act a bit as a product owner and as a bridge between the commercial sector and the developers. Let’s say that most of my time is dedicated to finding effective solutions, necessary to improve the platform. On a weekly basis, I also plan the development activities according to the needs recorded in the short term. There are four of us in the development team: we have been working together for a long time and there is great complicity between us.”
How does a software developer work? How do you organize your days?
“Since long before the Coronavirus emergency, following which the smart working issue has become very topical, we work from anywhere, in an agile way. We began over a year ago after a team developer moved to another city, and we quickly realized that this method was perfect for all of us and allowed us to work better than before. After all, even when we were all together, we would use a written chat to talk without disturbing each other. This made us understand that to activate smart working you mainly need the ability to communicate asynchronously, without expecting the other to answer immediately. This is fundamental, for that matter, for those who, like a developer, need to focus on what they are doing without having to interact often with others.
Another essential condition is being able to work without a precise timetable, but on identified and shared objectives. It’s also true that in order to avoid exaggerating, we try to identify a daily schedule anyway, otherwise, partly out of passion for the work and partly out of enthusiasm, we would never knock off!”
What tools does a developer use?
“Our main tool is Github, a repository in which we share written code, perform code reviews and have the possibility to consult the weekly scheduled activities. To communicate, instead, we use Slack, an advanced chat system which allows us to organize different channels of communication between us, such as development with software releases, or testing, or with purchase notifications from the platform. An instrument which integrates with many others we use and which therefore has become a sort of channel of events and activities to be carried out as well as a “place” for debate. In addition to these, we obviously have other tools to manage the platform and the infrastructure hosting it.“
What are the skills required to become a developer? What is the most suitable course of study?
“As regards the educational path, if I had to talk about my experience as a former computer science student at University, I can say that there is such a great distance between what you study and what is really needed in the labor market, that I think it is not essential to be a graduate to develop software. On the contrary, I can say that most of the best developers I’ve known come from self-taught learning paths. Internet is a source of great inspiration and knowledge, as are free software communities where you can learn exactly what it takes to become a good developer. Until about fifteen years ago it wasn’t like that, but today every boy or girl has endless possibilities to learn how to develop on the Net.”
Before, you mentioned free software, describing it as a great opportunity for open knowledge. According to some, the Cloud, on the contrary, could become “addictive” towards a single service provider, the famous lock-in. What do you think?
“I can confirm that I am what you might call a “die-hard open source fan”, since most of the best things that exist in computing today I think are children of the four freedoms which distinguish free software.
If we look at the cloud, the problem in my opinion is always the approach we have: if, in fact, we don’t tie ourselves to platforms, we won’t have any lock-in. The important thing is to be careful not to build solutions on tools, but to be able to abstract solutions and make them independent.”
What is the greatest aspect of a developer’s work?
“I may say something obvious, but the best part of my job is the team and the people in it without whom I wouldn’t have been able to build what we have.”
What are the methods for a developer to keep updated?
““I don’t think there are any courses to follow which are effective for the work we do: usually you learn the things you need little by little whilst completing your task, while often the course consists of overviews of a tool which I still need to study in-depth.
I personally consult Hackersnews on a daily basis, a Reddit-style user-generated news aggregation portal, which also has its own weekly newsletter. In addition to this, of course, specific forums and websites.“
A recommended book to read?
“I don’t read a lot of books because I read so many technical things every day. But a book that is still very topical, even if it was written several years ago, and one from which I learned a lot about the method I use today for my work is: “Continuous Delivery” by Jez Humble and David Farley. A text that makes you understand the most important thing for a developer: to understand the problem and find a solution which satisfies the customer in the shortest time possible. That’s our job, after all.”