Leifur Halldór Ásgeirsson
Software Developer - Data Modeling

About


I am an enterprise software developer focused especially on backend technologies, distributed services, and data modeling, experienced with diverse data technologies including relational (SQL) databases, Apache Cassandra, graph databases, and search indexing engines such as Elasticsearch and Solr.

I currently live and work out of Montréal, Québec.

Education

  • Bachelor of Science: Physiology (major), Computer Science (minor) from McGill University 2013

Natural languages

  • English native language
  • French working proficiency
  • Icelandic basic

Free Open Source Software Contributions


Google's GRPC
Contributed bugfixes and patches towards compatibility with Python 3.

Apache Tinkerpop
During the early development of the new Python Gremlin Language Variant (GLV), contributed an API for the raw expressions for the groovy translator, to allow the use of vendor-specific APIs. (The groovy translator was later superseded by Gremlin Bytecode.)

Goblin
Contributor and reviewer for Goblin, the new python object graph mapper (OGM) for TinkerPop3-compliant database systems.

Django REST Framework JSON API
This project, an extension for the popular Django REST Framework Package, provides tools to build REST services which conform to the JSON API Specification. I made several contributions to this project in the winter of 2014 to 2015, most notably adding features to automate the generation of links to related resources.

Django PostgresSQL Netfields
Netfields adds support to Django for PostgresSQL's INET and CIDR field types, allowing Django application developers to efficiently query IP address and CIDR access data. I contributed a new query operator, '_family', which makes it possible to filter IP address records by family (i.e., IPv4 or IPv6) seamlessly from Django's QuerySet API.

Technologies


Programming Languages

Python

Java

Bash

Go

Database Systems

Cassandra

Relational (SQL)

Search Indexing Engines:

  • Elasticsearch
  • Solr

Graph databases:

  • Datastax Enterprise Graph
  • Titan DB

Redis (in-memory cache database)

Enterprise Messaging

RabbitMQ (AMQP)

ZeroMQ

Other Tools

Docker

Django web framework

Flask web framework

Experience


Employment


Software Developer, EBOX Inc.

February 2017—

Developed an authentication and access control system for a client-facing service.

The system restricts content depending on a client's subscription and limits the number of devices a client can use to access the service.

Also wrote a key management server for DRM and an HTTP API for user management operations by staff.


Software Developer, ZEROFAIL (an Openface company)

April 2015—November 2016

Worked on development of a Network Operations and Business Support System.

Led the development of a scalable, asynchonous RPC system built on the ZeroMQ messaging library so that workers can be added dynamically to scale to load without necessitating any changes to client configurations. The python implementation leverages the new asynchronous programming tools available with recent versions of Python, including the new async/await syntax and the asynchronous iterator protocol. Assisted a developer who implemented a client for the RPC system in Node.

Designed data models for the DataStax Enterprise database, especially the new DataStax Enterprise Graph.

Contributed to, and reviewed pull requests for, the Goblin project.

Adapted a web API that provides an endpoint for sending SMS via a cellular modem; customized it to work with existing monitoring software as a notification delivery mechanism; added endpoints to monitor the health of the modem and its signal strength.


Web backend development for Kids Code Jeunesse

2014

Developed a web backend using the Django framework.


Volunteering

Teaching HTML/CSS to Kids

In 2014 I visited classrooms in Montréal public schools to help share critical technology skills. Volunteering organized by the Montréal-based NGO Kids Code Jeunesse.