diff --git a/astro-website/src/pages/projects.mdx b/astro-website/src/pages/projects.mdx index 1492f73..53a85ed 100644 --- a/astro-website/src/pages/projects.mdx +++ b/astro-website/src/pages/projects.mdx @@ -28,7 +28,7 @@ Although this wasn't stricty required to solve the challenges, I implemented a yan85 emulator, assember, disassembler and a TUI debugger that simplified the reverse engineering process - +
The tools are available on [github](https://github.com/robalb/custom-vm-emulator). @@ -42,13 +42,13 @@ All my experiences on this subject are documented [in these articles](/articles/ ### Morse code web radio -This is an old project I started in 2018, during my first years of highschool.
+This is an old project I started in 2018, during my first years of high school.
It's a realtime morse code chat, currently used by hundreds of radio amateurs around the world to practice morse code. You can try it live on [morse.halb.it](https://morse.halb.it). The code is available on [github](https://github.com/robalb/morsechat). - +
It's clearly a pretty niche project, but it has the advantage of being large enough @@ -63,62 +63,60 @@ and I wanted maximum complexity as the main requirement just for an extra challe ### Infrastructure -Between 2021 and 2022 I realized I was lacking knowledge in infrastructure and devops processes, -so I took the decision to containerize all my projects, adding CI/CD pipelines based on github actions. +Between 2021 and 2022, driven by a curiosity to explore modern infrastructure and DevOps practices, +I containerized all my projects on Github and integrated CI/CD pipelines based on Github actions. -I also took the cursed decision to move everything on a self-managed, single-node k3s cluster, running on -an OVH vps provisioned via ansible scripts. +I also took the cursed decision to move everything to a self-managed, single-node k3s cluster, running on +an OVH vps provisioned through Ansible scripts. - +
-In its golden age, the cluster was running all my personal projects. SSL certificates were managed by -Cert-manager, and everything was served by the Traefik ingress.
-I was also managing metrics and logs with a loki-prometheus-grafana stack, -and managing Continuous deployments via argo CD. +For a while, the cluster successfully hosted all my personal projects. SSL certificates were managed by +Cert-manager, and Traefik served as the ingress controller.
+I also efficiently handled metrics and logs using a Loki-Prometheus-Grafana stack, +and managed Continuous Deployments with Argo CD. After a year of infrastructure experimentation, i got a part-time job as a backend and cloud infrastructure developer. At my job I was already managing unnecessarily complex k8s clusters and pipelines every day, -so I got rid of the cluster. +so I got rid of my personal cluster. -Right now, all my projects run on a Hetzner vps. -All projects are packaged with a docker-compose file, and deployed via ansible. -They are tightly integrated with a control plane running traefik, a grafana-prometheus-loki stack, and some other -utilities. the code is available [on github](https://github.com/robalb/my-infra).
+Currently, all my projects are hosted on a Hetzner VPS. +Each project is packaged with a Docker-compose file, and deployed using Ansible. +Everything is tightly integrated with a control plane running Traefik, a Grafana-Prometheus-Loki stack, and various other +utilities. The code for this infrastructure is publicly available [on github](https://github.com/robalb/my-infra).
I'm working to put everything into a public template that will simplify the process of running personal projects on a vps. ### Students management system -I started this project in 2020, in the last years of highschool. The website is +I started this project in 2020, in the last years of high school. The website is still online on [pinboards.halb.it](https://pinboards.halb.it), and an archive of the code is available on [github](https://github.com/robalb/studentsplanner) - +
-This web app was designed to solve the scheduling of interrogazioni: -Short oral tests on the current class subject, usually scheduled randomly. A common practice -That highschool students in Italy learn very quickly to fear. +This web app was designed to simplify a critical issue:
+In my high school, most professors followed the common practice of scheduling weekly oral tests. +It was a feared activity, worsened by the fact that the victims were usually selected randomly. +It was only towards the final years that they started +to allow volunteers, aware of the time it took to properly prepare for a test.
+This shift meant that with a bit of organization, we could schedule all our oral exams weeks in advance - +A significant improvement in our quality of life! -During my last years of highschool, professors would schedule weekly oral tests, -but knowing the time it took to properly prepare they didn't choose the victims randomly, allowing -volunteers instead.
-This basically meant that with some organization, we could schedule weeks in advance all oral exams. -A leap forward in our quality of life, except that now we had a scheduling problem. - -Every time a professor announced the start of an oral test season, they usually provided details about the -days of the week and the amount of volunteers they expected.
+Whenever a professor announced the start of an oral test season, +they typically provided details about the days of the week and the expected number of volunteers.
The class then gathered around a large cork pinboard, sketched the tests calendar with the empty slots to fill, and started the complex process of finding the optimal candidate for each slot. The process vaguely resembled -traders fighting on an exchange trading floor.
+traders fighting on an stock exchange floor.
Everyone had other oral exams, personal issues and countless other hard constraints that made this problem difficult to solve by hand. The web app successfully solved the problem. - +
@@ -128,7 +126,7 @@ Back in February 2022, I took a course at my university titled Programming Langu A more fitting name for the course would have been Exotic Programming Languages, as it focused on relatively obscure programming paradigms. - +
The final project consisted of implementing an URI parser in both Lisp and Prolog. @@ -159,7 +157,7 @@ This was yet another university group project, that took an unconfortable amount back in 2022. Our task was to develop an Android app in Java, adhering to Google's recommended best practices. - +
We decided to create an app for managing sailing regattas. It featured a nautical map displaying a