Howdy Hackers!
I’m Alessandro Diaferia and I’m an Engineering Manager at Utmost
I’ve been nominated for the categories below and if you've enjoyed anything I've written this year, please take some time to vote for me.
As a writer in tech, despite all the huge advancements in tech over the last years, I still believe that programming is the most exciting technology of the present because it’s accessible to anybody and can be used to make incredibly impactful things. Learn more about my views and my journey in the tech industry via the interview below.
I am an Engineering Manager at Utmost. I love this role because it helps me focus on what’s important for our customers. At the same time I have the opportunity to act as a multiplier for my team. I strive to do this every day. I think that my technical background and interests and my tenure at Utmost are really my strength, and I hope I make good use of it by guiding my team and supporting my colleagues on a daily basis.
I was really passionate about computers. I was lucky enough to get to play with computers (Intel 80286 and 80386 machines) because they had them at the Hospital where my dad used to work. He’d let me tinker with them when I was visiting him. I was fascinated by how many things you could do with them (and it wasn’t much, compared to now). By 1997 I had a little experience with those machines (to be fair, it involved games mainly) and I felt it was time for me to get my own: a powerful Pentium I 133 MHz, 16 MB of RAM, if I recall correctly. My dad was kind enough to gift me one. It had Windows 95 on. I was so excited!
Anyway, long story short, after some time using software, messing with Windows’ registry and playing games I got interested into how software was being built.
There weren’t many resources out there on the internet about it, compared to now. Still, I remember I got somewhat successful playing with Pascal and the Delphi IDE. I also got a little exposure to C and C++.
Following some bare tutorials out there, copying and pasting code, I got my first experience with programming. You might be surprised but chat-bots were a thing then too! And I implemented a very dumb version of my own that could interact in Italian.
Fast forward a few years, I got to try Linux. I think I started with Mandrake, then OpenSUSE. Then, I fell in love with Gentoo (I know, right?). I was a student at Polytechnic University of Bari when that happened. A dear friend of mine recommended Gentoo to me. He was so knowledgeable about it and that made me really passionate too.
Through Gentoo, I started trying alpha software. At the time KDE 4 was being developed. I decided that that would have been a great opportunity for me to really up-skill in programming (C++/Qt being the tech enabling it).
It was really fun because there were a lot of junior jobs type of bugs listed on the project website. That really helped me pick something to start with; on top of that, instructions on how to build the software and set up your development environment were really detailed and I felt really comfortable just digging in and trying.
Needless to say, the first patches I submitted (there was no Github: SVN+mailing list attachments were the way) got rejected. But the maintainers were really helpful and helped me understand how to improve my code.
With practice and stubbornness, I eventually improved and became more and more impactful as a contributor. I even got to mentor new joiners and maintain my own projects.
That experience really solidified my programming foundations and got me exposed to how software at scale gets built in a distributed fashion, with thousands of contributors organizing remotely without the need for a persistent co-located office.
I still recommend such an experience to anybody curious about programming and software engineering.
As mentioned before, the experience with the KDE community also helped me get familiar with writing. It was a pretty established tradition for many KDE developers to blog about the software they were building/maintaining. I joined too. We used to have a place where all the KDE blogs would be aggregated for people to read. I got mine too in there.
I really enjoyed talking about what I was building as it helped me solidify my ideas and clarify my next steps.
As I moved to more professional software engineering experiences, I pushed myself to keep blogging. I opened my own blog and try to write about what I care.
I’ve found I am much more a consumer than a producer of articles. I hardly feel ready to blog about something; as if I really need to explore all the aspects of something before I can blog about it. I know I should put myself out there more and I’ll try harder.
Anyway, I think blogging is a powerful activity. It definitely gets easier the more you do it. And it’s easy to lose practice if you stop. It really helps consolidating your thoughts as it pushes you to explain clearly what you’re talking about. And sometimes you might even realize you don’t know enough to be able to explain it to somebody else. That’s not a bad outcome: it’ll push you to learn more and you’ll get more effective at conveying your message once you really know the topic you’re talking about.
Don’t stress about it, just start. Words will come!
I think I was copying and pasting and trying to understand the C++ code of a chatter bot. I was using Dev-C++ as a lightweight IDE on a Windows machine. I remember really struggling to understand other people’s code, it seemed as if they were gods speaking (writing in) an unintelligible language.
I’m pretty sure I felt discouraged at times. Setting goals, like defining clearly what program I wanted to develop, really helped. It’s the same in our industry after all. A clear and shared understanding of the definition of done really facilitates the team!
Getting to Mars might be the easy part. Staying there alive is the real challenge, considering, for starters, the lack of water and the huge exposure to radiation. I think finding a solution to those problems might be hugely beneficial to us remaining on Earth too, to be honest.
That being said, the idea of getting to Mars doesn’t excite me as the opportunities we have to making Earth a better place now.
I have quite a bit of experience with Ruby, and I still find it helpful to get ideas up and running fast. This is a tough question for me too because I enjoy many different programming languages and I would probably try and differentiate if it was my project. I also really enjoy Go if I’m looking for higher performances.
Even if I’m more of a back-end guy, I really enjoy React+Javascript on the front-end, so that would probably still be my choice if I were to build a UI.
I think there are a couple of things that software developers should do more of:
While the proliferation of tools and technologies is helping us deliver more valuable software more frequently I think there is a lot of reinvention of the wheel and repetition of less valuable tasks going on when building software. My instinct tells me that there is a huge opportunity to simplify the way we build and operate software even further.
I am currently tinkering with Tensorflow to build a tool to help teams find information more easily. I’m also reading a lot about blockchain technology these days. Even though I see a lot of projects that make little to no sense to me when it comes to blockchain, I’ve also discovered a few gems that are really inspiring.
How it feels to learn Javascript in 2016. Pretty old, huh? I think it’s still pretty accurate. I think it gives a clear indication of how much opportunity there is in the software industry to make building software more effective. There is still a huge gap between the nocode/lowcode movement and the way software gets built from scratch.
As a seasoned software engineer I feel there is still too much boilerplate involved when developing software. Even using libraries and framework, there is still too much redundancy and the time spent creating something new is still little compared to time spent making it all work.
I’ll pick 10 years into the future because 10 years into the past I was already professionally involved in tech so it’d feel like cheating. I have to say I really enjoyed the tech world 10 years ago as well.
Anyway, 10 years into the future… I would love for the world to be much more focused on the well-being of our planet and the species on it. 10 years into the future technology initiatives will have adjusted around that aim.
Blockchains will probably have decentralized a few sharing economy aspects. I like to believe that blockchains will have turned into an environment-friendly technology, not only solving the energy consumption problems most of them have today but also becoming the de-facto incentive for humans to invest in clean energy. Maybe people will be rewarded for installing solar panels in their homes and sharing the excess energy they produce with everybody. At the same time, we will be more deliberate about how we use energy, favoring community-enhancing initiatives over personal gain.
AI will be much more central in steering our decisions at scale. It will be used to orchestrate large-scale operations to improve the well-being of our planet and our communities.