I am a hands-on manager at Red Hat. I hold a master’s degree in computer sceience from The Open University of Israel (see Research Section) and 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 projects I work on these days or major ones I worked on in the past.
More information about my open source contributions is available on Open HUB.

KubeV2V/Forklift

Forklift is an extension to Kubernetes that enables to convert virtual machines that run on vSphere / oVirt / OpenStack to KubeVirt.

I have been contributing to Forklift since mid-2022.

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 that Red Hat Virtualization is based on. 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…).

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

The code is available here.

KubeVirt

KubeVirt is an extension to Kubernetes that enables running virtual machines alongside containers within a Kubernetes cluster.

I have contributed to the KubeVirt project from (roughly) August 2018 to September 2019.

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 researched new approaches and tools to improve the practical side of AOP.

The master’s thesis focused on a new programming methodology named Language Oriented Modularity (LOM). You can find more about it in the Publications Section. My MSc thesis advisor was 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

Talks

Case study: Volume Populators for Virtual Disks?
DevConf.cz, 2023

Toward exploring virtual disks using a file manager!
FOSDEM, 2019

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

Simulating containerized clusters
Determining a size of virtual disks
Management of containerized clusters by virtualization systems
Migrating virtual machines between computing environments
Guest-driven virtual machine snapshots
Automated restart of paused virtual machines due to input/output errors
Virtual machine migration to multiple destination nodes
Virtual machine synchronization and recovery
Enforcing retention policies with respect to virtual machine snapshots
Minimizing downtime of highly available virtual machines
Moving outdated data from a multi-volume virtual disk to a backup storage device
Gradual creation process of server virtual machines
Fast evacuation of a cloned disk to a storage device
Base state for thin-provisioned volumes
Detach virtual machine from virtual machine template
Deleting disks while maintaining snapshot consistency in a virtualized data-center