My 2020 Recap: Open Source, talks, meetups and more!

I am not a huge fan of year recaps or new year’s resolutions. Mainly because I don’t like thinking about the past in general or setting goals for the future. I like to focus on the present, following my curiosity day by day and if I realize I want to accomplish something I don’t wait the new year to do it, but I try to start as soon as possible.

However, retrospectives are powerful, you can analyze what has gone wrong in order to try to improve it. Plus 2020 was..2020! And together with all the tons of terrible stuff that happened to us, in the future I would like to remember 2020 also for the nice things I accomplished this year. So let’s start!

Open Source contributions

contributions

This year we had a lot of free time. The problem was that we had to spend it at home. I used a big part of that to contribute to open source software. Why? Glad you asked! Writing open source software is a really good opportunity to learn and to improve the world a little bit at the same time.

This was the year of Rust for me: most of the time at my laptop was spent on learning and working with programming language. After reading the book and doing exercises and pet projects you have to go in the wild and receive some code reviews, i.e. someone more experienced than you has to tell you why your code sucks: contributing to open source software is just the best way to achieve this goal!

Rust

Personal projects:

  • stm32f407 experiments: A bunch of personal experiments with STM32f407G-DISC1 and rust.
  • Rust GitHub Template: A template to create an amazing rust project hosted on GitHub in no time. (51 โญ on GitHub)
  • Poke Speare: Toy project to experiment with rust async, actix, reqwest and wiremock.
  • Poetry book builder: My first rust project, a pet project not worth checking out.

Contributions:

  • design patterns book: On december I started maintaining the design patterns repository. Me and simonsan just converted it into a lovely rust book. ๐Ÿ“–
  • delta: Solved almost 100 clippy warnings, implemented CI and CD with GitHub actions, helped solving a really interesting bug which I plan to discuss in my YouTube channel. Plus there is this (thanks Dan ๐Ÿ™): thanks
  • wiremock-rs: improved error messages and documentation.
  • bat: fixed clippy warnings.
  • rofi-rs: fixed cippy warnings, added CI.
  • svd: implemented GitHub actions mainly.
  • svdtoold: worked too much on an issue which sadly was forgotten..This is part of open source, too. ๐Ÿ˜” Silver lining: I learned a lot of rust by working on this! ๐Ÿค“
  • fd: solved a very simple issue starting from a very complex solution that was over-engineered at best ๐Ÿ˜‚
  • stm32-rs: Improved CI, documentation and fixed some devices. In this repo overall I added 95 lines and I removed 3451 lines..neat ๐Ÿ˜Ž difference

For obvious reasons I’ve excluded opened issues, support to users and little PRs like small documentation fixes (even if this one is special because it belongs to the rust repo ๐Ÿงก).

VHDL

Learning a new language every year is really important. If possible you should learn a language that belongs to a different programming paradigm with respect to what you are used to. Well, what’s better than a language used to describe hardware for that? ๐Ÿคฉ

If you want to experience the same feelings you had while learning your first programming language or if you think you know everything about parallel programming you should really learn vhdl. It’s totally different from what I was used to and learning it was really really funny.

I published:

  • VUnit action: a GitHub action for VUnit that was moved to the official VUnit organization (yay ๐Ÿ˜).
  • Vhdl examples: A bunch of personal Vhdl experiments tested in a CI with VUnit.

VSpaceCode

I love spacemacs, and I bring its key bindings into every editor I use. In 2019 I already created spaceclipse and intellimacs (which counts 249 โญ on GitHub at the moment), but what me, Steven and all the contributors are doing with VSpaceCode is amazing! We have 726 โญ and 3963 installs! It really feels like it’s the best of both worlds (full blown ready to use IDE vs spacemacs workflow).

Content

I posted 6 articles on my website and 5 videos in my YouTube channel. Oh, right, I opened a YouTube channel in September! I have 40 subscribers right now so there is a lot of room for improvements there and next year I will upload other rust contents for sure!

Daily job

Even if it is only a small entry in this post, my daily job is of course what occupies most of my time.

This year I realized I want to work with rust full time, not only during weekends. So, on November I joined True Layer, which is what I consider the best decision I have ever made in my career (which honestly is not that long anyway ๐Ÿ˜‚).

True Layer is amazing, both from a human and a technical perspective. I am learning a lot of stuff about rust and the cloud native world and even if we are remote I feel very well connected with my team (which is amazing by the way ๐Ÿ˜).

Open Source Saturday Italy

Contributing to open source is funny, but doing it together it’s better. That’s why starting from the idea of Open Source Saturday Milano I created Open Source Saturday Italy, the online version, useful for people who lives in small cities with no meetups and compatible with our beloved covid restrictions!

We meet on Saturday online on discord and we do some pair programming. You cannot imagine how much I learned from these events and how many nice and talented people I’ve known.

If you like the idea you can create an Open Source Saturday for your own area! ๐Ÿ˜

Talks

This year I gave two talks (remotely of course ๐Ÿ™ƒ). The first one was at the Italian Linux Day, where I talked about how to avoid using the mouse for the sake of a better workflow. The second one was at the Rust Milano Meetup and it was called How to create an awesome Rust project on GitHub.

If you are interested I recorded two YouTube videos that have almost the same content, you can find them here and here.

Mentorship

In September I joined the awesome rust mentors army. ๐Ÿค 

I was contacted by almost 10 people (I should check old messages on all socials for the exact number). They were really nice overall and I think I was able to help all of them in a way or another. ๐Ÿ˜€

Certifications

In July I attended the Computer Engineer Professional examination, which is what in Italy we call “Esame di stato”.

It was a good excuse to review old University notes and learn new concepts at the same time. In particular, the ethical aspect of our profession is something it’s always underestimated and it was really pleasant to go through our formal codes of ethics.

Personal life

I like to keep most of my personal life offline. Just wanted to say I’ve been really lucky, since all my family is doing well.

Also, I started playing guitar again after 5 years or so and it’s a great way to switch context from programming and have some mental rest! ๐ŸŽธ

Conclusion

I am very glad my profession allows me to do all this amazing stuff from a 600โ‚ฌ laptop. Other people like musicians, actors, etc. aren’t so lucky, so we, as developers, should appreciate this possibility every day.

My 2021 resolutions are the same of 2020:

  • Have fun
  • Be curious
  • Make the world a better place (even a little bit!)

Maybe also “do better new year’s resolutions?”. The point is that 90% of what I have done this year wasn’t predictable at all in December 2019. I mean..starting a meetup, switching my full time job from embedded to rust backend development..really? ๐Ÿ™‚

Of course I have long term goals, like learning Haskell, improving my kubernetes skills, recording more YouTube videos or start watching Game of Thrones. But I feel like seriously writing them down and assigning a deadline will prevent me from doing random stuff that just came to my mind the day before while I was going to bed. ๐Ÿ˜…

So actually not having proper new year’s resolutions is the way to go for me in 2021. Let’s see if I will change my mind in 2022. ๐Ÿ˜