I am an experienced software engineer in Reykjavik, Iceland that has worked on a wide variety of software and architectural challenges. I hold an MSc in Computer Science and a BSc in Discrete Mathematics/Computer Science. I'm a DIY enthusiast and have been writing code and and building hardware for my own projects for a couple of decades now.

Code is a (super cool) tool we use to accomplish higher-level goals and objectives. I enjoy finding and using the right tools to build understandable, testable, and performant solutions to interesting problems.

Curriculum Vitae

A PDF of my CV can be downloaded here.

Publications and Technical Write-ups

Nested, but Separate: Isolating Unrelated Critical Sections in Real-Time Nested Locking


Björn Brandenburg and I introduced a novel real-time fined-grained nested locking protocol for real-time systems under clustered scheduling. Our protocol provides temporal isolation for latency-sensitive tasks that access (possibly) nested resources while remaining asymptotically optimal. The paper has been published in the proceedings of the 32nd Euromicro Conference on Real-Time Systems. The extended version is available for download at the following link.


Master's Thesis - Temporal Isolation of Latency-Sensitive Tasks in Real-Time Nested Locking


My master's thesis is based on my paper Nested, but Separate: Isolating Unrelated Critical Sections in Real-Time Nested Locking and provides a much more thorough background on real-time locking to make the material accessible to a wider computer science audience.


Bachelor's Thesis - Identifying Combinatorial Structures for Binary Strings and Set Partitions


Sigurður Helgason and I explore how to build combinatorial specifications for avoidance classes of binary strings and set partitions in our bachelor's thesis. We build upon the work of Bean et al. and the CombSpecSearcher system to do so. We show that we can find a combinatorial specification for any avoidance class of binary strings, and combinatorial specifications for many avoidance classes of set partitions.


Optical Character Recognition of Cyrillic Characters Using a Convolutional Neural Network


I created a convolutional neural network and a set of complementary utilities for optical character recognition with two classmates in my Introduction to Artificial Intelligence course at Reykjavik University. In particular, we focused on reconstructing water damaged documents written in the Ukrainian language. Tensorflow was used for the neural network and the code is published on GitHub.


Embedded Device Hacking - ASUS RT-AC68U


In my Computer Security class I explored embedded device hacking with the ASUS RT-AC68U router. First I outline how we can examine the firmware of the router and execute some commands in an emulated environment. I then review an exploit that allows a client connected to the router to gain root access. Finally, I demonstrate an exploit that allows a client to obtain persistent ssh access to the router.

Personal Projects

Auto-Dimming WiFi Enabled Digital Picture Frame

A classmate and I created an auto-dimming wifi enbabled digital picture frame as a project for our embedded systems/IoT course. The project also doubled as a Christmas gift for my wife. I already had a Raspberry Pi 3 and an old laptop LCD panel kicking around, so the idea followed naturally from that. We created both a server and client application. The server allowed a user to connect to a website hosted on the picture frame to configure what images to look at, and for how long. The client application ran on the picture frame as well and was responsible for actually displaying the slide show of images. An FTP server also runs on the picture frame to allow for a simple way to upload/manage pictures. Finally, we wrote a small script that polls a light sensor to adjust the brightness on the display. We connect a wire from a PWM pin on the Raspberry Pi to a pin on the eDP connector of the LCD panel to achieve this.

Album of digital picture frame build

In collaboration with others in the Pirate Party of Iceland, I created Safety Valve. Safety Valve is a platform that allows the residents of Iceland to act as a shadow parliament of sorts. Each bill currently moving through Icelandic parliament is converted into a petition. Residents can then digitally sign for or against each petition using their Ice Key, a digital authentication mechanism provided by the Icelandic government. We had an implementation running for a couple of years, but we have since taken it down until further improvements are made to the system.

I created a word clock in the Icelandic Language as a gift for my wife. I used an Arduino Uno and a breadboard to construct the initial clock. Since then, I have improved upon the design and used EagleCAD to design a custom PCB. I had a few of these PCBs manufactured and used them to build a couple more clocks.

Album of original design
Album of design with custom PCB

1977 Kawasaki KZ650 Restoration

My father and I purchased a 1977 KZ650 in need of some TLC from some family members in southern Manitoba after I had expressed an interest in motorcycles. My father was a seasoned biker, and I learned a lot from him throughout the process. The motorcycle technically ran when we purchased it, but not very well. After a year of learning and elbow grease, I had a wonderful motorcycle and a great experience under my belt. I replaced transmission components, converted all analog components to solid state components, and replaced most of the drive-train. With some help from a family friend, I also painted it.