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 Tel-Aviv, 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.

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 at GitHub.

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 at GitHub.

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 at GitHub.

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: 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

Won 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