-Typically these edge devices are small microcontrollers containing sensors and actuators to interact with the physical world.
-Microcontrollers are integrated circuits containing a microprocessor designed for use in embedded applications.
-The edge devices come in many different types and they differ substantially from the other devices in the system.
-Consequently, programming \gls{IOT} systems is very complex and error prone.
-Hence, an \gls{IOT} programmer has to program each device and their interoperation using different programming paradigms, programming languages, and abstraction levels resulting in semantic friction.
-
-This thesis introduces research on the many aspects of orchestrating \gls{IOT} systems using \gls{TOP}.
-\Gls{TOP} is a innovative tierless programming paradigm for programming multi-tier interactive systems using a single declarative specification of the work that needs to be done.
-Using advanced compiler technologies, much of the internals and communication of multi-tier applications is automatically generated and the result of compilation is a ready-for-work application.
-Unfortunately, because the abstraction level is so high, the hardware requirements are too excessive to be suitable for the average edge device.
-
-This is where \glspl{DSL} come into play.
-\Glspl{DSL} are languages created with a specific domain in mind.
-Consequently, domain knowledge does not have to be expressed in the language itself but they can be built-in features, thus drastically reducing the hardware requirements even with high levels of abstraction.
+Typically, these edge devices are powered by microcontrollers
+Microcontrollers contain integrated circuits accommodating a microprocessor designed for use in embedded applications.
+Typical microprocessors therefore are tiny in size; have little memory; contain a slow, but energy efficient processor; and allow for a lot of connectivity to connect peripherals such as sensors and actuators to interact with their surroundings.
+%
+%\begin{figure}[ht]
+% \centering
+% \includegraphics[width=.4\linewidth]{esp}
+% \caption{A typical ESP32 microcontroller prototyping board.}%
+% \label{fig:esp_prototype}
+%\end{figure}
+
+Edge devices come in numerous types, differing substantially from the other devices in the system.
+An \gls{IOT} programmer has to program each device and their interoperation using different programming paradigms, programming languages, and abstraction levels resulting in semantic friction.
+Programming and maintaining \gls{IOT} systems is therefore a very complex and an error-prone process.
+
+This thesis introduces research on taming these complex \gls{IOT} systems using \gls{TOP}.
+\Gls{TOP} is an innovative tierless programming paradigm for programming multi-tier interactive systems using a single declarative specification of the work that needs to be done.
+By utilising advanced compiler technologies, much of the internals, communication, and interoperation of the multi-tier applications is automatically generated.
+The result of this compilation is a ready-for-work application.
+Unfortunately, because the abstraction level is so high, the hardware requirements are too excessive for a general purpose \gls{TOP} system to be suitable for the average edge device.
+
+This is where \glspl{DSL} are brought into play.
+\Glspl{DSL} are programming languages created with a specific domain in mind.
+Consequently, domain jargon does not have to be expressed in the language itself, but they can be built-in features.
+As a result, the hardware requirements can be drastically lower even with high levels of abstraction.
+
+Using \gls{MTASK}, a novel domain-specific \gls{TOP} \gls{DSL} fully integrated with \gls{ITASK}, all layers of the \gls{IOT} can be orchestrated from a single source.