I am a software engineer at Red Hat and a graduate student at the Open University of Israel. I am interested in different aspects of programming and particularly in large and distributed software development and modularization techniques.

I live in Herzliya, Israel.

Projects

Following are the projects I work on nowadays or worked on in the past.
More information about my open source contributions is available on Open HUB.

KubeVirt

KubeVirt is an extension to kubernetes that enables running virtual machines along side containers within a kubernetes cluster.

I have been contributing to KubeVirt since 2018.

The code is available here.

oVirt

oVirt is a virtualization management platform optimized to the KVM hypervisor. It was founded by Red Hat as a community project on which Red Hat Enterprise Virtualization is based. It allows centralized management of virtual machines, compute, storage and networking resources, from an easy to use web-based front-end with platform independent access.

I have been contributing to oVirt since 2012, mainly to VM-lifecycle related flows in ovirt-engine. Since 2014 I am a co-maintainer of ovirt-engine.

The code is available here.

muCommander

muCommander is a lightweight, cross-platform file manager with a dual-pane interface. It runs on any operating system with Java support (Mac OS X, Windows, Linux, BSD, Solaris…).

Since 2007 I have been contributing to muCommander. These days I maintain the project.

The code is available here.

AOP-Awesome

A multi-DSAL development is a mode of application developemnt where in addition to one or more general purpose languages (e.g., Java, AspectJ), multiple domain-specific aspect languages (DSALs) are used. For example, one DSAL (e.g., COOL) may be used for implementing the thread synchronization concern, other for the security concern, etc. Awesome is an aspect composition framework. Awesome makes multi-DSAL development feasible by allowing to compose a variety of aspect mechanisms, each corresponding to a specific DSAL, into a single multi-mechanism weaver.

I upgraded Awesome to latest versions of AspectJ and extended it to support explicit join points and closure joinpoints.

The code is available here.

Research

Surprisingly, although aspect-oriented programming (AOP) is known as a programming paradigm that promotes better modularization of crosscutting-concerns, it is underutilized in real-world projects that suffer from crosscutting-concerns. As part of my MSc thesis I have been researching new approaches and tools to improve the practicality side of AOP.

My advisor is Prof. David H. Lorenz.

My research interests:
Aspect oriented programming (AOP)
Domain specific languages (DSL)
Software development methodologies and tools.

Publications

Language oriented modularity: from theory to practice

Arik Hadas, David H. Lorenz
The Art, Science and Engineering of Programming 2017

Language Oriented Modularity: A Practical Approach

Arik Hadas
Student Research Competition, Grand Final 2017

Language oriented modularity: from theory to practice

Arik Hadas
Modularity (Companion) 2016

Toward disposable domain-specific aspect languages

Arik Hadas, David H. Lorenz
Modularity (Companion) 2016

Toward practical language oriented modularity

Arik Hadas, David H. Lorenz
Modularity (Companion) 2016

Application-specific language-oriented modularity: a case study of the ovirt project

Arik Hadas, David H. Lorenz
Modularity (Companion) 2016

A language workbench for implementing your favorite extension to AspectJ
Arik Hadas, David H. Lorenz
Modularity (Companion) 2015

First-class domain specific aspect languages
Arik Hadas, David H. Lorenz
Modularity (Companion) 2015

Demanding first-class equality for domain specific aspect languages
Arik Hadas, David H. Lorenz
Modularity (Companion) 2015

Awards

First Place in ACM Student Research Competition
Language Oriented Modularity: From Theory to Practice
Modularity 2016

Second Place in ACM Student Research Competition
A Language Workbench for Creating Production-Ready Extensions to AspectJ
Modularity 2015

Presentations

High Availability with No Split Brains!

DevConf.cz, 2018

Monitoring At Scale: What was Recently Done and What’s Next in oVirt

Open Source Summit Europe, 2017

Language Oriented Modularity: From Theory to Practice

Research papers track, <Programming> 2017

Experiencing with Language Oriented Modularity

Poster session, <Programming> 2017

Language Oriented Modularity: From Theory to Practice

Student Research Competition, Modularity 2016

Toward disposable domain-specific aspect languages

Workshop on Foundations Of Aspect-Oriented Languages 2016

Toward practical language oriented modularity

Workshop on Language Modularity À La Mode 2016

Application-specific language-oriented modularity: a case study of the ovirt project

Workshop on Modularity Across the System Stack 2016

Managed conversion of guests to oVirt

KVM Forum 2015

Demanding First-Class Equality for Domain Specific Aspect Languages

Position papers track, Modularity 2015

First Class Domain Specific Aspect Languages

Poster session, Modularity 2015

A Language Workbench for Creating Production-Ready Extensions to AspectJ

Student Research Competition, Modularity 2015

A Language Workbench for Implementing Your Favorite Extension to AspectJ

Demo session, Modularity 2015

Moving your Virtual Machines to oVirt with ease

FOSDEM 2015

RAM Snapshots in oVirt

CloudOpen Europe 2013

Patents

Deleting disks while maintaining snapshot consistency in a virtualized data-center