Software engineer with a focus on game development and scalable backend development

Using Esp32-Cam Devices for CCTV

I had wanted to get a couple of cameras to watch over my house and make sure everything was as I expected. A couple of requirements I had when looking were being able to use them without any cloud connection, and being compatible with self-hosted solutions, which usually means having RTSP support. Looking at some commercial products, it seemed hit or miss as to whether they would support any custom firmware which would mean needing advanced networking setup to cut them out from the internet but also allowing local networking, for these reasons I decided for now to give making my own a go…

6 minutes estimated reading time.

Simple Email Archival and Indexing

One of the main pain points with self-hosting tends to be email, whilst setting up a mail server isn’t especially hard, the maintenance is what causes most issues; and in particular keeping your self-hosted mail servers off of spam lists. That’s why I generally leave that to third parties, however I still like to keep a local storage of my mail, mostly for backup purposes…

6 minutes estimated reading time.

My Many Iterations for the Perfect Self-Hosted Dashboard

Well, It’s been quite some time since my last post. So much so in fact that we’ve had a global pandemic and various life events between then and now! Since my last post, and with a little spare time we have all had, I have been heavily getting into self-hosting, and by extent sysops/homelabs, one of which services that soon becomes controversial is the choice of what dashboard to use. In this post I will detail some of the options I have tried out.

3 minutes estimated reading time.

Compiling a Kotlin & Netty WebApp with GraalVM

Ever since I started making use of Docker I have always been at a turmoil on whether a JVM language was the best solution for the job. You see JVM has a great level of support with loads of libraries a number of different languages and great performance, however this comes at a cost of a large runtime environment and memory requirements (not to mention warm up times). On the other hand there are languages like Go that include everything you need to build a webapp in the standard library, produce a small single binary and dont have large memory footprint or startup times. Go felt like a much leaner language better prepared for this era of microservices and small docker containers, that is until GraalVM came about.

9 minutes estimated reading time.

Kotlin Server in Less Than 5MB

One of the things I like most about languages like GoLang is the fact you can create a small executable that holds all the files needed for a server, or any other application. Kotlin, and any other JVM based languages, however always seem to be rather bloated, Kotlin and Spring have often been over 100mb, and even Scala and Play Framework are of a similar size.

6 minutes estimated reading time.