I am a distributed systems engineer at CCP Games in Reykjavik, Iceland. I model, develop, and maintain the software and infrastructure that support the EVE universe and its associated products. Currently this involves technologies like Golang, RabbitMQ, Protobuf, and gRPC. Prior to starting with CCP I spent five years earning a master's degree in computer science, and before that I worked as a self-taught software developer in Canada, Iceland, and Bosnia. I am always looking for new and interesting problems to solve, be it in my career or in the all the DIY projects I like to take on.
A PDF of my CV can be downloaded here.
Publications and Technical Write-ups
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.
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.
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.
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.
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.
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
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.