Profile

I am a PhD student at Emory University in Atlanta, Georgia. I earned my bachelor's degree in computer science and discrete mathematics at Reykjavik University. Before entering academia I worked as a software developer in Iceland and my home country, Canada. I'm generally interested in problem solving - in particular where mathematics, computer science, and hardware meet. Currently my focus is on pursuing interesting academic and professional opportunities.

Curriculum Vitae

A PDF of my CV can be downloaded here.

Publications and Technical Write-ups

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

Analytical and Machine Learning Methods for Strain Number Identification of Mixed Diagnostic Samples (work in progress)

2017

I analyze the output of an algorithm by researchers at Emory University to determine which of the solutions it produces are the true solution. The current technical write-up is still a draft.

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.