The biggest challenge for me moving into the manager role was the seemingly ever growing ToDo list and the massive context switches that are required. My gut reaction to these problems as an engineer was to automate them, but what do you do when you don’t have the time to automate? The on-call calculator In the first week of my current role I got an email asking me for the on-call…
At my old university (NTNU) we had our own irc server on freenode. I hung out there to talk to all the smart people, and also to share cool news and tools. But I was sometimes met by my dreaded arch nemesis, the default comment when someone had already seen what I was sharing: old -.- My ‘old’ sensors are flashing as I write this post because the tools are indeed old, but I still think…
It’s the morning of x-mas eve, the kids are plowing through big red socks filled with candy, and I’m tucked away with my laptop and thought I’d share one of my more long term homelab wins. The remote access of my homelab, especially down to the individual servers. The motivation Most people with a homelab, me included, have an aversion for The Cloud (other peoples computers) and…
Sometimes you need to be multiple people and use different ssh keys even. When working with git it’s not always obvious how to make this work, without a lot of extra steps. First there is identity So you’ve probably seen a variation of this a million times: git config --global user.name 'FirstName LastName' git config --global user.email 'firstname.lastname@example.com' With these two…
Many engineers have a strained relationship with Bash. I love it though, but I’m very aware of it’s limitations when it comes to error handling and data structures (or lack thereof). As a result of these limitations I often see Bash scripts written very defensively that define something like: set -euxo pipefail These are bash builtin options that do more or less sensible things. e:…
The need for air sensing I had a conversation with my wife about ventilation that went something like this: I have a soft spot for buying sensors and gadgets at night when I’m supposed to go to sleep. Always thinking that “Oh, this could be a cool addition If I ever do that project idea”. I love the idea of making IOT devices myself as they are often cheaper and much better at…
A sudden urge to upgrade It was a warm spring day, kids were out of the house, I had just finished a round of Rocket League and I thought; Maybe I should upgrade my kubernetes cluster? My homelab cluster is deployed using Kubespray which works by coordinating a myriad of Ansible scripts. It’s not the quickest solution, but it’s solid and customizable. These upgrades are usually quite…
After wanting one for many years, I finally pulled the trigger and bought a 3D printer as a birthday gift to myself. And it’s been a blast! I’ve printed everything I’ve gotten my hands on, but I have had this nagging feeling that I was just replicating, I wasn’t creating. One (un)lucky day though, my son broke the chain guard on is bike. I jumped on the chance to prove…
The year of interviews A few years ago the company I worked for had a period of intense hiring. Over the course of a year I conducted at least 1-2 interviews pr week, so I ended up taking an active part in shaping our process. My interviews were usually focused on technical skills for platform engineers or developers, and the main topic was often; “How do we know that they can code?”…
So from my post about replacing my doorbell with a security camera you might have noticed that I have a accumulated quite a few PoE security cameras that I use with Frigate to get object detection and fancy integrations with Home-Assistant . The part I didn’t go into detail about was the struggle with my latest cameras, the [Reolink 820a]( https://reolink.com/product/rlc-820a/] . So on the…
So my door bell ran out of battery, and I started wondering if I could use my security camera instead. In retrospect I could have gotten some batteries from the battery drawer, but where is the fun in that!? So a while back I bought a bunch of Hikvision and Reolink Power over Ethernet (PoE) 4K security cameras. I like them because they only need one wire and have great quality builds for the…
One major difference between running k8s in a corporate setting vs running in a homelab is the extreme amount of custom hardware you end up wanting to put into the cluster. But this isn’t really how k8s was meant to be used. Any workload should be able to run anywhere, and be killed at any time and pop back up again. At least, for the most part. But I wanted to do some machine learning in my…
I don’t like having to relying on other people’s computers, aka the cloud, so when I can I selfhost the tools and services I need. But sometimes there isn’t a service to selfhost. This was the case with my mysterious smart water meter which is now enforced by my municipality. After some research I found out that I might be able to get to my precious water data by using a radio…
In my second year at the Norwegian Tech & Natural Science University (NTNU) in Trondheim I joined DotKom. A subcommittee in the student organization which maintained the infrastructure and web services. One of the perks was that we were allowed to place one server in the University server room which had a gigabit internet line. Pretty amazing speeds in 2008. I was a poor student though, and…
Kevin in The Office once said ‘Why waste time say lot word when few word do trick’. These are words to live by, and this is why I love aliases. Lately though I’ve been getting really tired of writing out stuff like: kubectl get pods -n network I was saying too many words. Step one was to start using contexts with kubectl which let’s me omit the -n network part. I used fzf…
tl;dr Remapping caps lock to control and escape on Linux The elephant on the keyboard Nothing good has ever come from pressing the CAPS LOCK key, either accidentally or intentionally during a heated discussion on IRC. As a long time user of Macbooks I’ve used Karabiner to improve the way my keyboard works. My most critical customization is to let the CAPS LOCK key die. Instead it will send…
tl;dr: This is a ´problem -> solution´ type post, reflecting on problems I encountered while writing a bash prompt generator. A small need for a more informative prompt This all started about 10 years ago when I was working as a Java consultant in Oslo. We had just moved from SVN to git, and the concept of feature branches was suddenly a thing. I hadn’t really been very involved with VCS…
A journey begins Almost 10 years ago I finished my Masters degree in Computer Science and started working as a consultant at KnowIt in Oslo. My team was in charge of developing the integration bus for the local municipality, and we had earned a lot of freedom with the client. We ran our own Hudson build server, we were early adopters of self hosted Github enterprise, and we deployed to production…
I have two modes, completely distracted and dead focused. So naturally I need some help getting things done. I’ve tried expensive apps like Omnifocus, cli apps like Todo.txt or TaskWarrior and everything in between. In the end I realized that these apps are not for people like me. What works for me is big heavy tools for long term planning and collaboration like Jira or Trello. For my day to…
I’m horrible at waiting, so when things are slow or repetitive I tend to automate them. So when I started working on my first Java project I quickly got fed up by navigating in and out of these crazy paths. For instance moving from src/main/java/com/example/application/package/ to the test path, or back to the root of the project got boring real quick. function backto () { # Go back to…
To help me figure this out, I use a few shell functions. Firstly, I need to know what configuration file that was used. function shell_init_file () { # Returns what would be your initfile if [[ $- == *i* ]] ; then echo ~/.bashrc elif [[ -f ~/.bash_profile ]] ; then echo ~/.bash_profile elif [[ -f ~/.bash_login ]] ; then echo ~/.bash_login elif [[ -f ~/.profile ]] ; then echo ~/.profile else echo…
I’m a Norwegian Software Engineer, weight lifter, hobby psychologist, metal head and I love to automate things. For the last few years I’ve been helping Tech companies implement DevOps best practices. At home I’m a husband, a dad and I build things for fun and not so much profit. I love working with Bash, so there will probably be a lot of that. For this blog I’ll be…