diff --git a/src/cv.tex b/src/cv.tex index d269af4..84bc586 100644 --- a/src/cv.tex +++ b/src/cv.tex @@ -136,7 +136,7 @@ my own software more seriously. \section{Work Experience} \btpp -May 2022 - April 2023 & \textbf{Internship at Tilburg University under LIS UNIX Infra}. +May 2022 - April 2023 & \textbf{Internship @ Tilburg University under LIS UNIX Infra}. Here I worked on the management of 300 Debian GNU/Linux servers; In particular I did the following: \begin{itemize} @@ -146,6 +146,21 @@ May 2022 - April 2023 & \textbf{Internship at Tilburg University under LIS UNIX solutions stay in sync with the desired state in POSIX Shell and GNU Make. \end{itemize}\\ +\btpp +May 2024 - November 2024 & \textbf{Sysadmin @ TriNed/Fiberoperator} + Here I worked on the following projects: + \begin{itemize} + \item set up the basis of a Kubernetes cluster + using Talos Linux in VMWare VX Rail + \item wrote several puppet classes facilitating + docker, docker-compose; utalizing these to + set up Vaultwarden and GitLab instances. + \item migrated said GitLab instance from the + docker container to directly on the VM when + having a separate SSH binary in the container + caused issues. + \item helped with the transition to puppet r10k. + \end{itemize} \etpp \section{Skills} @@ -154,7 +169,7 @@ May 2022 - April 2023 & \textbf{Internship at Tilburg University under LIS UNIX \resumeHeadingListStart \resumeSectionType{Operating Systems}{:}{Debian \& derivatives, Alpine Linux, NixOS} \resumeSectionType{Container Technologies}{:}{Docker, Kubernetes, Nix Containers} -\resumeSectionType{Provisioning Tools}{:}{Caspar, Nix} +\resumeSectionType{Provisioning Tools}{:}{Nix, Caspar, Puppet} \resumeSectionType{Webservers}{:}{Apache2, Nginx} \resumeSectionType{VCS}{:}{Git, Subversion} \resumeHeadingListEnd @@ -169,8 +184,8 @@ May 2022 - April 2023 & \textbf{Internship at Tilburg University under LIS UNIX \subsection{Computational Languages} \resumeHeadingListStart -\resumeSectionType{Programming}{:}{Go, Haskell, C\#} -\resumeSectionType{Scripting}{:}{POSIX Shell, Nix} +\resumeSectionType{Programming}{:}{Haskell, Go, C\#} +\resumeSectionType{Scripting}{:}{POSIX Shell, Nix, Nushell} \resumeSectionType{Markup}{:}{Graphviz/Dot, \LaTeX{}, HTML, CSS} \resumeSectionType{Misc}{:}{GNU Make} \resumeHeadingListEnd @@ -241,6 +256,18 @@ problems in Haskell and otherwise. This has started me on a journey of wanting to understand the rest of the mathematics Haskell and APL are built upon. +\subsection{Headscale as VPN} + +I run a Headscale instance to connect to my private infrastructure because I + +\begin{enumerate} + \item am too much of a cheapscate to pay for tailscale + \item don't have- and don't want to have a personal Google account +\end{enumerate} + +I use it on basically all of my devices. Connecting it to Keycloak is something +I want to look into at some point. + \subsection{Dungeons \& Dragons tools} I play Dungeons \& Dragons every now and then with a group of friends. @@ -256,7 +283,8 @@ Go. \end{itemize} I am in the process of rewriting both of these in Haskell for the intellectual -exercise. +exercise. The repository can be found over on +\uhref{https://forge.antimattercloud.nl/Egg/sheet-parser-hs}{my Forgejo instance}. \subsection{Radio} I have an internet radio playing music 24/7 with a publicly available frontend. @@ -265,23 +293,47 @@ buffering; and Nginx manages the reverse proxies to \uurl{https://antimattercloud.nl/radio} and \uurl{https://radio.antimattercloud.nl/} -\subsection{ownCloud} +\subsection{Keycloak} -I used host a private \uhref{https://owncloud.com}{ownCloud} instance for family -and friends. This instance is ran inside of a few docker containers, managed -using docker-compose. +I host a Keycloak instance for SSO and MFA authentication for the various +services I run privately. Next step for me is to try to host an LDAP server to +see how integration with that might work. \subsection{Git} -I have a collection of privatly hosted Git repositories on my home server. The +I have a collection of privately hosted Git repositories on my home server. The goal here being to both get a better understanding of how Git works, as well as not having to depend on large, pre-existing infrastructure to host my personal repositories. +\subsubsection{Forgejo} + +I host a Forgejo instance for when I want to have some extra features around my +git repositories and/or when I want to share a project with someone without +having to give them either ssh access to a server or a tar file containing the +entire project. + +Authentication is handled using Keycloak + +\subsection{ownCloud} + +I used host a private \uhref{https://owncloud.com}{ownCloud} instance for family +and friends. + +\subsubsection{ownCloud Infinite Scale} + +Some time later, I found out about ownCloud Infinite Scale, which I now host an +instance of over at +\uhref{https://scale.antimattercloud.nl}{scale.antimattercloud.nl}. + +Authentication and authorization is handled using Keycloak. + \subsection{Matrix server (synapse and conduit)} -I used to host a \uhref{https://matrix.org/}{Matrix} server for a few years, but -ended up rarely using it. +Currently I host a Matrix server using synapse. It is connected to my Keycloak +instance. I don't use it much. I mainly set it up because I wanted to have +something else to hook up to my Keycloak. As a result, authentication and +authorization are handled using Keycloak. \subsection{XMPP server (prosody)}