Andrea Chiarelli is a software engineer and technical author with over 20 years of experience located in Pisa, Italy. Self-proclaimed “continuous learner,” Andrea works at Okta as Staff Developer Advocate. He has authored many online magazines, offline magazines, and a few books over his career. He has been published by Computer Programming and ASP Today, HTML.it, Codemotion Magazine, LogRocket blog, Auth0, Packt Publishing, and BPB.
How did you get interested in software engineering?
I started off my schooling in the Humanities. I enjoyed humanities because I loved literature, art, and history and was fascinated by ancient languages like Latin and Greek. I enjoyed it, but I knew there was a risk that I might have to completely change my current path in the future in order to have a profitable job.
Then, in University, I realized that there weren’t the same opportunities in the Humanities as there were in software engineering. Twenty years ago, all things related to computers were very profitable because companies needed a lot of developers. This was not the same for my interest in the Humanities, as it’s hard to have a solid career within that field.
So, I switched to computer science. I saw the switch to computer science as a good opportunity for my future.
Was there a point when you really started to enjoy software engineering and fall in love with the discipline?
Actually, my passion is more in computer science as opposed to software engineering.
What aspect of computer science do you enjoy the most?
I was drawn in by the stuff that was more on the mathematical side than the actual engineering, like the theory of computation and information theory.
I would say that I first started loving the theory. Once I put in practice what I learned in theory to actually create software, it led me to explore all the aspects of software engineering (not just coding). This led me to architecting complex applications and leading teams.
Since all of this brought me to managing teams who build complex software, it’s not just about coding for me, it’s also about figuring out how to create something that could solve a complex problem.
Do you feel that you have been able to approach computer science and software engineering with a Humanities mindset?
Yes, I think I have. This has been a topic of lots of discussion with friends and other associates. They say that the Humanities were useless for my career, but I do not think that is true. Dealing with Latin and Greek within the Humanities discipline helped me to reason about the parts of sentences needed to understand the sentence’s meaning.
For example, in Latin sentences, there is often no explicit subject, and the order of verbs and complements is highly variable, so you need to understand what the sentence is trying to say. This primarily requires the application of logic, but some intuition is needed.
This has helped me a lot when trying to understand how to communicate with computers, on the one hand, and with people on the other. It has helped me be an intermediary between people and computers. It also helped me to develop logic, which is fundamental to programming.
What is your current role?
I am a Staff Developer Advocate at Okta. My primary responsibility in this role is to be an intermediary between developers and the company, in this case, Okta.
In general, a developer advocate's role is to simplify developers' lives using blog posts, documentation, talks, libraries, or something similar. However, you also need to understand the parts of the product and the company that developers do not understand well. So, the role is to understand how developers use the company's product and how it can be improved so that the developers are satisfied with the product themselves. That is actually the role, to ensure that our customers, defined as developers in this situation, are satisfied with our product.
What aspects of this role do you enjoy?
As a developer advocate, my passion is around writing. So, the tool that I mainly use to speak with Okta’s developers is writing: writing blog posts, writing ebooks and supporting developers in the community. Once I get feedback from the developers, I speak with the SDK team to try to understand how the SDK or other parts of the product can be improved.
My role lets me put in practice what I’ve loved since the start of my career, writing and learning new things. I am particularly passionate about security, identity, authentication, and authorization.
I went from being an intermediary between computers and people to being an intermediary between humans and products. I guess my destiny is to be an intermediary.
In your 20 year career, how have you seen security and identity on the web change? And how have you seen our approach to it change?
I think identity management is changing and facing many new challenges as most of human life is moving to the internet and the digital universe.
In the past, we just had digital identities to join a social network or to make an eCommerce transaction. Now, identity has become even more important because you can do so many activities online instead of in the physical world. For example, you can sign into a website that allows you to do some banking operations. In this case, you would need to be sure that your identity will not be stolen by an attacker.
So, creating awareness from the inside and granting security plays an important role in any online activity. Actually, one of the things that we as a company are trying to move forward on is getting rid of passwords. This might seem weird because we are so used to using passwords to access our accounts, but passwords can be stolen very easily. In the near future, we should head towards eliminating passwords and using other technologies, like biometrics, for example, using fingerprints to access a website or an application.
That's interesting, how did you get involved with such a specific concern?
I wrote an ebook, Security for Web Developers, about web security, which is part of protecting identities on the web and in the digital universe in general. As a developer, this is something I thought was a small topic. However, as a developer advocate, I have found this to be a much larger topic with a lot of things to be learned to make sure that digital identities are protected.
You’re the author of quite a few books. When/how did you get started with writing?
I started writing articles for an offline magazine in the beginning, then an online magazine, and then personal or company blogs. In most cases, I would begin writing by finding a topic I wanted to learn or go into in more detail with. I would then propose an article about that topic with an outline stating what I wanted to discuss. Once I submitted the outline or the outline was approved, I had to study the topic to create the blog post. Initially, this was very frustrating because it's not easy to write about something you recently learned. If, normally, it would take someone about a few hours to write a blog post, it would take me one or two days. However, I didn't mind because it was something that allowed me to learn.
How did writing help your career?
The approach I took to writing articles was very successful because there was an aspect of my method that allowed me to promote myself. By publishing articles, I was able to let companies and other developers know that I had something to offer. In fact, I got the opportunity to work on a project because my pieces demonstrated that I knew a certain area practically, not just in theory. Writing articles was like building my resume in a way.
How did you decide that you wanted to start writing books?
For my first book, I was invited by a colleague to participate, and I accepted. The book was written by three or four others, I just wrote one of the chapters. My first two books just had me contributing one or two chapters.
However, I wrote my third book entirely by myself, which was very stressful because of the length of the content and deadlines. Writing a book is completely different from writing a blog post or article because you need to organize your time in a way that you meet the deadlines put in place by your editor. So, it can be a bit stressful, especially if you do not have all day to work on your writing.
Although it’s stressful, you have written quite a few books so you must enjoy it. Is there some aspect that draws you in and keeps you going?
Yes, actually. It's a great feeling to complete a book because you can see what you've done. It always brings me a lot of satisfaction. I'm from the old school, so it is especially satisfying when you have the actual paper in your hands. You can actually feel what you've written as opposed to just reading it.
You just published an e-course with Educative. With your preference for physical books, what drew you to publish an online course with Educative?
I used to be a trainer, and for some of the training sessions, I also created course material. Creating courses is something I haven’t done for a long time. So, creating a course for Educative was something that reminded me of the old times. I enjoyed creating this content with the thought that someone who wants to learn, in this case Securing Blazor Applications with Auth0, will read it.
I also enjoyed writing on the Educative platform because of the interactive widgets. I'm currently writing blog posts for the Auth0 blog, and I've also written articles for other blog platforms. On those platforms, I would input code inside the articles, but that code wasn't interactive, so people would have to copy and paste or download the project from GitHub, and then install the required software. This is something very complex, and it can take a while. So, the fact that I can use a widget inside the text to make something executable on the Educative platform is very unique. It allows you to experiment with what you are learning directly on the same platform. This was very exciting from my point of view.
What differences have you noticed between writing blog posts and long-form text like books or e-courses?
In a course or book, you have space to explain why you are doing something instead of just telling your reader to “do this because it works.” In a blog post, you have less space at your disposal, so you may need to skip some details.
You mentioned you were a trainer for a while. What did you teach?
I taught how to program and use databases. My training sessions were technical and about programming in general, but mostly on .NET, C#, and SQL Server.
In most cases, these training sessions were for developers and were held on-site at companies. At one point, I collaborated with the Microsoft Training Center here in Pisa. In that situation, I had a classroom with more formal students, but at many of the companies where I went to train, I was teaching employees.
At what point in your career were you a trainer?
I started training two or three years after I began working as a software engineer.
Did you get a job as a software engineer right out of University?
When I first got out of university, I was a freelancer. My daily activities were always very different. I would write, code, create training, write articles, etc. My day was always full of different little activities. This was interesting, but it could be stressful as jumping from one thing to another is not always the best approach. Sometimes, it is better to be focused on one thing, so I learned to organize my time.
This is one thing I always say to my young colleagues, learning to organize your time is a basic skill that you will need for any job you are doing. If you are not organized and do not manage your time, most of it will get wasted.
What is a trick that you've developed to help you manage your time better or to make it easier for yourself to context switch?
I plan my day. I prefer to start working in the early morning because I run out of energy towards the end of the day. The first thing I do when I start my day is plan out what I want to do and create a priority list.
For example, today, I needed to complete a blog post, so that is how I started my list. Then, I put down other items that were not so critical. Of course, you cannot put everything on the list, so I choose items that I can reasonably accomplish. With this method, even in the case that I am not able to complete something, it will be of low priority. This way, I am still able to feel that I have succeeded in completing my list. I have learned to apply this strategy after a lot of years.
Sometimes, what you plan in the morning is different from what ends up happening due to some new, unforeseen situations. But dealing with the unforeseen is a part of living.
What would you say to someone who is just starting out in their career?
The main thing is to have passion for what you are doing. If you are doing something that you don’t like, you will only be able to do it for a limited amount of time, and sooner or later, you will need to change or you will lose the opportunity to learn new things. Especially in the development career, it is important to learn something new every day. So, my main advice is to do things with passion and put in the effort to learn something new each day.
Read Andrea's full article: How to read a JSON file in C#! If you would like to learn about becoming an Educative Answers contributor like Andrea, please check out our landing page to learn about our community.
Join a community of 1.7 million readers. Enjoy a FREE, weekly newsletter rounding up Educative's most popular learning resources, coding tips, and career advice.