Category

Free thoughts

Post of the Week

Welcome

Welcome to my “Post of the week”. In these posts I share thought, ideas or fact that I have experienced during my last working week. If this is the first post of this kind, I suggest you to go and check out my latest posts too:

These small posts are aimed at new developers and people that want to learn what I believe to be important events that happened during my week.

I really hope you enjoy it, and as with every of my post, I look forward to see feedback and comments.

Code Review – Business Value / Coding Standards

This week I had the pleasure to work to Bristol, around 2 hours drive from my hometown. This journey help me in catching up on my podcast backlog.

During one of this podcast there was a brief definition of two main types of code review that I have never heard before, but made sense straight away.

The Business Value Review and the Coding Standards Review.

The business value review

This review is usually carried by developer that are aware of the “business value” and are very knowledgeable of the source code. This review focuses less on the actual line by line code, and more on the consistency of the code with the rest of the solution and its architecture/structure decisions.

The business value review are carried by people that usually “outside” the team. These are the review that I get asked the most being a technical lead. I was not aware of this specific distinction, but I was providing “business” insight and suggestion.

The coding standards review

The next type of review are called “coding standards” review. This is usually carried within the team and are more focused on the actual adherence of the coding standards and specific project implementation. This review goes in more details, and at times can actually even point out simple breaking space and class name.

Unfortunately, make these reviews is quite a rarity for me, as I am not part of a team anymore. This review seem to take place within the team, because they require a level of “trust” and “openness” to actually be accepted without feeling confronted or attacked.

Visual studio code – Github Pull request

As part of my unstoppable need to learn, I have found a very cool extension for Visual Studio Code that will allow you to handle pull request without having to leave our favourite IDE. I think this extension, is going to support all those Open Source project administrator that try to support free project to help the community, while overwhelmed by the amount of time necessary to keep it stable and updated.

A small introduction to the extension can be found in this video from Channel 9.

I have started to use Visual Studio Code for my small side project, but in time, I have started to use it more and more, until I feel it irreplaceable. The Visual Studio Code Team is open to listed, quick to change and Microsoft made it simple to extend. No matter what language you write ( I have used it for full c# projects, js, node and PHP) I greatly suggest you to use it.

Agile Values – Commitment

We have been using agile methodology in our company for quite a few years now. I have never actually had a formal training on scrum, but I always enjoy a nice conversation on its principles. It usually turns out that many people “follow” all principles without even knowing it, because at the end of the day, I see agile as a manual for good team management ( i live this as a discussion for another day).

This week I had the opportunity to discuss “agile” with a very knowledgeable person, that has highlighted me with the value of “commitment”.

For people that are now aware, some Agile methodology are build on top of 5 values that are: Commitment, Focus, openness, respect and courage.

I am of the idea that Commitment is probably the most important and the hardest value to actually follow. The value of commitment is not only about “estimating” tasks and filling the sprint up.

Commitment does not stop at the start of the sprint, it is shown throughout the sprint and I share below what I believe to be strong example of commitment:

  • Estimation – Committing to a time estimation for the ticket.
  • Ticket ownership – commitment to own a ticket and to see it DONE
  • UAT/PO demo – Committing to show any progress as soon as they are ready
  • Daily Standup – Committing what you are going to achieve during your work day.
  • Retrospective – Commit on taking action from previous mistake
  • Sprint Goal – Commit to achieve a specific goal at the end of the sprint

Unfortunately most of the above points are not easy to achieve. It is easy to say your part during the daily standup, but it is completely different to really commit to it and working toward achieving the defined goal. The commitment goal is actually a frame of mind, that when achieved it brings the greatest results.

Summary

This week I have learned so much. I listened to numerous podcast, watched different videos and had the chance to discuss great topics with great colleagues.

I am always amazed to how much I still have to lean. Our industry is so fast, it never stop and learning should be our primary focus.

I really hope the above points will support you in learning something new and please feel free to comment or contact me if you want to discuss anything further.

 

 

 

 

 

Weekly post 28th of September 2018

Welcome

Welcome to my weekly post. In this posts I share thought and ideas or fact that I have experienced during my last working week. If this is the first post of this kind, I suggest you to go and check out my latest posts too:

These small posts are aimed at new developers and people that want to learn what I believe to be important events that happened during my week.

I really hope you enjoy it, and as with every of my post, I look forward to see feedback and comments.

Farewell comrades

Unfortunately no matter how great a business actually is. There are times when colleagues decide to take a different career path that will inevitably will see them leaving the company.

In this instance, unfortunately my colleague was looking for a technical stack that we were not able to offer, and I was more than certain that this moment would have happen soon.

I did not have the greatest relationship with this colleagues, as in many times during the first few months of employment, I had to have many discussion about work ethic and other more delicate subject.

Unfortunately this is part of my job, and even if I am not proud of it, it is normal for some people to feel some resentment, but this case was different.

I was initially surprised that my colleague decided to tell me first about his departure, even before his team mates and functional lead. Then he unexpectedly gave me a most welcoming hand shake and thanked me by saying:

Thank you for everything you have done. You have managed to change me, and change me for good! I will never forget itColleague

This experience though me a great lesson. Sometimes we may think that our actions may have no consequence or have a negative effect, but in reality they could actually change someone else to shape their future.

Fresher week

This week, all over the UK, first year students are celebrating their arrival to their chosen university. This week, apart from the great vibe and freebies I could fetch all over town, I was actually involved in a presentation to Computer Science students at the University of Wales Trinity Saint Davids (UWTSD).

I presented with one of my colleagues, and it was great to be able to share ideas and tips to people, and hopefully, give them the opportunity to come and join our company.

While walking around the theatre, I could feel the eye focusing on us, I could feel the thoughts running in peoples minds. I hope to have succeeded to spark some interest, and hopefully give them good tips that will help them in their career path.

At the end of the day, no one can really know what lies ahead, but I know deep inside that I have done my part and I wish all those students the best possible outcome!

Keep organised

While I was preparing the above presentation for the University students, I realised being organised, is probably my strongest skill. If you have ever worked with me, you may know that I am old school and always walk around with my little agenda.

Today I am going to share the methodology used to organise my busy work schedule and small tips that could help you becoming more organised.

This is just a quick guide, for a complete guide I need a standalone post, please add a comment or ask on twitter if you are interested.

My organisation is an adaptation of the Bullet Journal. I should probably thank them for my success, and without their ideas I would probably still be using the agenda normally, loosing out it all the great feature that I now use on a day to day.

During the next few sentences, you may start to think that I am crazy, but I really urge you to keep reading and try it, because it is not actually hard to implement and the results are amazing.

Index

All my agenda’s start with a few pages that are initially empty. This pages will store my index with all relevant titles and page number. This is essential when the agenda start to get full. Differently from a normal usage of an agenda, pages will live for a long time, and you need to know where they are ( it also remind you of what information you have stored).

Usually a couple of page are enough to cover all my agenda (4 pages for just in case).

Week by week

The index pages are usually followed by the first “Week page”. Each of this page begins with a title that indicate the date of Monday for each week. For example this week would be titled “WC 24th Sep 2018”. I usually write the title on the top right so that they are away from the rest of the page ( that gets messy).

This page include all the “action” that I need to take throughout to week and all the one that were not completed on the previous one. This is my first tip “If you are not immediately starting an action, WRITE IT DOWN!”

I write tasks like:

  • Answer john question
  • Send email about X
  • Complete epic X

All tasks here need to be concise and tangible. I would never write anything that could have no end! This page is essential, because it will show you everything that you have done during your week.

More importantly, it will highlight if you have not been able to complete the action that you were planning to do at the start of the week! (there is more to this, and I suggest you to check out the website).

Backlog

This is an agile term that can be described as:

An accumulation of works waiting to be done or orders to be fulfilled.wikipedia

This will be the first page that we add in our index. The backlog will include tasks that you have NOT been able to complete in the “Week page” and that may have low priority at the moment.

If i personally move something in the backlog, I feel really bad, because it means that I am falling behind, or that I did not focus and managed my action properly.

When you have quite times, or when you have the ability to do some extra work, you can easily go back to the backlog and move the tasks into the Week page. (When this happen, this is a good moment).

Special event / meeting

This is probably the most important point of my agenda. I fill it up with meetings and “recurring” action that need a specific point. This is easier to explain by actually sharing a few pages that I have an its needs. Each of this entry need to be added in the index page.

  • Chapter meeting – This page is used to add information that you would like to share during the chapter meeting. It is very useful for information that you want to share and it will help you in be consistent in delivering information to your team.
  • Functional Members – I am a functional lead, and as such I need to take care of my members. I like to write down Good and Bad events. This information NEED to be written down, otherwise you will surely forget about them! And for my past experience, they are extremely appreciated!
  • Specific meetings – I have on average 4-5 meeting a day, and I do not actually use a page for each them, otherwise the agenda will last me a week. I just record meeting in which decision where taken and or assumption where made. It is important to remember what was agreed when the time comes for the work to actually take place.
  • 121 – This is another important page for me. Keeping track of even that I want to share with my functional lead. There is nothing worst that meet your functional lead and say “I have nothing to say”. We all have something to say, we just do not remember!

Summary

This week post has 3 different posts and it is not easy to find a specific topic. I really hope you have found any of the above interesting and I look forward to receive comments and suggestion.

With this I salute you and I wish you a fantastic weekend.

 

 

 

 

Weekly post 21st Sep 2018

Welcome

Welcome to my weekly post. In this posts I share thought and ideas or fact that I have experienced during my last working week.

We are all too busy to actually write entire blog post on any small details, but small and concise info can be gathered in just a few minutes, and writing them down is helpful both for the writer ( allows him/her to think about the events) and for the readers (that could learn from it).

I really hope you enjoy it, and as with every of my post, I look forward to see feedback and comments.

Overtime != Overproduce

Today I would like to begin my post by sharing an event that took place on twitter. The twit was initially created by @ashleymcnamara, and it was a simple message to people to stop and overwork.

Work/Life balance starts with your leadership teams. I don’t check my email after 5pm because that’s family time and my boss respects that boundary. I love my job, but I don’t live to work. I work to live. Stop praising people for working 18 hour days.
Twitter conversation with @ashleymcnamara

 

That post made me realise that unfortunately the IT industry is full of driven individuals that give 200% of themselves working for incredible amount of hours.

This kind of behaviours is not maintainable, and as the title shows, it does not actually increase productivity.

I have been working for the same company for over 5 years, and in my opinion, the main reason that kept me there, is my ability to maintain a very healthy life/work balance.

I am a very driven and organised individual that gives 150% of himself during working hours. But on the same time when home time comes I am ready to give full attention to my family and personal interest. I am very keen in keeping this line defined and strong, and all my colleagues are well aware of my work attitude (No late meetings, no phone calls).

Most of you may immediately comment that this is probably just possible because my company allows it, but I do not agree on that. This may be the case sometimes, but I am of the opinion that most of the time, the behaviour is all due to personal control.

To enforce my comments, I know of many individuals within my company, that work on average 10/11 hours a day, and are asked (in some occasion) to work even more, but this does not actually mean that they are more productive, or that they should be praised by it.

I surely agree that it is not easy to push back, and it will be hard at times to refuse to help, but I am of the idea that if you are not able to complete your daily tasks and/or projects, within a working days, then working more would just hide the real problem that is due to bad managements.

disclaimer: Of course there are some “specific” situation like live issue, or very “one of a kind situation” where I have given my support, but it is a very rare occasion, and when it happens, I make sure it is raised and discussed with the team.

Hack the City – help the community

Being a developer, has lots of advantages, but unfortunately like every other job, it also comes with some disadvantages. One of this is actually the monotony that the day to day job offers us.

Unfortunately, there is no IT company around that can easily keep developers interested for a long length of time. Luckily I have found the solution for this problem, and it can be summarised into one single word “community”.

On Monday I was involved into a local meetup called hack the city. This, like many other’s meetups I attend locally, is a great way to try something new. They can be used to share your knowledge, or to get involved in something that is outside your conference zone.

We have all tried many side projects that we will complete one day. But we are all aware that the percentage of completed side project is quite low.

I usually compare side project to attending the gym. We all say we will do it to lose the extra weight, we go for a couple of weeks, and then we start to lose interest and go less often, until we keep paying a membership for something that we do not actually use. Does this means that no one will ever attend the gym? Are gym’s completely empty?

The secret is in cooperation and support, in fact many people would probably agree that most of their consistency in attending the gym and get fit, was due to a specific person that has supported them or to a group of people or a personal trainer.

Well I think “community” work can actually be the equivalent to a personal trainer for a developer. Being part of a group that has agreed on specific deliveries and goals, is sometimes enough to make sure you keep working for your goals, and on top of that it will keep you interested, it will keep the spark within you and will (indirectly) also make you love your day to day work even more.

I would really hope for more people to get involved. It is fantastic, and even more it is more beneficial that you actually think. If you are in the Swansea area, I urge you into getting involved.

More brains == better result

In this last post, I am actually referring to Pair Programming and not clinical surgery. Unfortunately, due to the nature of my position, I am not able to support my team member often, but when it happens it is a great joy.

On Wednesday I had the chance to Pair programming with two members of one of my team, in creating our first Vue.js Mixins (is a bit more complex that this actually).

There are still many people that may argue that having two/three developers on a single PC  is a waste of time, but the more I do it, the more I think it should really be pushed as an industry standard.

I am going to list below just a few advantages of Pair programming:

  • knowledge transfer There are instances where it is essential for part of your system to have as much exposure as possible. No documentation can compare to Pair programming.
  • Skill transfer We all have different skills, and we may all tackle problems differently. I have found Pair programming being an enlighten exercise, no matter the experience of developers involved.
  • Self-esteem We all know that the industry is full of “imposters syndrome”, and many developers may not actually have a strong idea of themselves. For my experience, Pair programming is actually a fantastic tool to support developer to come out of their shell.
  • Time saving This may raise lots of highbrows, but I am of the opinions, that if there are complex tasks in a sprint, Pair programming, should actually be mandatory. It would actually result in better code, less mistakes and quick delivery.

Pair programming it is not easy. I had to learn how to give space, how to wait for other people to comment, how to accept other people opinion, but all this has made me a better developer and I will always welcome a couple of hours of Pair Programming whenever I can.

Summary

While reading the post, I have just noticed that all the above points seem to aim at supporting developers in keeping their work interested. It is not easy, but there is no harm in trying.

You may be working in a company that may not actually support you and won’t allow you to accomplish any of the point above, and if it is the case, I  suggest you to leave (maybe come to work to Vizolution J ), because you spend on average more time in work that at home with your family, and I am of the opinion that you should enjoy it as much as you can.

 

 

 

Weekly Post 14th Sep 2018

Welcome

Welcome to my weekly post. In this posts I share thought and ideas or fact that I have experienced during my last working week.

We are all too busy to actually write entire blog post on any small details, but small and concise info can be gathered in just a few minutes, and writing them down is helpful both for the writer ( allows him/her to think about the events) and for the readers (that could learn from it).

I really hope you enjoy it, and as with every of my post, I look forward to see feedback and comments.

Conference for president – SwanseaCon

No better way to start this post by thanking my company for giving me and many of my other colleagues, the opportunity to go and attend SwanseaCon. I have already shared my love for conferences in one of my previous post (Why sending your staff to conference is actually a good idea), but sharing my appreciation again does not harm! 🙂

If you have never attended a conference I greatly suggest you to try and find one nearby. They can be costly at times, but there are always free tickets and promotions going around, and if you really try hard, you usually can get a good discount on prices!

If someone would ask me what is the main benefits for attending conferences, I would probably say that it is not just the “learning” part of it, but it is actually what I call the “eye opening” moments.

What I mean by “eye opening” is hearing attendees and speaker discussing the same problem that you are facing, the same issues that you are yet to resolve, and the same long lengthy meeting that you are forced to attend. In simple word, it help you realise that the neighbour lawn is not actually greener that yours. This conversation helps you to appreciate what you have, and in same ( mine) even feel blessed.

Help your peer

As many of you know, I am very keep in helping individuals around the globe to join our industry. I do this primarily because I really like to teach other people, but also because I am of the idea that teaching is the greatest learning tool existing on earth ( Maybe a topic for another day).

There are lots of fantastic movements around the world, that are helping people in learning the basic skills (freecodecamp, codeacademy, codementor), but unfortunately this is still not enough. My experience has shown me that the overwhelming part of a full time job in coding is actually encapsulated by the dozens of actions and tools that we all use on a day to day.

You may know the basic understanding of array and how to declare objects, but no many people actually help you learning the GIT branch and release processes, IIS website setup, Issue tracking tools (JIRA, TFS), SQL/MYSQL migrations, coding standards, etc…

The reason why I am mentioning it in my weekly post, is because I have accepted the first PULL request for one of my mentee. This can be a simple day to day activity for a seasoned developer, but I think for others can be a very important moment and I wanted to share my happiness!

The power of “face to face”

We live in a time where “remove working” is the cool job, where big offices are being replaced by small local ones, where people that seat just a few desk away prefer to contact you by Chat instead than have a proper conversation.

As much as people praise the above actions and movement, I am a still a strong believer that a good face to face discussion is un-replaceable. I am blessed to have good flexibility in work, and I use it just when I am in real need for it. I cannot deny that I am very productive, that if needed I am able to switch off all chat and really focus on my day to day activity, but I am also aware that all the chat and the conversation that I may be avoiding could actually be more important than my “focus” time. ( I am aware that staying home does not mean that no meeting or conversation take place, but I get less disrupted when home).

In the company where I currently work full time, we have few offices, and this week there was a last minute sprint change that put me in “charge” of a team over 100 miles away. As much as I like my bed, and I like to be in the comfort of my office, I decided being able to have the “face to face” meeting was more important.

The team was willing of having “remote” meeting and was not too bothered about it, but I can guarantee my visit made them more than happy.

The first good feedback that I saw was that everyone, knowing that I was going early in the morning, made a good effort of starting at a reasonable time to have “as much time as possible” together. Next, we manage to achieve so much in a single day, and it was all due to the guys great intensity in using my time wisely. Last but not least, during lunch, pleased from the great attitude I offered the team a coffee and we had a great break where we “bond” as a team.

I know many people that have been working remotely for years, and I am not saying anything against it, but personally I know that I prefer to share a desk and a coffee with someone instead than hiding behind a webcam. (probably because I am Italian, and I use my hands too much to just do a video call!)

The hard choices (Spaces or tabs)

This is the last point that I want to share with you all. In fact it happened on Friday, right before the end of my busy week.

If you have been a developer for many years, and if you are in a medium large company you have surely been part of a meeting like this before.

Due to some technical changes, I had to get together with the rest of my colleagues to “update” our existing coding standards. As the title show, this meeting turn our to be very hard indeed.

Unfortunately, everyone has personal preferences, and by the time you reach an advanced/senior level you will have a strong believe in your ideas.

I have found an happy medium in the past few years, where all the “coding standards” are decided democratically using questionnaire that are shared with all our developers. The advantage of this method is that it reduce the amount of arguments ( reduce not remove!) but on the other hand it give no control at all one what will be decided.

As much as I suggest to you all to use the same approach, I warn you that people “preferences” still stand strong, so no matter if you manage to go through and decide once and for all if you will be using commas before or after, and the amount of spaces you want, this conversation will ALWAYS come back as soon as the work “coding standards” is mentioned. This means that you have been open to the possibility of changes overtime, if you like it or not.

I cannot say that I am happy to deal with coding standards and be part of this “hard choices”, but deep inside I feel good when having this conversation. The show that people care, they show that they want they voice heard, and you should never stop from happening, as hard as it is.

Summary

This week has been quite a roller coaster, even if I do not remember when it was the last time that I had a quite week. I really hope you enjoy the topics covered above, and please feel free to discuss and comments below or by contacting me on twitter.

 

A look at the past and a thought for the future

This year it has personally been a roller-coaster. I have started with a new position that resulted in many new challenges. I have been defining the company “standards”, working hard to please has many people around the company, while still defining something that was strong and easy to pick up, and finally  I have managed to get outside of my conference zone by having an article published on net magazine and speaking at DDDnorth.

If anyone in December 2016 would have told me that I was going to accomplish all the points above in just one year, I would have laughed. When I look back at each individual point above, and remember the effort needed to achieve them, I am amazed to realise that all fit in just 12 months, and today I want to share some of the lesson that I have learned, plus thank some of the people that have really supported me in this amazing year.

New position =  new challenges

great responsibility quote

With great power comes great responsibilityPeter Parker

You do not need to know the future, to realise that a new position will bring new challenges ahead. Sometime, the challenges can actually be unexpected and may require a swift in the way you are used to work to adapt to it.

I am part of a Tech company, and as many company in the same industry, moving up the ladder, actually means detaching from the “development” environment, to be more involved in the “Delivery/Process” day to day activities.

Many developers usually do this move too early without actually being aware of the consequences of it to the day to day activities. I have personally thought really hard before accepting the position and I have listed the main question that you should ask yourself before moving away from your beloved developer position.

  • Do you have the right skillset
    • Sometimes people are promoted because of their technical skills, but when moving up you may require other abilities (communication, managerial, coaching). It is very common to see amazing developer fail in managerial role.
  • Do you want to use your “social” skills
    • It is a fact, Developer are not the most social individual, and in many cases, having a promotion, will mean having to attend more meeting and having to deal with more people that are not developer.. are you ready for the challenge.
  • Are you ready to stop coding
    • Being a developer is very hard. The industry is so quick to change that even just an year away from the keyboard would be hard to regain. Make sure that if you make this step you are actually ready to leave Visual studio behind until retirement, otherwise moving up the ladder may not be the right decision for you.
  • Are you sure taht you will be as happy as you are in your current position?
    • The one think I learned from developers is that we do our job because we LOVE it. So before you make any decision, try to think about your happiness and not just about the pay-rise.

I have gone through the above questions many times before feeling ready. It is very important that you do not take decision just driven by money and think about your happiness. Remember that we spend more time in work that with out loved one, so choosing the right position is like finding a wife ( don’t tell my wife).

There is no right way to make changes

Change is never easy. It is very rare to make some big change and make everyone happy, and I found myself in the deep end before I realised it.

As stated above, I have decided to create some standards to be used across the company with the aim of improving the actual code quality (coding standard, eslint implementation and Unit tests).

It was a genuine thought and I would have never thought that it would bring so many discussion and create such a storm within the teams ( I could see why no one tried).

If I would go back, I would probably change the approach used to tackle the situation, and I am going to list below a couple of suggestion that could help you achieving your goals.

  • Create a “contract” in advance
    • Make sure everyone involved is aware of the way things will be decided in advance (For example, if 51% of developers want this we go ahead), defining this too late could create more trouble.
  • Make allies
    • It is very important to have some allies, when you want to make changes that could take time and energy. You need to be able to have someone on your side, be prepared.
  • Use Facts not words
    • This may not always be possible, but it is very useful to have ability to reference other source and not just give personal opinion. This will help to make the discussions less personal.
  • Solutions, not problems
    • It is extremely common to have people against that disagree on the proposed change. This is accepted as long as people bring a solution to the problem, and do not just complain for the sake of it.
  • Accept defeat
    • This is probably the hardest one, but sometime you need to be ready to accept defeat. And as with the “contract” mentioned above, this need to be defined at the start (give yourself a deadline or a tangible end).

It has not been easy to learn the points above, and I would have loved for someone to share them with me earlier, but I now try to use them in my day to day routine and they result are incredible.

Don’t fear the unknown

Publishing an article on a international newspaper and speaking at a conference is probably what made 2017 so special. The idea of getting into this “unknown world” was so scary. I was not aware of the amount of time that goes behind a simple 400 words article, or the hours of rehearse necessary to feel “ready” to speak at a conference.

If you are wondering if it was easier that it look, unfortunately you will be disappointed to actually learn that it was way harder that I would have anticipated. Getting ready for the conference and writing the article was like a never ending cycle. I was creating something, making it work, sharing it to friends and family, and then do it again, over and over again.

But there is a good part in the story. In fact, even if it drained me for every single resource of energy I had, it was completely worth it! The feeling of seeing your face on the newspaper or waking up in the morning and checking twitter to find people referencing your article from the other side of the globe, or receiving great feedback after a speaking session cannot be explained in words.

I was amazed to see the great effect that the above experiences had on my day to day job and career. It is not easy, but I really suggest you all to try something that is way outside your conference zone. You will be amazed and it could actually have unexpected consequences.

2018…

 

I do not know if 2018 could actually be more exciting that the one that just passed. But I am sure to be ready for any challenge, and will surely be looking up to find some more that will push me outside my conference zone.

I always had a very good attitude in work, but the one think that experience is teaching me, is that it is really important to always push your limits. It is perfectly fine to fail sometimes, and not trying is a failure on its own. I am always amazed to see the effect of a simple accomplishment on myself and also on my colleagues.

Before waving goodbye to this fantastic year, I need to write some thanks to my amazing colleagues that have supported me all the way, to my blog readers that are growing everyday, the fantastic coding blocks podcast and slack community and of course to my fantastic wife that is always so supportive and knows how to cheer me up when things do not go to plan.

Buon Natale to everyone! See you next year!