about me

Hey there! I'm Maxi, and I'm studying Computer Science in my ? semester at the University of Hamburg. Parallel to that, I also work as a full stack developer for X-LAN, where I develop all sorts of things, starting with small websites to larger-scale web-apps.

In my free time I love to read, play the occasional round of DOTA or Valorant, or tinker with a new language or library, especially Go-related stuff.

Also, I have a passionate hate for Java, please don't ever make me use it!

projects

I'm usually always working on something, be it public or private. Here is a handpicked™ selection of my public projects.

corgi

Corgi is an HTML template engine for Go. Thanks to its simple syntax, templates are very readable, but also very powerful.

Templates are compiled into Go code, which makes execution speed fast, and also benefiting from compiler checks for all Go expressions used inside it.

Currently, corgi is used at X-LAN, as well as for sueno-dict, a dictionary for a natural language I invented for fun.

dismock

Dismock is a helper for mocking requests to the Discord API.

Most of dismock's source code is generated by parsing the Go source of arikawa's API methods and generating mocks from them. Only more complicated API requests are handwritten.

This keeps maintenance minimal and makes keeping up-to-date incredibly easy.

adam

Adam was a Discord bot framework with an extensive list of features. Amongst other things, it featured localization, command grouping, and an extensive set of utilities.

Unfortunately, shortly after completion it became obsolete with Discord's release of slash commands and the subsequent restrictions around the 'Read Messages' Intent.

standards

Standards is a collection of parsers and validators for different standards, amongst other things IBANs, BICs, and German Health Insurance Numbers.

I created it out of frustration with other parsers/validators for Go (and the lack thereof), which were either unidiomatic or half-heartedly implemented. By using the same base set of functions/methods for each standard, using a standard is extremely simple and feels super idiomatic.

go-htmx

go-htmx is a utility for reading and setting htmx request and response headers.

Other Go packages implemented htmx headers only on a very low level, leaving things like JSON marshalling to the user. Since I wanted to save myself the hassle of writing boilerplate each time I needed to set a header, go-htmx was made.

FYI, corgi and htmx go great together. :)