Yup, 2022 flew and it’s that time of the year again. I want to write that boring post that I am the only one to look forward to writing and I don’t expect anyone to read.
Well, if you are brave enough to go ahead and read it, let me say thank you and then, to follow the tradition, let me greet you with a boring GIF:
Becoming an AWS Serverless Hero
Let’s start by addressing the elephant in the room, the biggest (and most unexpected) achievement of the year: being awarded the title of AWS Serverless Hero by AWS! 🦸♂️
Now, why is it a big deal to me? Let me quote AWS:
The AWS Heroes program recognizes a vibrant, worldwide group of AWS experts whose enthusiasm for knowledge-sharing has a real impact within the community. Heroes go above and beyond to share knowledge in a variety of ways including online via social media, blog posts, open source projects, videos, and forums; or in person at conferences, workshops, and user group events.
I have surely done a good amount of work in this sense and I am really happy to get the recognition, but this one is very hard to get and I did not expect it at all.
In addition to that, it’s not a program you can simply apply to. AWS has obscure ways to discover and select potential heroes every year, and there aren’t that many worldwide.
Heroes are divided into areas of expertise (Community, Container, Data, DevTools, Machine Learning, Serverless). I was awarded the Serverless hero title, which makes a lot of sense, since most of my AWS efforts have been around serverless in the last ~5 years.
What I believe has been the most important thing that I have done in the realm of serverless is middy, a Node.js middleware engine for AWS Lambda which allows you to organize your Lambda code, remove code duplication and focus more on business logic.
And this brings me to the part where I have to say thank you to other people because without them I probably wouldn’t have gotten this recognition:
- Will Farrell, maintainer of Middy. Will has done incredible work in the last 3 years taking Middy above and beyond. I wouldn’t have been able to keep the project going without Will’s hard work, so I am incredibly grateful for continuing from where I mostly left off. Thanks, Will!
- The amazing team at fourTheorem, because I feel like I am learning and growing a lot by working with such a talented and enthusiastic team of professionals.
- Eoin Shanaghy for sharing his endless knowledge with me and for being such a fantastic co-host for AWS Bites Podcast.
- Tons of folks who have been inspirational in my AWS serverless journey: Yan Cui, Heitor Lessa, Sara Gerion, Matt Meckes, Andrea Amorosi, Alex DeBrie, and many more that I am sure I am forgetting (sorry).
- All the other other heroes, for being such an incredible source of inspiration.
- All the AWS folks who decided to pick my name for the award!
What happens next? Well, for starting I got some cool swag. Thanks, AWS much appreciated.
Yeah, my box probably got a few kicks on the way…
Other than that, you’ll probably see me posting more AWS and serverless-related content and most likely I will attend the re:Invent in 2023!
Also, I want to take this opportunity to give a big thank you to the AWS Heroes team: Farrah, Taylor, and Albert.
“With great power comes great responsibility”
— Uncle Ben
Confirmed as MVP
In July I got a nice azure postcard from Microsoft telling me that I got re-confirmed as MVP (Most Valuable Professional) for Developer Technologies for the years 2022 and 2023!
The Microsoft MVP program is somewhat similar to the AWS Hero program, meaning that it aims to reward people who contribute heavily to the tech industry by sharing their knowledge, creating content and practicing public speaking. The main difference from the Hero program is that the MVP program is much more generic, it does not necessarily focus on Microsoft technologies.
It makes me incredibly proud to be recognized as such by Microsoft, especially considering that I am not a big user (nor promoter) of Microsoft products and languages.
One cool thing about the MVP program is that they give you a little totem the first year and every year you get a new token that can be added to the stack!
I should put it on a shelf at some point!
You can also check out my MVP profile to make sure I am not lying to you. 😜
“Sharing is good, and with digital technology, sharing is easy”
— Richard Stallman
Codemotion Ambassador
In 2022 I got nominated Codemotion Ambassador!
Codemotion is the biggest tech community in Italy and one of the biggest in Europe. They also organize some of the best tech conferences that I had the pleasure to attend.
Codemotion ambassador program aims to create a structured Codemotion supporters network. Ambassadors are supported to share their software development knowledge, grow their professional skills, and provide value to the global tech community.
Since I have been eagerly contributing to Codemotion during the last 8 years, it makes me really happy to be part of this group of people who can evangelize this community and make a bigger impact together on the overall tech community.
I am particularly proud of one of the many initiatives I have been involved with as an ambassador: the Wannabe speaker program, in which, every ambassador got the chance to help a first-time speaker to deliver a kick-ass presentation.
I had the pleasure to work with Danilo Spinella who presented a talk called Beautiful CLI Applications in Rust. You can watch the recordings if you are curious (and you should).
To be fair, Danilo did not need a lot of support and he was able to deliver an excellent and enjoyable presentation like a true veteran speaker!
Also, I want to take this opportunity to thank Francesco Sciuti, Mara Marzocchi, and the rest of the Codemotion team for adding me to this fantastic group of professionals. Ok, we are not always that professionals but we definitely know how to have some fun!
“You cannot teach a man anything. You can only help him discover it within himself”
— Galileo Galilei
Public Speaking
I did not stop doing public speaking in 2022, so let’s have a look at a picture and then some stats.
This picture is from my talk at Codemotion Milan in October where I presented a talk called: “Serverless for High Performance Computing”.
In 2022, I spoke at 25 different events and surpassed more than 100 speaking engagements in total! Yeah, vanity metrics feel good sometimes! 😛
Here’s the full list for 2022:
- Migrate the monolith to the cloud on Fabio Biondi’s Twitch Channel (in Italian) (Slides)
- A look inside the European Covid Green Pass at Rust Dublin Meetup (Slides, Video)
- Dal monolite al cloud: no stress! at Codemotion DevCast (in Italian) (Slides, Video)
- The senior dev at Private event (Slides)
- Happy days with Node.js streams workshop at CityJS London (Repository)
- Finding a lost song with Node.js & async iterators at private event (Slides)
- AMA: Node.js design patterns, AWS e altre cose fantastiche live interview with Emanuele Bartolesi for UGIdotNET (in Italian) (Video)
- Teach Kelvin Your Thing: Node.js streams with Kelvin Omereshone (Video)
- Finding a lost song with Node.js & async iterators at Node.js Global Summit (Slides, Video)
- Javascript iteration protocols workshop at Codemotion Workshop Fest (Slides)
- Let’s build a Serverless e-commerce from scratch workshop at CityJS Athens (Slides)
- Finding a lost song with Node.js & async iterators at CityJS Athens (Slides)
- Serverless for HPC at AWS Dublin Meetup (Slides)
- Async JavaScript and Node.js Design Patterns at Sailsconf (Slides, Video)
- Interview with Reconfigured podcast (Video)
- Building an invite-only microsite with Next.js & Airtable at React Dublin Meetup (Slides)
- JavaScript Iteration Protocols workshop at NodeConfEU (Slides, Repository)
- Serverless for High Performance Computing at Codemotion Milan (Slides, Video)
- Serverless for High Performance Computing at Cloud Day (Slides)
- Come sviluppare una carriera in tech inteview with NonCompila on Twitch (in Italian) (Video)
- Full Stack Developer Creating Content interview with Zak Aghbal for the Content Creator Life Podcast (Video)
- Let’s build a 0-cost invite-only website with Next.js and Airtable at Conf42 JavaScript (Slides, Video)
- Everything I know about S3 pre-signed URLs at AWS User Group Dublin Meetup (Slides)
- From Node.js To Design Patterns at BuildPiper Meetup (Slides, Video)
- Building an invite-only microsite with Next.js & Airtable at React Milano (in Italian) (Slides, Video)
If you are curious to see all my other speaking engagements, I keep the complete list in the speaking section.
If you are brave enough to withstand my accent, you can invite me to speak at one of your events.
“All life is problem solving”
— Karl Popper
AWS Bites
In 2022, Eoin Shanaghy and I produced 45 new episodes of AWS Bites, a weekly podcast where we discuss interesting AWS-related topics.
“What can kitties teach us about AWS” is probably my favorite episode so far:
I don’t really know if it’s the best episode to date, but certainly, it is the one with the best thumbnail! 😼
One cool thing we did for AWS Bites is that this year we tried to build an actual product from scratch in a series of live streams. We built a minimal but functional clone of Dropbox transfer or WeTransfer and we did that by using serverless technologies on AWS.
The playlist with the recording of the live streams is available on YouTube: Live coding a serverless file transfer app on AWS.
Finally, it is worth mentioning that we surpassed 1000 subscribers on Youtube and that we also got some awesome stats from our Podcast on Spotify.
The episode count somehow does not match exactly what we have done, but all the other stats are more impressive than we expected. Let’s assume these stats are somewhat accurate and let’s celebrate… I guess. 🍻
“Success is not final, failure is not fatal: It is the courage to continue that counts”
– Winston Churchill
Live coding on Twitch
Throughout 2022 I kept streaming on Twitch quite consistently. As I did last year, most of it was about solving Advent of Code challenges and learning Rust with my friends Eugen and Roberto (thanks a lot for being there, having fun, and learning with me).
We streamed 36 times in total (almost once every week). Here are some more nerdy stats:
I am not at the levels of ThePrimeagen, but hey we had a lot of fun and I certainly learned a lot!
Towards the end of the year, we also spent a bit of time learning Bevy, a game engine written in Rust and built some game prototypes with it.
If you want to watch the recordings of these live experiments, here’s a YouTube playlist: Rust gamedev with Bevy.
A big shout-out goes to Tommaso Allevi, for helping us kickstart this journey into Rust gamedev. I have to say I really like the ECS (Entity Component System) model of Bevy so far, so I look forward to playing more with it!
Finally, I have been experimenting a bit with OBS and did a solo stream where I played a bit with Solid.js a frontend JavaScript framework that I am liking a lot and that I’d like to use more.
All the recordings of my live streams are available on YouTube, so make sure to give me a follow there!
“Play is the work of the child”
— Maria Montessori
Node.js Design Patterns
Node.js Design Patterns, the book I co-authored with Mario Casciaro, is still trending quite well after 2.5 years since the third edition was published.
The thing that makes me really happy is that the book keeps receiving very positive reviews. We doubled them since last year while keeping an incredibly high average rating of 4.6/5.
At the time of writing the book is trending at:
- #110,173 in the global list of Amazon books
- #11 in the Web Services category
- #22 in the JavaScript category
We also keep receiving spontaneous comments and seeing random Reddit comments about how the book has been useful to readers.
It seems like the book is even being used as teaching material in some universities… and someone even contacted us to say that they discovered this book in the library of a tech investment fund in San Francisco. 🤯
Node.js Design Patterns keeps feeling like one of my biggest achievements professionally and I am always grateful to Mario for involving me in this awesome project.
The book still feels quite relevant and up-to-date (updated to Node.js 14 and using ESM throughout), so I don’t feel like it’s time for a new edition just yet.
If you disagree, do let me know. I’d love to hear your opinion!
Finally a HUGE shout out to my dear friend Kelvin Omereshone for gifting copies of the book to quite a few people! ❤️
“A book is a garden, an orchard, a storehouse, a party, a company by the way, a counselor, a multitude of counselors”
— Charles Baudelaire
FullStack Bulletin
FullStack bulletin is a free weekly newsletter about full stack web development. I have been running this project with my dear friend Andrea Mangano for the last 5 years.
The achievement of 2022 is that we surpassed 300 issues and 2500 subscribers!
FullStack bulletin is always looking for sponsors, so if you like this format and you would like to reach a vetted audience of full stack engineers please consider sponsoring us!
“The art of art, the glory of expression and the sunshine of the light of letters, is simplicity”
— Walt Whitman
Middy
Middy is a Node.js middleware framework for AWS Lambda. I have been working on this project since the early days of Lambda (even though the first public commit was only made on the 3rd of August 2017).
With that being said, I can’t really claim anything for the success of the framework during the last three years. Insted all the credit goes to Will Farrell, who has been relentlessly maintaining the framework, and to the amazing community behind Middy!
The main news is that Middy v4 was published this year bringing significant innovation including:
- Support for Node.js 18
- Adoption of the new modular AWS SDK v3
- Better support for ESM
- Various performance improvements and bug fixes
Middy has been growing even more in 2022, here is a shiny graph to prove it:
This graph shows the number of weekly downloads and it clearly highlights that the amount is more than doubled from the previous year!
Note that @middy/core
represents newer versions (from v1 to v4), while middy
is the legacy 0.x package (surprisingly still being used a lot).
If we look at the total number of downloads throughout the year we surpassed more than 8 million downloads!
I look forward to checking these stats again next year!
Meanwhile, if you use Middy, make sure to support Will Farrell for his awesome open-source work (yes, you should consider donating on GitHub)!
“If you want to heal your soul, ride a Vespa instead of driving a car”
— anonymous
Articles
In 2022, I wasn’t really a prolific author on this blog. I published only 2 articles:
- Invite-only microsites with Next.js and AirTable
- AWS Solution Architect Professional exam, my notes and tips
On the other end, I think I was quite prolific in other media. Below there’s a full list, but the most important ones in terms of authority are definitely AWS and InfoQ! Both feel like massive achievements on their own!
- What do you need to know about SQS?
- Node.js stream consumer utilities
- What can you do with EventBridge
- What do you need to know about SNS?
- A Recipe to Migrate and Scale Monoliths in the Cloud
- A serverless architecture for high performance financial modelling
- Quality code: Node.js design patterns and performance (interview with Sprkl part I)
- Quality code: Node.js design patterns and dependency management (interview with Sprkl part II)
“Every secret of a writer’s soul, every experience of his life, every quality of his mind, is written large in his works”
— Virginia Woolf
Open Source
In 2022 I continued steadily to do some degree of open source work by contributing to existing repositories and starting new ones.
Here’s a list of the most meaningful contributions:
lmammino/tall
- a Promise-based, No-dependency URL unshortner (expander) module for Node.js. I have been working with Karl Horky to make the library extensible and to add some advanced plugins.lmammino/rust-advent
- the repository where we publish all our Rust solutions for Advent of Code.- I contributed to
aws-samples/serverless-patterns
with a small fix that leverages the streaming capabilities ofsharp
. - I created a repository to benchmark the performance of
phf
, a Rust library using perfect hash functions to generate build-time hash tables, against a mega-match expression. - I delivered a talk called “The Senior Dev” and since I decided to use
slidev
to generate my slides, I hosted the source code for the slides on GitHub. - I created
fourTheorem/api-gateway-sls-example
, an example of how to build a simple API with API Gateway, Lambda and the serverless framework. - Thanks to my open source work on lmammino/iteration-protocols-workshop, I had the pleasure to be invited to review a PR that adds Async generator documentation to MDN.
- I developed a repository called
lmammino/secret-pizza-party
, a sample Next.js website to showcase how you can make invite-only SPAs with Next.js, AirTable & Vercel. - I worked with the awesome Theodore Vorillas and submitted a couple of PRs to improve
proximahq/clickhouse
, a simple, plain, efficient Clickhouse client. - I worked with Eoin Shanaghy on
awsbites/weshare.click
, an example personal file transfer app on AWS. - During NodeConf EU I attended a fantastic workshop by Patty O’Callaghan about tensorflow.js and, as a result of what I learned, I developed a sample application that you can find in
lmammino/crappy-object-recognition-web-app
(screenshot below). - During NodeConf EU I also collected all my notes in a repository.
- I created a simple script that helps me with tracking my expenses for tax reasons. I am not a tax expert, but you can take a look and adapt it to your particular use cases (while making sure to consult your accountant)!
- I have created several repositories with my Rust Bevy experiments:
lmammino/bevy-wrapping-square
,lmammino/stranded-in-space
, andlmammino/bevy-fuel-tank
. - I also created a Rust repository with my experiments with Nannou, an open-source creative-coding toolkit for Rust.
- I started solving Advent of Vue challenges but using Solid.js instead and I am keeping my code in this repository: lmammino/advent-of-solidjs.
- I created a simple repository that can be used as a library and an API to get facts about Mount Etna (the volcano close to where I am from in Sicily).
Above a screenshot of my crappy object recognition application built with Tensorflow.js and Solid.js. I am also about 70% sure that I am a real person! 😆
A final mention is my open PR together with Simone Sanfratello where we are trying to bring the awesome anti-trojan-source
detector by Liran Tal directly into nodesecurity/eslint-plugin-security
. I hope this will be merged before the end of 2022!
“Perseverance is not a long race; it is many short races one after the other”
— Walter Elliot
Random stuff
And as we get ready to wrap things up, here are a few more random things:
- Last year, I became a Certified AWS Solution Architect Professional. If you are curious to know what was my experience and get some of my study notes, make sure to check out my article AWS Solution Architect Professional exam, my notes and tips.
- I got married to the most wonderful person in the world (and this alone makes 2022 the best year ever)! 👰♀️❤️🤵♂️
- I Restarted BJJ training (and after almost 3 years it feels like I have to re-learn everything from scratch)!
- I kept running, running a total of 340 Km… 🏃♂️ And once again big thanks to my friend Luca Marchesotti for motivating me.
- I got covid… twice! 🤧
Expectations for next year
OMG, are you still here?! I am seriously impressed. 🥸
At this point, you should go the extra mile and make sure to leave me a comment!
Ok, before we wrap things up, let me tell you what’s my plan for 2023.
Well… there is no big plan, really!
My overall goal is to keep growing my expertise in AWS and Serverless and work on interesting projects. Luckily there is no shortage of opportunities when working with fourTheorem, so I feel this goal will be pretty much achievable organically by just keep doing what I do in my daily work.
I’d also love to have an opportunity to put all the Rust learnings of the last 4 years into something a bit more practical, or production-ready if you will! If a work project does not manifest itself I might try to get a bit more serious with my side projects and maybe try to build something more involved in Rust. I will most likely continue some game dev sessions in my streams, but I might also try to do something that combines Rust with AWS, possibly including Serverless. I have been experimenting with Rust lambdas and I have been blown away by the performance, so there’s an opportunity there.
Finally, I have been quite excited by Solid.js, so I’ll be seeking new opportunities to play with it!
Of course, I’ll try my best to keep pushing things that I have been investing in the last few years: AWS Bites, FullStack bulletin and live coding on Twitch. I will try to find other opportunities for content creation, most likely publishing articles and delivering talks at conferences.
If you have any suggestions or comments on this obviously perfect plan, I am all ears!
I’d also love to know what was your biggest achievement of 2022 and what you plan to accomplish in 2023, so don’t be shy and leave a comment!
This is me, signing out and getting ready for 2023!
Until next time, peace! 👋