My 2023, in review

In this blog post, I retrospect on my 2023 in tech. I’ll be looking at the projects I’ve worked on, the things I’ve learned and the things I’ve achieved!

My 2023 in tech

It’s 2024 now, happy new year! I guess you could say I haven’t written Ansible code since last year!

I’ve had a very productive year in 2023! In this blog post, I’m going to be summarizing my 2023 in tech, what I did, what I learned and what I achieved in a somewhat chronological order

Certifications

This year I went on a certification rush, and I’m proud of the results! I’ve achieved 6 Red Hat certifications and 4 SUSE certifications!

I did the following Red Hat exams and achieved the following certifications:

This netted me the Red Hat Certified Architect (RHCA) certification and title!

I also went to SUSECON this year, where I had the opportunity to do 4 SUSE certifications! I did the following exams and achieved the following certifications:

I’m glad I got to do these certifications, as I learned a lot from them! I achieved a lot of certifications in a very short time, and I’m glad I did! I do need to slow down a bit though, so I’ll likely be doing less certifications in 2024.

I put the practice material I use for these certifications in the diademiemi/certifications repository, and I hope it helps others learn as well!

You can view all my certifications on my about page!

Homelab v2

I started 2023 with a new homelab, based on Ansible, Terraform, Kubernetes and ArgCD! This isn’t the homelab I’m currently running, that would be v3, but I’ll get to that later!

This homelab was deployed using Ansible and Terraform on my local NAS, with ArgoCD used to deploy applications to a Kubernetes cluster! I was rather proud of this cluster at the time, it was a big step up from my previous homelab, this one using more off the shelf components and being generally a better practice environment for how these tools are used in the real world.

I split this project up into multiple repositories, which you can find here:

This design did end up overcomplicating things a bit, and I ended up with a lot of duplicate code. Especially the ArgoCD repository was a bit of a mess and the secret management was a bit of a pain. I did learn a lot from this project though, and I’m still using some of the code and ideas from this project in my current homelab!

You can view the repository structure for each project in the README.md files of each repository!

Tonetag.is

I did my first actual web development project this year! I worked on the tonetag.is website. This site is a list of tone indicators (also called tone tags), which are used to communicate tone in text-based communication.

These tone tags are often used by neurodivergent people, and provide a clearer way to communicate tone in text-based chats! I could not find any existing website which had a definitive list of tone tags, so I decided to make one myself! I’m especially proud how this website turned out, and I hope I could help some people with it! You can find the source code for this website on tonetag/tonetag

Tonetag.is embeds in chat applications and gives their meaning and usage in a URL preview when it is linked. Try it out on platforms such as Discord, Telegram, Slack, etc! For example, “What https://tonetag.is/j?” will give you the meaning of the tone tag /j!

It’s deployed on my Homelab v3, and I’m using ArgoCD to deploy it! You can check tonetag/deployment for the deployment code!

Ansible Content

I’ve written a lot of Ansible code in 2023! From my Ansible Advent of Code 2023 challenge, homelab v2 and v3 to my Roles and Collections!

This year, I spent my time making the hurdle to start using Ansible as low as possible for me, so I don’t have an excuse to not automate something. That resulted in me writing a lot of Ansible Roles and Collections, which I’m very happy with!

My standouts for this year are my diademiemi/ansible_role_template, diademiemi/ansible_collection_diademiemi.template and diademiemi/ansible_project_template. All of these are templates for Ansible roles, collections and projects respectively, and they’re all integrated with Molecule tests, GitHub Actions, Ansible Lint, Ansible Galaxy and can be used as a template from GitHub!

I’ve made the decision to test my Ansible Collections and Roles on the following distributions, whenever possible:

I’m glad I made this decision, as I’ve learned a lot about Ansible and how it works on different distributions and how to best write cross-platform Ansible code!

You can view all my current Ansible content, along with the previously mentioned Molecule tests CI status on my Ansible Content page.

Homelab v3

In June, I started work on a new homelab, this time running on a Hetzner dedicated server and using Rancher! This is still the homelab I’m currently running, and I’m very satisfied with it! It’s stable, easy to deploy and maintainable.

Rancher is a Kubernetes management service, which allows you to manage multiple Kubernetes clusters from a single interface. Rancher also provides a Kubernetes distribution (RKE2), a storage solution (Longhorn) and a GitOps solution (Fleet).

I started this project with the goal of learning Rancher, and I absolutely achieved that goal, as this project helped me achieve 3 SUSE certifications in Rancher!

For this project, I decided to use a single repository, diademiemi/homelab_v3, as I wanted to keep the code as simple as possible and integrate everything as much as possible.

I can redeploy the entire cluster (Wiping the entire cluster and starting over) in about 20 minutes with a single command, all data persisting! I’m already very proud of this project, it’s helped me at work as well. I still wish to improve it in the future! My goal in 2024 is to add a zero-downtime migration solution to this project, so I can reset & upgrade this cluster while keeping it online on failover nodes!

I’ve made an in-depth README for this repository, and I may write a blog post about it in the future, so I won’t go into too much detail here.

3D Printing

I’ve gotten much more into 3D printing this year, something I’ll mention in the next section as well! I’ve gotten a new 3D printer this year, the Creality K1 Max, and I’m glad I got it! It’s motivated me to get into 3D modelling and I’ve been printing a lot more since I got it! I’ve also been printing a lot of fidget toys and other things for friends and family, and it’s very satisfying to be able to make something that makes people happy at home!

OpenSCAD Content

I took up 3D modelling in OpenSCAD this year! I’ve made a few fidget toys and other models. I’m very happy with the results!

I’ve made a diademiemi/openscad_fidget_toys repository for these fidget toys, I’ve been giving them out to friends and family, and they’ve been very well received! It’s great to make something that you can actually give out or use yourself!

My favourite models are the Infinity Cube and Rotating Rings toys, which I’ve made in OpenSCAD and printed on my 3D printers!

Ansible Advent of Code 2023

I’d also like to mention my Ansible Advent of Code 2023 challenge! I’ve written a blog post about it, so I won’t go into too much detail here, but even though I’m nowhere near done, I already learned a lot from it!

Terraform Content

I’ve also started taking Terraform more seriously, and creating modules for it!

While these are mostly aimed for my personal use, I have a libvirt-vm and hetzner-vm module!

Other Projects

Other projects I don’t have much to say about, but still would like to mention are:

Conclusion

2023 was a productive, but tiring year! While I’m looking forward to what I’ll make in 2024, I’m also looking forward to taking a break and slowing down a bit…

Thanks for reading this blog, and I hope you have a great 2024!!!