Profile

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

2020

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.

download

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

2020

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.

download

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

2018

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.

download

Optical Character Recognition of Cyrillic Characters Using a Convolutional Neural Network

2017

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.

download

Embedded Device Hacking - ASUS RT-AC68U

2017

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.

https://www.youtube.com/watch?v=Fhj10h0A378

Personal Projects

Auto-Dimming WiFi Enabled Digital Picture Frame

https://github.com/jamesrobb/T-732-ISIT_2017

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

https://imgur.com/a/ZMrZi

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.