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